Skip to content
This repository has been archived by the owner on Oct 19, 2022. It is now read-only.

Bug when messages are pipelined #48

Closed
Stebalien opened this issue May 30, 2019 · 1 comment
Closed

Bug when messages are pipelined #48

Stebalien opened this issue May 30, 2019 · 1 comment
Assignees

Comments

@Stebalien
Copy link
Member

From ipfs/kubo#6389 (comment)


In multiformats/go-multistream#32, go started pipelining protocol negotiation. Specifically, instead of:

  1. Client sends server /multistream/1.0.0
  2. Server sends client /multistream/1.0.0
  3. Client sends server the first protocol.
  4. Server sends client na or the protocol (if selected).

The protocol now looks like:

  1. Client sends server /multistream/1.0.0
  2. Client sends server the first protocol.
  3. Server sends client /multistream/1.0.0
  4. Server sends client na or the protocol (if selected).

That way, we can half to a full round trip (depending on the server's implementation).

However, this appears to be causing the connection to fail with:

Error: Dial is currently blacklisted for this peer

(an error from javascript).

But I can't reproduce this issue when I manually spin up a js-ipfs node and a go-ipfs node.

Also note, adding a small delay between sending the /multistream/1.0.0 header and the first protocol appears to fix the issue.


To reproduce, run the "exchange-files" interop test against go-ipfs 0.4.21-rc3.

@Stebalien Stebalien changed the title Bug when connections are pipelined Bug when messages are pipelined May 30, 2019
@jacobheun jacobheun self-assigned this May 30, 2019
@jacobheun
Copy link
Contributor

This is not a bug with multistream-select. Context at ipfs/kubo#6389 (comment)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants