-
Notifications
You must be signed in to change notification settings - Fork 126
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
tests(udp): use blocking socket to receive empty datagram #2339
Conversation
The `handle_empty_datagram` unit tests sends and receives an empty datagram. To prevent a race condition where the receiver tries to receive the datagram before it is available (error `WouldBlock`), use a blocking socket via `socket()` instead.
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #2339 +/- ##
=======================================
Coverage 93.32% 93.32%
=======================================
Files 114 114
Lines 36889 36889
Branches 36889 36889
=======================================
+ Hits 34427 34428 +1
Misses 1681 1681
+ Partials 781 780 -1 ☔ View full report in Codecov by Sentry. |
Failed Interop TestsQUIC Interop Runner, client vs. server, differences relative to e5770ce. 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
|
Benchmark resultsPerformance differences relative to 6013bde. decode 4096 bytes, mask ff: No change in performance detected.time: [11.168 µs 11.206 µs 11.251 µs] change: [-0.0074% +0.4175% +0.9120%] (p = 0.10 > 0.05) decode 1048576 bytes, mask ff: No change in performance detected.time: [3.0160 ms 3.0251 ms 3.0357 ms] change: [-0.6180% -0.1130% +0.3638%] (p = 0.66 > 0.05) decode 4096 bytes, mask 7f: No change in performance detected.time: [19.527 µs 19.646 µs 19.837 µs] change: [-0.8729% -0.1264% +0.5462%] (p = 0.75 > 0.05) decode 1048576 bytes, mask 7f: No change in performance detected.time: [5.1609 ms 5.1723 ms 5.1852 ms] change: [-0.4299% -0.0744% +0.2780%] (p = 0.67 > 0.05) decode 4096 bytes, mask 3f: No change in performance detected.time: [5.5271 µs 5.5379 µs 5.5593 µs] change: [-0.9999% +0.1437% +1.6167%] (p = 0.89 > 0.05) decode 1048576 bytes, mask 3f: Change within noise threshold.time: [1.7582 ms 1.7583 ms 1.7585 ms] change: [-0.7750% -0.3922% -0.0807%] (p = 0.01 < 0.05) coalesce_acked_from_zero 1+1 entries: No change in performance detected.time: [98.815 ns 99.137 ns 99.472 ns] change: [-0.3197% +0.1163% +0.5545%] (p = 0.60 > 0.05) coalesce_acked_from_zero 3+1 entries: No change in performance detected.time: [116.60 ns 117.02 ns 117.52 ns] change: [-0.9328% -0.0533% +0.6303%] (p = 0.91 > 0.05) coalesce_acked_from_zero 10+1 entries: No change in performance detected.time: [116.22 ns 116.67 ns 117.21 ns] change: [-0.6875% -0.0468% +0.4939%] (p = 0.88 > 0.05) coalesce_acked_from_zero 1000+1 entries: No change in performance detected.time: [97.502 ns 97.637 ns 97.792 ns] change: [-1.1294% +0.2169% +1.5984%] (p = 0.77 > 0.05) RxStreamOrderer::inbound_frame(): No change in performance detected.time: [111.05 ms 111.08 ms 111.10 ms] change: [-0.2144% -0.0206% +0.0960%] (p = 0.85 > 0.05) SentPackets::take_ranges: No change in performance detected.time: [5.5168 µs 5.6995 µs 5.8928 µs] change: [-0.8025% +1.7159% +4.2919%] (p = 0.20 > 0.05) transfer/pacing-false/varying-seeds: 💔 Performance has regressed.time: [45.166 ms 45.249 ms 45.338 ms] change: [+8.1457% +8.4559% +8.7621%] (p = 0.00 < 0.05) transfer/pacing-true/varying-seeds: 💔 Performance has regressed.time: [45.395 ms 45.471 ms 45.549 ms] change: [+7.9535% +8.2161% +8.4549%] (p = 0.00 < 0.05) transfer/pacing-false/same-seed: 💔 Performance has regressed.time: [44.777 ms 44.854 ms 44.940 ms] change: [+6.9865% +7.2606% +7.5470%] (p = 0.00 < 0.05) transfer/pacing-true/same-seed: 💔 Performance has regressed.time: [45.316 ms 45.387 ms 45.459 ms] change: [+7.5369% +7.8035% +8.0491%] (p = 0.00 < 0.05) 1-conn/1-100mb-resp/mtu-1504 (aka. Download)/client: No change in performance detected.time: [873.72 ms 882.89 ms 892.36 ms] thrpt: [112.06 MiB/s 113.26 MiB/s 114.45 MiB/s] change: time: [-1.9834% -0.4514% +1.0109%] (p = 0.56 > 0.05) thrpt: [-1.0008% +0.4535% +2.0235%] 1-conn/10_000-parallel-1b-resp/mtu-1504 (aka. RPS)/client: No change in performance detected.time: [299.86 ms 301.82 ms 303.86 ms] thrpt: [32.910 Kelem/s 33.132 Kelem/s 33.349 Kelem/s] change: time: [-1.0847% -0.1828% +0.7623%] (p = 0.71 > 0.05) thrpt: [-0.7565% +0.1831% +1.0966%] 1-conn/1-1b-resp/mtu-1504 (aka. HPS)/client: No change in performance detected.time: [34.156 ms 34.350 ms 34.564 ms] thrpt: [28.932 elem/s 29.112 elem/s 29.277 elem/s] change: time: [-0.6790% +0.1307% +0.9827%] (p = 0.76 > 0.05) thrpt: [-0.9732% -0.1305% +0.6837%] 1-conn/1-100mb-resp/mtu-1504 (aka. Upload)/client: No change in performance detected.time: [1.6450 s 1.6653 s 1.6860 s] thrpt: [59.313 MiB/s 60.048 MiB/s 60.791 MiB/s] change: time: [-1.3478% +0.3654% +1.9977%] (p = 0.67 > 0.05) thrpt: [-1.9586% -0.3641% +1.3662%] Client/server transfer resultsTransfer of 33554432 bytes over loopback.
|
The
handle_empty_datagram
unit tests sends and receives an empty datagram. To prevent a race condition where the receiver tries to receive the datagram before it is available (errorWouldBlock
), use a blocking socket viasocket()
instead.See e.g. CI failure in https://github.com/mozilla/neqo/actions/runs/12704862858/job/35414911552?pr=2133#step:5:3588.