-
Notifications
You must be signed in to change notification settings - Fork 124
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
Use try_send, so the caller can handle the IO error #2237
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #2237 +/- ##
=======================================
Coverage 95.37% 95.37%
=======================================
Files 112 112
Lines 36570 36570
=======================================
Hits 34880 34880
Misses 1690 1690 ☔ View full report in Codecov by Sentry. 🚨 Try these New Features:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for the catch and patch!
For completeness sake, try_send
API was introduced recently in quinn-rs/quinn#2017.
Also for the record, corresponding NSPR implementation:
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think some tests also use send
; should we change those as well?
Failed Interop TestsQUIC Interop Runner, client vs. server neqo-latest as client
neqo-latest as server
All resultsSucceeded Interop TestsQUIC Interop Runner, client vs. server neqo-latest as client
neqo-latest as server
Unsupported Interop TestsQUIC Interop Runner, client vs. server neqo-latest as client
neqo-latest as server
|
Sounds good. @KershawChang would you mind changing the line below to use Line 259 in 7a25525
|
Benchmark resultsPerformance differences relative to 7a25525. coalesce_acked_from_zero 1+1 entries: No change in performance detected.time: [91.254 ns 91.555 ns 91.865 ns] change: [-0.2752% +0.2772% +0.9959%] (p = 0.42 > 0.05) coalesce_acked_from_zero 3+1 entries: Change within noise threshold.time: [101.55 ns 101.78 ns 102.03 ns] change: [+0.2749% +0.6689% +1.1021%] (p = 0.00 < 0.05) coalesce_acked_from_zero 10+1 entries: Change within noise threshold.time: [100.98 ns 101.46 ns 102.10 ns] change: [+0.2790% +0.6578% +1.0500%] (p = 0.00 < 0.05) coalesce_acked_from_zero 1000+1 entries: No change in performance detected.time: [82.081 ns 82.259 ns 82.484 ns] change: [-1.3425% -0.2026% +1.0582%] (p = 0.75 > 0.05) RxStreamOrderer::inbound_frame(): No change in performance detected.time: [111.76 ms 111.89 ms 112.11 ms] change: [-0.2233% +0.0236% +0.2392%] (p = 0.87 > 0.05) transfer/pacing-false/varying-seeds: No change in performance detected.time: [28.329 ms 29.378 ms 30.442 ms] change: [-0.2445% +4.6604% +9.8562%] (p = 0.08 > 0.05) transfer/pacing-true/varying-seeds: No change in performance detected.time: [35.862 ms 37.652 ms 39.452 ms] change: [-1.8637% +5.2343% +12.853%] (p = 0.15 > 0.05) transfer/pacing-false/same-seed: No change in performance detected.time: [27.215 ms 28.107 ms 29.024 ms] change: [-1.1097% +3.4116% +7.9328%] (p = 0.14 > 0.05) transfer/pacing-true/same-seed: No change in performance detected.time: [41.434 ms 43.318 ms 45.252 ms] change: [-5.1461% +1.1724% +8.1434%] (p = 0.73 > 0.05) 1-conn/1-100mb-resp/mtu-1504 (aka. Download)/client: 💚 Performance has improved.time: [895.97 ms 905.42 ms 914.98 ms] thrpt: [109.29 MiB/s 110.45 MiB/s 111.61 MiB/s] change: time: [-5.7514% -4.3547% -3.0137%] (p = 0.00 < 0.05) thrpt: [+3.1074% +4.5529% +6.1024%] 1-conn/10_000-parallel-1b-resp/mtu-1504 (aka. RPS)/client: Change within noise threshold.time: [318.64 ms 321.74 ms 324.91 ms] thrpt: [30.778 Kelem/s 31.081 Kelem/s 31.383 Kelem/s] change: time: [-2.7556% -1.4948% -0.2351%] (p = 0.03 < 0.05) thrpt: [+0.2356% +1.5174% +2.8337%] 1-conn/1-1b-resp/mtu-1504 (aka. HPS)/client: No change in performance detected.time: [33.890 ms 34.083 ms 34.294 ms] thrpt: [29.160 elem/s 29.340 elem/s 29.507 elem/s] change: time: [-0.0109% +0.8181% +1.5632%] (p = 0.05 > 0.05) thrpt: [-1.5391% -0.8114% +0.0109%] 1-conn/1-100mb-resp/mtu-1504 (aka. Upload)/client: No change in performance detected.time: [1.6500 s 1.6725 s 1.6964 s] thrpt: [58.949 MiB/s 59.791 MiB/s 60.605 MiB/s] change: time: [-1.8257% -0.0406% +1.8793%] (p = 0.96 > 0.05) thrpt: [-1.8447% +0.0407% +1.8596%] Client/server transfer resultsTransfer of 33554432 bytes over loopback.
|
@KershawChang we don't currently propagate the concrete IO error, but instead a generic error (i.e. Should we convert the concrete IO errors into their corresponding |
Will do. |
Yes, I think we should. Once this PR merged and a new neqo released, we should prepare a patch for |
👍 I will prepare a new Neqo release and look into the relevant changes in mozilla-central to map the errors. |
Fix #2236