Skip to content

chore: Bump the competing stacks to latest versions#3567

Merged
larseggert merged 1 commit intomozilla:mainfrom
larseggert:chore-bump-competition2
Apr 18, 2026
Merged

chore: Bump the competing stacks to latest versions#3567
larseggert merged 1 commit intomozilla:mainfrom
larseggert:chore-bump-competition2

Conversation

@larseggert
Copy link
Copy Markdown
Collaborator

No description provided.

Copilot AI review requested due to automatic review settings April 17, 2026 15:18
Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Straightforward CI-only version bump for competing QUIC stacks used in interop/benchmark testing. Changes are well-scoped:

  • msquic v2.5.6 → v2.5.7 (patch)
  • google/quiche commit ref updated
  • s2n-quic v1.72.0 → v1.77.0 (minor)
  • bazelisk v1.25.0 → v1.28.1 (build tool, minor)
  • cloudflare/quiche unchanged at 0.24.5
  • CACHE_VERSION v2 → v3 — correctly invalidated to pick up the new builds

No concerns. The cache key already incorporates the individual version strings (line 66), so the CACHE_VERSION bump is belt-and-suspenders but harmless and consistent with the comment on line 28.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR bumps the pinned versions/refs used by the quic-build composite GitHub Action to keep the “competing stacks” used in perf comparisons up to date.

Changes:

  • Bumped cache invalidation version (CACHE_VERSION) to v3.
  • Updated pinned versions/refs for msquic, google/quiche, and s2n-quic.
  • Updated the Bazelisk download version used for building google/quiche.

Comment on lines 118 to 120
sudo curl -fsSL -o /usr/local/bin/bazel \
"https://github.com/bazelbuild/bazelisk/releases/download/v1.25.0/bazelisk-linux-$ARCH"
"https://github.com/bazelbuild/bazelisk/releases/download/v1.28.1/bazelisk-linux-$ARCH"
sudo chmod +x /usr/local/bin/bazel
Copy link

Copilot AI Apr 17, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Bazelisk version is hardcoded in the download URL here, but the cache key for the google/quiche build is computed earlier (before Bazel is installed) and therefore typically falls back to BAZEL_VER=unknown. That means changing the Bazelisk version won’t naturally invalidate the google build cache unless CACHE_VERSION is bumped. Consider defining a BAZELISK_VERSION alongside the other pinned versions and using it both in the download URL and in the cache key calculation for impl=google.

Copilot uses AI. Check for mistakes.
@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 17, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 94.44%. Comparing base (a1331f5) to head (6881cff).
⚠️ Report is 2 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3567      +/-   ##
==========================================
- Coverage   94.56%   94.44%   -0.12%     
==========================================
  Files         128      133       +5     
  Lines       39818    40163     +345     
  Branches    39818    40163     +345     
==========================================
+ Hits        37653    37932     +279     
- Misses       1329     1383      +54     
- Partials      836      848      +12     
Flag Coverage Δ
freebsd 93.49% <ø> (-0.13%) ⬇️
linux 94.54% <ø> (+0.02%) ⬆️
macos 94.47% <ø> (+<0.01%) ⬆️
windows 94.54% <ø> (+0.02%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Components Coverage Δ
neqo-common 98.61% <ø> (ø)
neqo-crypto 87.08% <ø> (ø)
neqo-http3 93.92% <ø> (ø)
neqo-qpack 95.14% <ø> (ø)
neqo-transport 95.65% <ø> (+0.04%) ⬆️
neqo-udp 84.90% <ø> (ø)
mtu 86.61% <ø> (ø)

@github-actions
Copy link
Copy Markdown
Contributor

Benchmark results

No significant performance differences relative to a1331f5.

All results
transfer/1-conn/1-100mb-resp (aka. Download): Change within noise threshold.
       time:   [208.97 ms 209.33 ms 209.73 ms]
       thrpt:  [476.80 MiB/s 477.72 MiB/s 478.53 MiB/s]
change:
       time:   [+0.0637% +0.3108% +0.5242] (p = 0.01 < 0.05)
       thrpt:  [-0.5215% -0.3098% -0.0636]
       Change within noise threshold.
Found 2 outliers among 100 measurements (2.00%)
1 (1.00%) high mild
1 (1.00%) high severe
transfer/1-conn/10_000-parallel-1b-resp (aka. RPS): No change in performance detected.
       time:   [286.49 ms 288.59 ms 290.75 ms]
       thrpt:  [34.394 Kelem/s 34.651 Kelem/s 34.905 Kelem/s]
change:
       time:   [-0.8055% +0.1435% +1.1608] (p = 0.78 > 0.05)
       thrpt:  [-1.1475% -0.1433% +0.8121]
       No change in performance detected.
Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high mild
transfer/1-conn/1-1b-resp (aka. HPS): No change in performance detected.
       time:   [38.790 ms 38.943 ms 39.117 ms]
       thrpt:  [25.564   B/s 25.679   B/s 25.780   B/s]
change:
       time:   [-1.1668% -0.5238% +0.1056] (p = 0.11 > 0.05)
       thrpt:  [-0.1055% +0.5266% +1.1806]
       No change in performance detected.
Found 10 outliers among 100 measurements (10.00%)
3 (3.00%) high mild
7 (7.00%) high severe
transfer/1-conn/1-100mb-req (aka. Upload): No change in performance detected.
       time:   [208.88 ms 209.22 ms 209.60 ms]
       thrpt:  [477.09 MiB/s 477.96 MiB/s 478.75 MiB/s]
change:
       time:   [-0.1182% +0.1194% +0.3638] (p = 0.32 > 0.05)
       thrpt:  [-0.3624% -0.1193% +0.1184]
       No change in performance detected.
Found 2 outliers among 100 measurements (2.00%)
1 (1.00%) high mild
1 (1.00%) high severe
streams/walltime/1-streams/each-1000-bytes: No change in performance detected.
       time:   [589.78 µs 591.71 µs 593.95 µs]
       change: [-0.6311% +0.0221% +0.6442] (p = 0.94 > 0.05)
       No change in performance detected.
Found 8 outliers among 100 measurements (8.00%)
1 (1.00%) high mild
7 (7.00%) high severe
streams/walltime/1000-streams/each-1-bytes: No change in performance detected.
       time:   [12.273 ms 12.315 ms 12.382 ms]
       change: [-0.0122% +0.3938% +1.0508] (p = 0.11 > 0.05)
       No change in performance detected.
Found 3 outliers among 100 measurements (3.00%)
2 (2.00%) high mild
1 (1.00%) high severe
streams/walltime/1000-streams/each-1000-bytes: Change within noise threshold.
       time:   [44.345 ms 44.389 ms 44.435 ms]
       change: [+0.2607% +0.4948% +0.6909] (p = 0.00 < 0.05)
       Change within noise threshold.
Found 8 outliers among 100 measurements (8.00%)
5 (5.00%) low mild
2 (2.00%) high mild
1 (1.00%) high severe
transfer/walltime/pacing-false/varying-seeds: Change within noise threshold.
       time:   [81.360 ms 81.413 ms 81.468 ms]
       change: [-1.8133% -1.6669% -1.5226] (p = 0.00 < 0.05)
       Change within noise threshold.
Found 4 outliers among 100 measurements (4.00%)
1 (1.00%) low mild
3 (3.00%) high mild
transfer/walltime/pacing-true/varying-seeds: No change in performance detected.
       time:   [82.644 ms 82.699 ms 82.753 ms]
       change: [-0.2096% -0.0298% +0.1135] (p = 0.76 > 0.05)
       No change in performance detected.
transfer/walltime/pacing-false/same-seed: No change in performance detected.
       time:   [81.017 ms 81.071 ms 81.128 ms]
       change: [-0.2270% -0.1065% +0.0046] (p = 0.08 > 0.05)
       No change in performance detected.
Found 2 outliers among 100 measurements (2.00%)
1 (1.00%) high mild
1 (1.00%) high severe
transfer/walltime/pacing-true/same-seed: Change within noise threshold.
       time:   [83.046 ms 83.095 ms 83.145 ms]
       change: [+0.0482% +0.1774% +0.2925] (p = 0.00 < 0.05)
       Change within noise threshold.

Download data for profiler.firefox.com or download performance comparison data.

@github-actions
Copy link
Copy Markdown
Contributor

Failed Interop Tests

QUIC Interop Runner, client vs. server, differences relative to main at a1331f5.

neqo-pr as clientneqo-pr as server
neqo-pr vs. go-x-net: BP BA
neqo-pr vs. haproxy: BP BA
neqo-pr vs. kwik: S L1 C1 BP BA
neqo-pr vs. lsquic: run cancelled after 20 min
neqo-pr vs. msquic: A L1 C1 🚀C2
neqo-pr vs. mvfst: A BP BA
neqo-pr vs. neqo: Z A
neqo-pr vs. nginx: BP BA
neqo-pr vs. ngtcp2: CM
neqo-pr vs. picoquic: A
neqo-pr vs. quic-go: A
neqo-pr vs. quic-zig: H DC LR C20 M S R Z 3 B U E A L1 L2 C1 C2 6 V2 BP BA CM
neqo-pr vs. quiche: BP BA
neqo-pr vs. s2n-quic: CM
neqo-pr vs. tquic: S BP BA
neqo-pr vs. xquic: A 🚀C1
aioquic vs. neqo-pr: CM
go-x-net vs. neqo-pr: CM
kwik vs. neqo-pr: BP BA CM
msquic vs. neqo-pr: CM
mvfst vs. neqo-pr: Z A L1 C1 CM
neqo vs. neqo-pr: A
openssl vs. neqo-pr: LR M A CM
quic-go vs. neqo-pr: CM
quic-zig vs. neqo-pr: H DC LR C20 M S R Z 3 B U E A L1 L2 C1 C2 6 V2 BP BA CM
quiche vs. neqo-pr: CM
quinn vs. neqo-pr: ⚠️C1 V2 CM
s2n-quic vs. neqo-pr: 🚀BA CM
tquic vs. neqo-pr: CM
xquic vs. neqo-pr: M CM
All results

Succeeded Interop Tests

QUIC Interop Runner, client vs. server

neqo-pr as client

neqo-pr as server

Unsupported Interop Tests

QUIC Interop Runner, client vs. server

neqo-pr as client

neqo-pr as server

@github-actions
Copy link
Copy Markdown
Contributor

Client/server transfer results

Performance differences relative to a1331f5.

No significant performance differences.

Table above only shows statistically significant changes. See all results below.

All results

Transfer of 33554432 bytes over loopback, min. 100 runs. All unit-less numbers are in milliseconds.

Client vs. server (params) Mean ± σ Min Max MiB/s ± σ Δ baseline Δ baseline
google-google-nopacing 458.5 ± 2.1 451.3 463.8 69.8 ± 15.2
google-neqo-cubic 266.8 ± 3.0 262.9 285.2 119.9 ± 10.7 0.4 0.2%
msquic-msquic-nopacing 165.2 ± 66.3 133.3 581.8 193.8 ± 0.5
msquic-neqo-cubic 176.8 ± 52.3 142.8 604.1 181.0 ± 0.6 -6.8 -3.7%
neqo-google-cubic 767.1 ± 3.1 760.9 782.3 41.7 ± 10.3 0.8 0.1%
neqo-msquic-cubic 156.3 ± 2.0 153.5 167.7 204.7 ± 16.0 0.4 0.3%
neqo-neqo-cubic 90.4 ± 2.3 86.0 96.8 353.9 ± 13.9 -0.6 -0.6%
neqo-neqo-cubic-nopacing 89.6 ± 2.7 84.9 96.4 357.0 ± 11.9 -0.6 -0.7%
neqo-neqo-newreno 90.5 ± 2.5 86.0 99.1 353.6 ± 12.8 -0.2 -0.3%
neqo-neqo-newreno-nopacing 90.7 ± 3.1 84.6 97.7 352.9 ± 10.3 -0.4 -0.4%
neqo-quiche-cubic 188.8 ± 2.5 184.4 196.9 169.5 ± 12.8 -0.1 -0.1%
neqo-s2n-cubic 212.7 ± 2.4 207.7 218.4 150.4 ± 13.3 -0.1 -0.1%
quiche-neqo-cubic 172.0 ± 3.4 165.6 182.0 186.1 ± 9.4 -0.2 -0.1%
quiche-quiche-nopacing 136.8 ± 3.1 131.6 147.1 233.9 ± 10.3
s2n-neqo-cubic 213.4 ± 3.3 207.0 220.4 149.9 ± 9.7 -0.2 -0.1%
s2n-s2n-nopacing 290.9 ± 27.2 277.7 413.4 110.0 ± 1.2

Download data for profiler.firefox.com or download performance comparison data.

@larseggert larseggert merged commit 7a4cfa9 into mozilla:main Apr 18, 2026
195 checks passed
@larseggert larseggert deleted the chore-bump-competition2 branch April 18, 2026 14:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants