Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Already Piped #1446

Closed
agahEbrahimi opened this issue Jul 17, 2018 · 11 comments
Closed

Already Piped #1446

agahEbrahimi opened this issue Jul 17, 2018 · 11 comments
Labels
exp/expert Having worked on the specific codebase is important kind/bug A bug in existing code (including security flaws) P2 Medium: Good to have, but can wait until someone steps up

Comments

@agahEbrahimi
Copy link

agahEbrahimi commented Jul 17, 2018

I have been attempting to work with ipfs-pubsub room but it randomly exits and gives this error. I have attempted the fixes in some issues on ipfs but they have not worked. Any ideas of how to fix it?

My ipfs version is the latest stable version.

These are the issues I am referring to:
https://github.com/libp2p/js-libp2p-switch/issues/235
#1156

This is the error:
throw new Error('already piped')
^

Error: already piped
    at sink (/Users/behrad/Desktop/ColIDE/JS/node_modules/pull-pair/index.js:11:13)
    at consume (/Users/behrad/Desktop/ColIDE/JS/node_modules/pull-defer/sink.js:7:17)
    at consume (/Users/behrad/Desktop/ColIDE/JS/node_modules/pull-defer/sink.js:7:17)
    at Connection.consume (/Users/behrad/Desktop/ColIDE/JS/node_modules/pull-defer/sink.js:7:17)
    at pull (/Users/behrad/Desktop/ColIDE/JS/node_modules/pull-stream/pull.js:43:9)
    at Dialer.handle (/Users/behrad/Desktop/ColIDE/JS/node_modules/multistream-select/src/dialer/index.js:47:5)
    at attemptMuxerUpgrade (/Users/behrad/Desktop/ColIDE/JS/node_modules/ipfs/node_modules/libp2p-switch/src/dial.js:157:10)
    at gotWarmedUpConn (/Users/behrad/Desktop/ColIDE/JS/node_modules/ipfs/node_modules/libp2p-switch/src/dial.js:54:7)
    at Switch.dial (/Users/behrad/Desktop/ColIDE/JS/node_modules/ipfs/node_modules/libp2p-switch/src/dial.js:40:9)
    at _getPeerInfo (/Users/behrad/Desktop/ColIDE/JS/node_modules/ipfs/node_modules/libp2p/src/index.js:237:19)
@justuswilhelm
Copy link

justuswilhelm commented Jul 17, 2018

Yes, I'm receiving the same error with the newest version 0.30.0:

Uncaught Error: already piped
    at sink (index.js:11)
    at consume (sink.js:7)
    at consume (sink.js:7)
    at Connection.consume (sink.js:7)
    at pull (pull.js:43)
    at Dialer.handle (index.js:47)
    at handleSafe (dial.js:51)
    at Dialer._attemptMuxerUpgrade (dial.js:249)
    at Dialer._createMuxedConnection (dial.js:214)
    at waterfall (dial.js:139)

@alanshaw alanshaw added kind/bug A bug in existing code (including security flaws) exp/expert Having worked on the specific codebase is important status/ready Ready to be worked P2 Medium: Good to have, but can wait until someone steps up labels Jul 17, 2018
@alanshaw
Copy link
Member

alanshaw commented Jul 17, 2018

@agahEbrahimi could you please upgrade to the latest js-ipfs? Your stack trace is referring to an old version of libp2p-switch.

@justuswilhelm a new version of libp2p-switch has been released if you do a fresh install of js-ipfs you should pick it up.

The new libp2p-switch has a fix for handling an error in the protocol handshake which might fix your issue. Please shout if you're still seeing the issue (with updated stacktrace plz!) and we'll investigate further.

@agahEbrahimi
Copy link
Author

agahEbrahimi commented Jul 17, 2018

Thank you @alanshaw
That worked.

@ghost ghost removed the status/ready Ready to be worked label Jul 18, 2018
@tyvdh
Copy link

tyvdh commented Aug 8, 2018

I'm still seeing this issue. All the latest versions of ipfs-js, orbitdb and libp2p-switch

Related. Context.
orbitdb/orbit-db#355 (comment)

/Users/tyler/Desktop/Web/Colorglyph-2.0/colorglyph-express/node_modules/pull-pair/index.js:11
      throw new Error('already piped')
      ^

Error: already piped
    at sink (/Users/tyler/Desktop/Web/Colorglyph-2.0/colorglyph-express/node_modules/pull-pair/index.js:11:13)
    at consume (/Users/tyler/Desktop/Web/Colorglyph-2.0/colorglyph-express/node_modules/pull-defer/sink.js:7:17)
    at consume (/Users/tyler/Desktop/Web/Colorglyph-2.0/colorglyph-express/node_modules/pull-defer/sink.js:7:17)
    at Connection.consume (/Users/tyler/Desktop/Web/Colorglyph-2.0/colorglyph-express/node_modules/pull-defer/sink.js:7:17)
    at pull (/Users/tyler/Desktop/Web/Colorglyph-2.0/colorglyph-express/node_modules/pull-stream/pull.js:43:9)
    at Dialer.handle (/Users/tyler/Desktop/Web/Colorglyph-2.0/colorglyph-express/node_modules/multistream-select/src/dialer/index.js:47:5)
    at handleSafe (/Users/tyler/Desktop/Web/Colorglyph-2.0/colorglyph-express/node_modules/libp2p-switch/src/dial.js:51:12)
    at Dialer._attemptMuxerUpgrade (/Users/tyler/Desktop/Web/Colorglyph-2.0/colorglyph-express/node_modules/libp2p-switch/src/dial.js:288:5)
    at Dialer._createMuxedConnection (/Users/tyler/Desktop/Web/Colorglyph-2.0/colorglyph-express/node_modules/libp2p-switch/src/dial.js:252:10)
    at waterfall (/Users/tyler/Desktop/Web/Colorglyph-2.0/colorglyph-express/node_modules/libp2p-switch/src/dial.js:139:14)
    at nextTask (/Users/tyler/Desktop/Web/Colorglyph-2.0/colorglyph-express/node_modules/async/waterfall.js:16:14)
    at next (/Users/tyler/Desktop/Web/Colorglyph-2.0/colorglyph-express/node_modules/async/waterfall.js:23:9)
    at /Users/tyler/Desktop/Web/Colorglyph-2.0/colorglyph-express/node_modules/async/internal/onlyOnce.js:12:16
    at Dialer._createBaseConnection (/Users/tyler/Desktop/Web/Colorglyph-2.0/colorglyph-express/node_modules/libp2p-switch/src/dial.js:185:14)
    at waterfall (/Users/tyler/Desktop/Web/Colorglyph-2.0/colorglyph-express/node_modules/libp2p-switch/src/dial.js:135:14)
    at nextTask (/Users/tyler/Desktop/Web/Colorglyph-2.0/colorglyph-express/node_modules/async/waterfall.js:16:14)

@caffeinum
Copy link

caffeinum commented Aug 11, 2018

I have this issue too. We do use pubsub-room. I have the last versions of js-ipfs, libp2p and libp2p-switch(=0.40.7).

I wrote to this issue first: #1366 (comment)

@th-ink
Copy link

th-ink commented Aug 14, 2018

Can confirm I get the same issue as well, using libp2p-switch@0.40.7

/home/jwatts/node_modules/pull-pair/index.js:11
      throw new Error('already piped')
      ^

Error: already piped
    at sink (/home/jwatts/node_modules/pull-pair/index.js:11:13)
    at consume (/home/jwatts/node_modules/pull-defer/sink.js:7:17)
    at consume (/home/jwatts/node_modules/pull-defer/sink.js:7:17)
    at Connection.consume (/home/jwatts/node_modules/pull-defer/sink.js:7:17)
    at pull (/home/jwatts/node_modules/pull-stream/pull.js:43:9)
    at Dialer.handle (/home/jwatts/node_modules/multistream-select/src/dialer/index.js:47:5)
    at handleSafe (/home/jwatts/node_modules/libp2p-switch/src/dial.js:51:12)
    at Dialer._attemptMuxerUpgrade (/home/jwatts/node_modules/libp2p-switch/src/dial.js:288:5)
    at Dialer._createMuxedConnection (/home/jwatts/node_modules/libp2p-switch/src/dial.js:252:10)
    at waterfall (/home/jwatts/node_modules/libp2p-switch/src/dial.js:139:14)

@jacobheun
Copy link
Contributor

jacobheun commented Aug 15, 2018

The latest hotfix for multistream-select, 0.14.3, should prevent the error from being thrown. It will now be caught and logged. I will continue testing this to see if the issue comes up. Once you have multistream-select@0.14.3 (new installs should get it), if you do hit this issue, please scream in my general direction with logs and I will take a look!

Just fyi, I have been testing this against pubsub-room, along with a few other sample projects and the error is being logged properly.

@th-ink
Copy link

th-ink commented Aug 15, 2018

thanks @jacobheun, I can confirm that I don't get the error with multistream-select@0.14.3

@mitra42
Copy link

mitra42 commented Aug 16, 2018

How is multistream-select included, I'm not seeing (any version) in package-lock.json , and did a fresh install (from npm, not from github) yesterday.

@jacobheun
Copy link
Contributor

jacobheun commented Aug 16, 2018

It is used in libp2p (libp2p-switch and libp2p-circuit). npm ls should resolve it. I just did a fresh install from npm to verify.

└─┬ ipfs@0.31.4
  ├─┬ libp2p@0.23.1
  │ └─┬ libp2p-switch@0.40.7
  │   └── multistream-select@0.14.3  deduped
  └─┬ libp2p-circuit@0.2.1
    └── multistream-select@0.14.3

@mitra42
Copy link

mitra42 commented Aug 17, 2018

Confirmed - looks like I installed just before the release. I'll watch for the already piped errors (which I've been seeing regularly up till now)

@ghost ghost removed the status/ready Ready to be worked label Sep 10, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
exp/expert Having worked on the specific codebase is important kind/bug A bug in existing code (including security flaws) P2 Medium: Good to have, but can wait until someone steps up
Projects
None yet
Development

No branches or pull requests

9 participants