chore: Bump quinn-udp to 0.5.5
I would like to hold back here for now. Larger context posted on Matrix:
Upgrading mozilla-central to
windows-sysv0.59.0phabricator#D220890 upgrades
neqo_glueto usequinn-udpv0.5.5.
quinn-udpv0.5.5useswindows-sysv0.59.0. All other crates in mozilla-central, 13 in total, usewindows-sysv0.52.0. See each linked in this SearchFox search.If I understand the Mozilla policy on duplicate crate versions correctly, one should strive for a single version of each crate in mozilla-central only. This makes sense to me.
Upgrading each of these 13 crates to
windows-sysv0.59.0is a significant undertaking which I assume will take weeks.Before I start this large effort, posting here to make sure I am not misunderstanding the policy.
https://matrix.to/#/!OYZMPVBAZnIpKdnqHG:mozilla.org/$dytLNfz94wPzYCs__CnIjD3bXsyd4u-FfeZm1lE2gtg?via=mozilla.org&via=matrix.org&via=seirdy.one
The only relevant fix of v0.5.5 is https://github.com/quinn-rs/quinn/issues/1947. Given the low popularity of Android x86, I don't think this is a blocker for Neqo, right?
(Note, given that it is a patch release, I can update quinn-udp in mozilla-central without updating mozilla/neqo first.)
We can definitely hold back here. Thanks for the background!
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:
Project coverage is 95.35%. Comparing base (
2ca29c1) to head (bf82a5a). Report is 73 commits behind head on main.
Additional details and impacted files
@@ Coverage Diff @@
## main #2107 +/- ##
==========================================
- Coverage 95.35% 95.35% -0.01%
==========================================
Files 112 112
Lines 36325 36325
==========================================
- Hits 34638 34637 -1
- Misses 1687 1688 +1
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
Failed Interop Tests
QUIC Interop Runner, client vs. server
neqo-latest as client
- neqo-latest vs. aioquic: Z
- neqo-latest vs. haproxy: L1
- neqo-latest vs. msquic: A
- neqo-latest vs. mvfst: A L1 C1
- neqo-latest vs. neqo: C1
- neqo-latest vs. quic-go: L1 C1
- neqo-latest vs. xquic: A
neqo-latest as server
- aioquic vs. neqo-latest: L1
- lsquic vs. neqo-latest: run cancelled after 20 min
- msquic vs. neqo-latest: U
- mvfst vs. neqo-latest: Z A L1 C1
- ngtcp2 vs. neqo-latest: C20
- quic-go vs. neqo-latest: run cancelled after 20 min
- quinn vs. neqo-latest: V2
- xquic vs. neqo-latest: M
All results
Succeeded Interop Tests
QUIC Interop Runner, client vs. server
neqo-latest as client
- neqo-latest vs. aioquic: H DC LR C20 M S R 3 B U A L1 L2 C1 C2 6 V2
- neqo-latest vs. go-x-net: H DC LR M B U A L2 C2 6
- neqo-latest vs. haproxy: H DC LR C20 M S R Z 3 B U A L2 C1 C2 6 V2
- neqo-latest vs. kwik: H DC LR C20 M S R Z 3 B U A L1 L2 C1 C2 6 V2
- neqo-latest vs. lsquic: H DC LR C20 M S R Z 3 B U E A L1 L2 C1 C2 6 V2
- neqo-latest vs. msquic: H DC LR C20 M S R Z B U L1 L2 C1 C2 6 V2
- neqo-latest vs. mvfst: H DC LR M R Z 3 B U L2 C2 6
- neqo-latest vs. neqo: H DC LR C20 M S R Z 3 B U E A L1 L2 C2 6 V2
- neqo-latest vs. neqo-latest: H DC LR C20 M S R Z 3 B U E A L1 L2 C1 C2 6 V2
- neqo-latest vs. nginx: H DC LR C20 M S R Z 3 B U A L1 L2 C1 C2 6
- neqo-latest vs. ngtcp2: H DC LR C20 M S R Z 3 B U E A L1 L2 C1 C2 6 V2
- neqo-latest vs. picoquic: H DC LR C20 M S R Z 3 B U E A L1 L2 C1 C2 6 V2
- neqo-latest vs. quic-go: H DC LR C20 M S R Z 3 B U A L2 C2 6
- neqo-latest vs. quiche: H DC LR C20 M S R Z 3 B U A L1 L2 C1 C2 6
- neqo-latest vs. quinn: H DC LR C20 M S R Z 3 B U E A L1 L2 C1 C2 6
- neqo-latest vs. s2n-quic: H DC LR C20 M S R 3 B U E A L1 L2 C1 C2 6
- neqo-latest vs. xquic: H DC LR C20 M R Z 3 B U L1 L2 C1 C2 6
neqo-latest as server
- aioquic vs. neqo-latest: H DC LR C20 M S R Z 3 B A L2 C1 C2 6 V2
- chrome vs. neqo-latest: 3
- go-x-net vs. neqo-latest: H DC LR M B U A L2 C2 6
- kwik vs. neqo-latest: H DC LR C20 M S R Z 3 B U A L1 L2 C1 C2 6 V2
- msquic vs. neqo-latest: H DC LR C20 M S R Z B A L1 L2 C1 C2 6 V2
- mvfst vs. neqo-latest: H DC LR M 3 B L2 C2 6
- neqo vs. neqo-latest: H DC LR C20 M S R Z 3 B U E A L1 L2 C1 C2 6 V2
- ngtcp2 vs. neqo-latest: H DC LR M S R Z 3 B U E A L1 L2 C1 C2 6 V2
- picoquic vs. neqo-latest: H DC LR C20 M S R Z 3 B U E A L1 L2 C1 C2 6 V2
- quiche vs. neqo-latest: H DC LR M S R Z 3 B A L1 L2 C1 C2 6
- quinn vs. neqo-latest: H DC LR C20 M S R Z 3 B U E A L1 L2 C1 C2 6
- s2n-quic vs. neqo-latest: H DC LR M S R 3 B E A L1 L2 C1 C2 6
- xquic vs. neqo-latest: H DC LR C20 S R Z 3 B U A L1 L2 C1 C2 6
Unsupported Interop Tests
QUIC Interop Runner, client vs. server
neqo-latest as client
- neqo-latest vs. aioquic: E
- neqo-latest vs. go-x-net: C20 S R Z 3 E L1 C1 V2
- neqo-latest vs. haproxy: E
- neqo-latest vs. kwik: E
- neqo-latest vs. msquic: 3 E
- neqo-latest vs. mvfst: C20 S E V2
- neqo-latest vs. nginx: E V2
- neqo-latest vs. quic-go: E V2
- neqo-latest vs. quiche: E V2
- neqo-latest vs. quinn: V2
- neqo-latest vs. s2n-quic: Z V2
- neqo-latest vs. xquic: S E V2
neqo-latest as server
- aioquic vs. neqo-latest: U E
- chrome vs. neqo-latest: H DC LR C20 M S R Z B U E A L1 L2 C1 C2 6 V2
- go-x-net vs. neqo-latest: C20 S R Z 3 E L1 C1 V2
- kwik vs. neqo-latest: E
- msquic vs. neqo-latest: 3 E
- mvfst vs. neqo-latest: C20 S R U E V2
- quiche vs. neqo-latest: C20 U E V2
- s2n-quic vs. neqo-latest: C20 Z U V2
- xquic vs. neqo-latest: E V2
Benchmark results
Performance differences relative to 0b106c286f8f9c879f2122daab9e8bd12aa9a703.
coalesce_acked_from_zero 1+1 entries: No change in performance detected.
time: [99.262 ns 99.600 ns 99.967 ns]
change: [-0.4834% +0.1321% +0.6536%] (p = 0.67 > 0.05)
Found 10 outliers among 100 measurements (10.00%)
6 (6.00%) high mild
4 (4.00%) high severe
coalesce_acked_from_zero 3+1 entries: No change in performance detected.
time: [117.37 ns 117.77 ns 118.19 ns]
change: [-0.0167% +0.4792% +1.0002%] (p = 0.06 > 0.05)
Found 18 outliers among 100 measurements (18.00%)
2 (2.00%) low mild
16 (16.00%) high severe
coalesce_acked_from_zero 10+1 entries: No change in performance detected.
time: [116.78 ns 117.19 ns 117.70 ns]
change: [-0.1247% +0.6974% +1.7956%] (p = 0.15 > 0.05)
Found 14 outliers among 100 measurements (14.00%)
3 (3.00%) low severe
1 (1.00%) high mild
10 (10.00%) high severe
coalesce_acked_from_zero 1000+1 entries: No change in performance detected.
time: [97.327 ns 97.445 ns 97.582 ns]
change: [-1.3123% -0.5102% +0.2133%] (p = 0.21 > 0.05)
Found 10 outliers among 100 measurements (10.00%)
4 (4.00%) high mild
6 (6.00%) high severe
RxStreamOrderer::inbound_frame(): Change within noise threshold.
time: [111.76 ms 111.81 ms 111.86 ms]
change: [+0.3179% +0.3878% +0.4561%] (p = 0.00 Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) low mildtransfer/pacing-false/varying-seeds: No change in performance detected.
time: [25.794 ms 26.883 ms 27.961 ms]
change: [-9.0898% -4.1188% +1.1104%] (p = 0.13 > 0.05)
transfer/pacing-true/varying-seeds: No change in performance detected.
time: [34.263 ms 36.011 ms 37.816 ms]
change: [-7.1292% -0.4220% +6.3358%] (p = 0.89 > 0.05)
Found 2 outliers among 100 measurements (2.00%)
2 (2.00%) high mild
transfer/pacing-false/same-seed: No change in performance detected.
time: [30.910 ms 31.775 ms 32.603 ms]
change: [-6.3582% -2.9567% +0.3754%] (p = 0.09 > 0.05)
Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) low mild
transfer/pacing-true/same-seed: No change in performance detected.
time: [38.850 ms 41.687 ms 44.546 ms]
change: [-17.188% -8.3531% +1.0388%] (p = 0.08 > 0.05)
1-conn/1-100mb-resp (aka. Download)/client: Change within noise threshold.
time: [113.39 ms 113.83 ms 114.27 ms]
thrpt: [875.14 MiB/s 878.49 MiB/s 881.91 MiB/s]
change:
time: [-1.5799% -1.0621% -0.5212%] (p = 0.00 +1.0735% +1.6052%]
Found 4 outliers among 100 measurements (4.00%)
1 (1.00%) low severe
1 (1.00%) low mild
2 (2.00%) high mild
1-conn/10_000-parallel-1b-resp (aka. RPS)/client: :broken_heart: Performance has regressed.
time: [323.81 ms 326.90 ms 330.00 ms]
thrpt: [30.303 Kelem/s 30.590 Kelem/s 30.882 Kelem/s]
change:
time: [+1.1660% +2.6251% +4.2072%] (p = 0.00 -2.5580% -1.1526%]
1-conn/1-1b-resp (aka. HPS)/client: Change within noise threshold.
time: [33.491 ms 33.656 ms 33.830 ms]
thrpt: [29.560 elem/s 29.712 elem/s 29.859 elem/s]
change:
time: [-2.2615% -1.4308% -0.6364%] (p = 0.00 +1.4515% +2.3138%]
Found 3 outliers among 100 measurements (3.00%)
2 (2.00%) high mild
1 (1.00%) high severe
Client/server transfer results
Transfer of 33554432 bytes over loopback.
| Client | Server | CC | Pacing | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|---|---|---|
| msquic | msquic | 192.6 ± 94.5 | 94.0 | 355.6 | 1.00 | ||
| neqo | msquic | reno | on | 278.1 ± 89.1 | 217.5 | 462.3 | 1.00 |
| neqo | msquic | reno | 268.9 ± 86.9 | 214.3 | 460.4 | 1.00 | |
| neqo | msquic | cubic | on | 222.9 ± 24.9 | 201.1 | 288.7 | 1.00 |
| neqo | msquic | cubic | 267.7 ± 93.0 | 203.6 | 442.0 | 1.00 | |
| msquic | neqo | reno | on | 181.8 ± 127.3 | 83.2 | 581.9 | 1.00 |
| msquic | neqo | reno | 155.0 ± 99.7 | 83.1 | 364.2 | 1.00 | |
| msquic | neqo | cubic | on | 127.8 ± 91.1 | 80.9 | 432.6 | 1.00 |
| msquic | neqo | cubic | 154.9 ± 100.1 | 81.5 | 388.5 | 1.00 | |
| neqo | neqo | reno | on | 249.8 ± 124.5 | 140.3 | 580.2 | 1.00 |
| neqo | neqo | reno | 251.6 ± 126.0 | 133.8 | 542.3 | 1.00 | |
| neqo | neqo | cubic | on | 217.9 ± 95.1 | 136.8 | 422.8 | 1.00 |
| neqo | neqo | cubic | 258.4 ± 126.4 | 141.9 | 582.9 | 1.00 |
Firefox builds for this PR
The following builds are available for testing. Crossed-out builds did not succeed.
Closing here in favor of https://github.com/mozilla/neqo/pull/2209.