-
Notifications
You must be signed in to change notification settings - Fork 190
Fix yamux listener graceful handling of peer connection closure #1114
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
Conversation
|
Hello @acul71 @seetadev @sumanjeet0012 this is the fix for yamux error |
|
Hi @bomanaps, Great work on this fix! I tested the commit in test-plans transport ping interop, and the tests with jvm-v1.2 now pass. ✅ The fix correctly addresses issue #1084. Review SummaryThe code changes look good - correctly distinguishing between clean connection closures and actual errors. All checks pass:
Blocker: Missing NewsfragmentThe PR is missing the required newsfragment file Please create the file with: The file must be named Required Changes (Must be addressed before merge)
Next StepsAll of the following must be addressed before this PR can be merged:
Once all the above items are addressed, this PR will be ready for merge! 🚀 |
|
Test │ Dialer │ Listener │ Transport │ Secure │ Muxer │ Status │ Duration │ Handshake+RTT (ms) │ Ping RTT (ms)
──────────────────────────────────────────────────────┼─────────────────────┼──────────────────┼───────────┼────────┼───────┼────────┼──────────┼────────────────────┼───────────────
python-v0.4 x jvm-v1.2 (tcp, noise, yamux) | python-v0.4 | jvm-v1.2 | tcp | noise | yamux | ✅ | 6s | - | -
python-v0.4 x jvm-v1.2 (tcp, noise, mplex) | python-v0.4 | jvm-v1.2 | tcp | noise | mplex | ✅ | 6s | - | -
python-v0.4 x jvm-v1.2 (ws, noise, mplex) | python-v0.4 | jvm-v1.2 | ws | noise | mplex | ✅ | 6s | - | -
python-v0.4 x jvm-v1.2 (ws, noise, yamux) | python-v0.4 | jvm-v1.2 | ws | noise | yamux | ✅ | 4s | - | -
python-v0.4 x jvm-v1.2 (quic-v1) | python-v0.4 | jvm-v1.2 | quic-v1 | - | - | ✅ | 4s | - | -
jvm-v1.2 x python-v0.4 (tcp, noise, yamux) | jvm-v1.2 | python-v0.4 | tcp | noise | yamux | ✅ | 6s | - | -
jvm-v1.2 x python-v0.4 (tcp, noise, mplex) | jvm-v1.2 | python-v0.4 | tcp | noise | mplex | ✅ | 7s | - | -
jvm-v1.2 x python-v0.4 (ws, noise, mplex) | jvm-v1.2 | python-v0.4 | ws | noise | mplex | ✅ | 7s | - | -
jvm-v1.2 x python-v0.4 (ws, noise, yamux) | jvm-v1.2 | python-v0.4 | ws | noise | yamux | ✅ | 6s | - | -
jvm-v1.2 x python-v0.4 (quic-v1) | jvm-v1.2 | python-v0.4 | quic-v1 | - | - | ✅ | 10s | - | - |
Hello @acul71 I have addressed the above review |
|
@bomanaps Thanks. |
What was wrong?
Issue ##1084
How was it fixed?
Handle IncompleteReadError with "received 0 bytes" as clean connection
closure instead of error. When the peer closes the connection after
completing ping/pong exchange, yamux now detects this as a graceful
shutdown and logs INFO instead of ERROR, preventing false test failures.
Fixes: jvm-v1.2 x python-v0.4 (tcp, noise, yamux) interop test failure

Summary of approach.
To-Do
Cute Animal Picture