-
Notifications
You must be signed in to change notification settings - Fork 16
Conversation
This one is working as intended (actually, we should be calling Close after the write and then reading until the end of the stream but that's even more likely to break compatibility with older nodes. JavaScript needs to close it's streams. The issue in bitswap was that we were blocking other bitswap peers. However, ipfs/js-ipfs#1445 is still a valid issue. |
👍 on close the js streams, but this still possibly needs to be ran in a |
I intentionally didn't do that to avoid creating additional goroutines. However, if we are just going to close this and throw away the result, I'd almost just reset the stream. Same question as: libp2p/go-libp2p#380 |
There might be something else going on, the stream should be getting closed on the js side (I'm doing it explicitly in my tests now, but even letting the stream reach EOF should obviously work) but it still no dice. Will dig deeper and report back. |
The issue ended up being on the js side after all, here is the PR addressing it - libp2p/js-libp2p-circuit#28. |
Actually, let's leave this open. The way this currently is, we'll end up adding a round-trip where we probably shouldn't. |
With libp2p/go-libp2p-core#166, we're going to be able to just call close and walk away. |
It seems like
FullClose
needs to be called async. This is currently breaking ipfs/interop#27. There are other instances ofFullClose
that are not being executed in a go routine as well, and I wonder if those should also be fixed as well?