Use libp2p-websocket fork to circumvent Sink panic #2657
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What's in this pull request?
Currently we are observing issue libp2p/rust-libp2p#5471 which causes a panic when reading/sending data to a peer where the connection already has errored. This PR forks libp2p with a hotfix that won't panic but rather throw an error.
Until libp2p/rust-libp2p#5471 is properly solved, we can use this fix to more gracefully handle the unexpected error. The changes in the fork compared to libp2p v0.53.2 can be found here: compare. It also includes a new test that mimics the behaviour we are observing (calling poll_ready after an error), and checks that it simply throws an error instead of a panic.
This fixes #732.
Pull request checklist
clippy
andrustfmt
warnings.