-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
unpin the yamux dependency #7532
Conversation
This has been pinned for a while under suspicion that it was causing graphsync stalls. However, the libp2p team has been unable to reliably reproduce the issue and believes that it's likely a graphsync issue. Libp2p issue: libp2p/go-yamux#61
cc @marten-seemann & @BigLep |
Codecov Report
@@ Coverage Diff @@
## master #7532 +/- ##
==========================================
- Coverage 39.96% 39.85% -0.12%
==========================================
Files 632 632
Lines 66926 66926
==========================================
- Hits 26750 26675 -75
- Misses 35560 35625 +65
- Partials 4616 4626 +10
Continue to review full report at Codecov.
|
It also came up that there was an underflow issue in the graphsync allocation budgeting system that could cause stalls. Given that the repro for this always involved graphsync, I'm finding it more and more likely that changing how yamux receive buffers work triggered an underlying issue in graphsync. |
That was probably the case, @Stebalien. Just to play it safe, can we ask Estuary (or some other very active deal maker) to upgrade to the latest yamux before we merge this in? |
Once we figure out the stalls they're experiencing... yes. |
This has been pinned for a while under suspicion that it was causing graphsync stalls. However, the libp2p team has been unable to reliably reproduce the issue and believes that it's likely a graphsync issue.
Leaving it "pinned" indefinitely isn't going to fix the issue, so I'm filing this PR hoping we can find a solution.
My latest theory is that graphsync is deadlocking somewhere when sending a message blocks on the other side reading the message. However, to confirm this, we'd need goroutine dumps from both sides of a stall showing that:
This could also be done with sufficient logging.
Libp2p issue: libp2p/go-yamux#61
💣 👈 👇 👉 ❓