identify: Exchange fails with go-libp2p over QUIC when initialy closing #3298
Description
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.