-
Notifications
You must be signed in to change notification settings - Fork 995
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
identify: Exchange fails with go-libp2p over QUIC when initialy closing #3298
Comments
This is likely incorrect. That is, a read should be enough according to the below: rust-libp2p/misc/multistream-select/src/negotiated.rs Lines 45 to 46 in 68d0f88
|
Might this be the reason I am not able to get a single hole punch to work with the punchr setup + rust-libp2p-client? Edit: Almost no connections, there is like 1 per hour or so at most that succeeds (been running for a couple of days now) |
@dignifiedquire small update on rust-libp2p punchr. With a couple of upcoming patches I am able to achieve ~50% success rate.
While 50% is still behind go-libp2p, I would consider this a good step forward. |
Don't close the stream `protocol::recv`. This is a short-term fix for #3298. The issue behind this is a general one on the QUIC transport when closing streams, as described in #3343. This PR only circumvents the issue for identify. A proper solution for our QUIC transport still needs more thought. Pull-Request: #3344.
To receive a remote's identify information one opens a stream and waits for the remote to send the identify payload in that stream.
When connecting to a go-libp2p node over a QUIC connection, identify exchanges fail.
rust-libp2p/protocols/identify/src/protocol.rs
Lines 192 to 196 in 68d0f88
Changing the above to flush instead of close resolves the issue. Note that flushing instead of no action at all is needed in case multistream-select
V1Lazy
is used where the multistream-select message is only send on the stream once userdata is send or it is flushed.Occurs with the rust-libp2p punchr client when connecting to go-libp2p IPFS nodes.
Opening with little details for now to have a central place to track. @elenaf9 in case you need more details, let me know.
The text was updated successfully, but these errors were encountered: