Skip to content

fix: Add Ubuntu version to the cache key#3269

Merged
larseggert merged 2 commits into
mozilla:mainfrom
larseggert:chore-nss-imageos-cache-key
Dec 15, 2025
Merged

fix: Add Ubuntu version to the cache key#3269
larseggert merged 2 commits into
mozilla:mainfrom
larseggert:chore-nss-imageos-cache-key

Conversation

@larseggert

Copy link
Copy Markdown
Collaborator

Copilot AI review requested due to automatic review settings December 15, 2025 17:02
@codecov

codecov Bot commented Dec 15, 2025

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 93.66%. Comparing base (8975016) to head (6341603).
⚠️ Report is 3 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3269      +/-   ##
==========================================
- Coverage   93.68%   93.66%   -0.03%     
==========================================
  Files         125      125              
  Lines       37112    37112              
  Branches    37112    37112              
==========================================
- Hits        34770    34760      -10     
- Misses       1485     1496      +11     
+ Partials      857      856       -1     
Components Coverage Δ
neqo-common 98.12% <ø> (ø)
neqo-crypto 83.19% <ø> (-0.49%) ⬇️
neqo-http3 93.66% <ø> (ø)
neqo-qpack 94.40% <ø> (ø)
neqo-transport 94.54% <ø> (ø)
neqo-udp 82.42% <ø> (ø)
mtu 88.94% <ø> (ø)

@larseggert larseggert changed the title fix: Add ImageOS info to the cache key fix: Add Aubuntu version to the cache key Dec 15, 2025
@larseggert larseggert changed the title fix: Add Aubuntu version to the cache key fix: Add Ubuntu version to the cache key Dec 15, 2025

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

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 fixes a cache key collision issue in the NSS build action by incorporating the ImageOS environment variable into the cache key. This ensures that builds on different OS images (e.g., different Ubuntu versions) don't incorrectly share cached artifacts.

Key Changes:

  • Modified the NSS cache key to include ImageOS environment variable between the OS name and architecture fields

@github-actions

Copy link
Copy Markdown
Contributor

Failed Interop Tests

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

neqo-pr as clientneqo-pr as server
neqo-pr vs. aioquic: A 🚀C1
neqo-pr vs. go-x-net: A BP BA
neqo-pr vs. haproxy: A 🚀L1 C1 BP BA
neqo-pr vs. kwik: 🚀L1 BP BA
neqo-pr vs. linuxquic: A L1
neqo-pr vs. lsquic: L1 C1
neqo-pr vs. msquic: A L1 ⚠️L2 C1
neqo-pr vs. mvfst: A L1 🚀BA ⚠️C1
neqo-pr vs. nginx: A L1 C1 BP BA
neqo-pr vs. ngtcp2: A L1 ⚠️C1 CM
neqo-pr vs. picoquic: A 🚀C1
neqo-pr vs. quic-go: A ⚠️C1
neqo-pr vs. quiche: A L1 🚀C1 BP BA
neqo-pr vs. quinn: A
neqo-pr vs. s2n-quic: A 🚀L1 ⚠️BP BA CM
neqo-pr vs. tquic: S A L1 ⚠️C1 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
openssl vs. neqo-pr: LR M A CM
quic-go vs. neqo-pr: 🚀BP CM
quiche vs. neqo-pr: CM
quinn vs. neqo-pr: V2 CM
s2n-quic vs. neqo-pr: 🚀BP 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 71a4b74.

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 ± σ Δ main Δ main
google-neqo-cubic 271.1 ± 4.2 262.2 279.5 118.0 ± 7.6 💚 -1.3 -0.5%
neqo-neqo-cubic-nopacing 97.0 ± 3.7 90.0 104.3 329.9 ± 8.6 💔 1.6 1.7%
neqo-s2n-cubic 219.6 ± 4.2 213.8 230.5 145.7 ± 7.6 💚 -3.4 -1.5%
quiche-neqo-cubic 153.2 ± 4.8 136.4 168.4 208.9 ± 6.7 💔 1.8 1.2%

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 ± σ Δ main Δ main
google-google-nopacing 460.5 ± 5.0 453.7 481.3 69.5 ± 6.4
google-neqo-cubic 271.1 ± 4.2 262.2 279.5 118.0 ± 7.6 💚 -1.3 -0.5%
msquic-msquic-nopacing 167.5 ± 49.5 134.4 445.1 191.0 ± 0.6
msquic-neqo-cubic 194.7 ± 37.5 149.6 390.4 164.4 ± 0.9 -0.2 -0.1%
neqo-google-cubic 767.1 ± 4.4 760.6 787.8 41.7 ± 7.3 -1.1 -0.1%
neqo-msquic-cubic 159.9 ± 4.3 153.8 168.4 200.1 ± 7.4 -0.7 -0.5%
neqo-neqo-cubic 97.8 ± 4.5 88.5 108.3 327.2 ± 7.1 -0.5 -0.5%
neqo-neqo-cubic-nopacing 97.0 ± 3.7 90.0 104.3 329.9 ± 8.6 💔 1.6 1.7%
neqo-neqo-reno 98.6 ± 4.4 91.3 108.0 324.4 ± 7.3 0.6 0.6%
neqo-neqo-reno-nopacing 97.2 ± 4.4 88.6 105.1 329.3 ± 7.3 0.0 0.0%
neqo-quiche-cubic 194.4 ± 4.6 186.8 202.8 164.6 ± 7.0 0.9 0.5%
neqo-s2n-cubic 219.6 ± 4.2 213.8 230.5 145.7 ± 7.6 💚 -3.4 -1.5%
quiche-neqo-cubic 153.2 ± 4.8 136.4 168.4 208.9 ± 6.7 💔 1.8 1.2%
quiche-quiche-nopacing 141.7 ± 4.9 134.7 154.7 225.8 ± 6.5
s2n-neqo-cubic 173.8 ± 4.9 163.7 188.1 184.1 ± 6.5 0.2 0.1%
s2n-s2n-nopacing 255.5 ± 33.4 231.9 417.4 125.3 ± 1.0

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

@github-actions

Copy link
Copy Markdown
Contributor

Benchmark results

Significant performance differences relative to 71a4b74.

1-conn/1-100mb-req/mtu-1504 (aka. Upload)/client: 💔 Performance has regressed by +1.3252%.
       time:   [209.65 ms 210.11 ms 210.65 ms]
       thrpt:  [474.73 MiB/s 475.94 MiB/s 476.98 MiB/s]
change:
       time:   [+1.0550% +1.3252% +1.6374] (p = 0.00 < 0.05)
       thrpt:  [-1.6110% -1.3078% -1.0440]
       Performance has regressed.
Found 3 outliers among 100 measurements (3.00%)
1 (1.00%) low mild
2 (2.00%) high severe
All results
1-conn/1-100mb-resp/mtu-1504 (aka. Download)/client: Change within noise threshold.
       time:   [204.34 ms 204.60 ms 204.87 ms]
       thrpt:  [488.12 MiB/s 488.75 MiB/s 489.38 MiB/s]
change:
       time:   [-0.7339% -0.4689% -0.2376] (p = 0.00 < 0.05)
       thrpt:  [+0.2381% +0.4711% +0.7393]
       Change within noise threshold.
Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high mild
1-conn/10_000-parallel-1b-resp/mtu-1504 (aka. RPS)/client: No change in performance detected.
       time:   [282.56 ms 284.60 ms 286.68 ms]
       thrpt:  [34.882 Kelem/s 35.137 Kelem/s 35.391 Kelem/s]
change:
       time:   [-0.5653% +0.4059% +1.3129] (p = 0.40 > 0.05)
       thrpt:  [-1.2958% -0.4043% +0.5685]
       No change in performance detected.
Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high mild
1-conn/1-1b-resp/mtu-1504 (aka. HPS)/client: No change in performance detected.
       time:   [38.586 ms 38.730 ms 38.891 ms]
       thrpt:  [25.713   B/s 25.820   B/s 25.916   B/s]
change:
       time:   [-0.5294% +0.0761% +0.6702] (p = 0.81 > 0.05)
       thrpt:  [-0.6658% -0.0760% +0.5322]
       No change in performance detected.
Found 6 outliers among 100 measurements (6.00%)
2 (2.00%) high mild
4 (4.00%) high severe
1-conn/1-100mb-req/mtu-1504 (aka. Upload)/client: 💔 Performance has regressed by +1.3252%.
       time:   [209.65 ms 210.11 ms 210.65 ms]
       thrpt:  [474.73 MiB/s 475.94 MiB/s 476.98 MiB/s]
change:
       time:   [+1.0550% +1.3252% +1.6374] (p = 0.00 < 0.05)
       thrpt:  [-1.6110% -1.3078% -1.0440]
       Performance has regressed.
Found 3 outliers among 100 measurements (3.00%)
1 (1.00%) low mild
2 (2.00%) high severe
decode 4096 bytes, mask ff: No change in performance detected.
       time:   [4.5153 µs 4.5226 µs 4.5302 µs]
       change: [-0.2903% -0.0098% +0.2889] (p = 0.95 > 0.05)
       No change in performance detected.
Found 4 outliers among 100 measurements (4.00%)
1 (1.00%) high mild
3 (3.00%) high severe
decode 1048576 bytes, mask ff: No change in performance detected.
       time:   [1.1607 ms 1.1625 ms 1.1644 ms]
       change: [-0.9257% +0.0352% +0.9970] (p = 0.94 > 0.05)
       No change in performance detected.
Found 11 outliers among 100 measurements (11.00%)
11 (11.00%) high severe
decode 4096 bytes, mask 7f: No change in performance detected.
       time:   [5.7870 µs 5.7965 µs 5.8065 µs]
       change: [-0.6220% -0.2796% +0.0261] (p = 0.09 > 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
decode 1048576 bytes, mask 7f: Change within noise threshold.
       time:   [1.4728 ms 1.4749 ms 1.4772 ms]
       change: [-1.6294% -1.0549% -0.6408] (p = 0.00 < 0.05)
       Change within noise threshold.
Found 23 outliers among 100 measurements (23.00%)
1 (1.00%) high mild
22 (22.00%) high severe
decode 4096 bytes, mask 3f: No change in performance detected.
       time:   [5.5392 µs 5.5505 µs 5.5638 µs]
       change: [-0.8704% -0.1687% +0.3375] (p = 0.66 > 0.05)
       No change in performance detected.
Found 5 outliers among 100 measurements (5.00%)
2 (2.00%) high mild
3 (3.00%) high severe
decode 1048576 bytes, mask 3f: No change in performance detected.
       time:   [1.4151 ms 1.4181 ms 1.4217 ms]
       change: [-0.6706% -0.1523% +0.2736] (p = 0.57 > 0.05)
       No change in performance detected.
Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high severe
1-streams/each-1000-bytes/wallclock-time: No change in performance detected.
       time:   [581.89 µs 584.41 µs 587.38 µs]
       change: [-1.2214% -0.6122% +0.0333] (p = 0.05 > 0.05)
       No change in performance detected.
Found 9 outliers among 100 measurements (9.00%)
9 (9.00%) high severe
1-streams/each-1000-bytes/simulated-time: No change in performance detected.
       time:   [118.67 ms 118.90 ms 119.13 ms]
       thrpt:  [8.1975 KiB/s 8.2135 KiB/s 8.2293 KiB/s]
change:
       time:   [-0.2838% -0.0114% +0.2610] (p = 0.94 > 0.05)
       thrpt:  [-0.2603% +0.0114% +0.2846]
       No change in performance detected.
1000-streams/each-1-bytes/wallclock-time: No change in performance detected.
       time:   [12.401 ms 12.439 ms 12.478 ms]
       change: [-0.6301% -0.2058% +0.1995] (p = 0.35 > 0.05)
       No change in performance detected.
Found 2 outliers among 100 measurements (2.00%)
2 (2.00%) high mild
1000-streams/each-1-bytes/simulated-time: No change in performance detected.
       time:   [2.3296 s 2.3328 s 2.3361 s]
       thrpt:  [428.07   B/s 428.66   B/s 429.27   B/s]
change:
       time:   [-0.1508% +0.0600% +0.2689] (p = 0.57 > 0.05)
       thrpt:  [-0.2682% -0.0600% +0.1511]
       No change in performance detected.
1000-streams/each-1000-bytes/wallclock-time: No change in performance detected.
       time:   [50.146 ms 50.251 ms 50.356 ms]
       change: [-0.1168% +0.1734% +0.4896] (p = 0.26 > 0.05)
       No change in performance detected.
1000-streams/each-1000-bytes/simulated-time: No change in performance detected.
       time:   [16.103 s 16.389 s 16.672 s]
       thrpt:  [58.574 KiB/s 59.585 KiB/s 60.644 KiB/s]
change:
       time:   [-3.0773% -0.6488% +1.7592] (p = 0.58 > 0.05)
       thrpt:  [-1.7288% +0.6530% +3.1750]
       No change in performance detected.
coalesce_acked_from_zero 1+1 entries: No change in performance detected.
       time:   [89.319 ns 89.670 ns 90.028 ns]
       change: [-0.2440% +0.2645% +0.8627] (p = 0.39 > 0.05)
       No change in performance detected.
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:   [105.88 ns 106.46 ns 107.21 ns]
       change: [-0.5905% -0.1015% +0.3991] (p = 0.70 > 0.05)
       No change in performance detected.
Found 12 outliers among 100 measurements (12.00%)
1 (1.00%) high mild
11 (11.00%) high severe
coalesce_acked_from_zero 10+1 entries: No change in performance detected.
       time:   [105.18 ns 105.47 ns 105.87 ns]
       change: [-0.5948% +0.0705% +0.8969] (p = 0.87 > 0.05)
       No change in performance detected.
Found 8 outliers among 100 measurements (8.00%)
4 (4.00%) low mild
4 (4.00%) high severe
coalesce_acked_from_zero 1000+1 entries: No change in performance detected.
       time:   [90.762 ns 90.905 ns 91.067 ns]
       change: [-0.9118% -0.4365% +0.0276] (p = 0.08 > 0.05)
       No change in performance detected.
Found 19 outliers among 100 measurements (19.00%)
2 (2.00%) low mild
10 (10.00%) high mild
7 (7.00%) high severe
RxStreamOrderer::inbound_frame(): No change in performance detected.
       time:   [108.66 ms 108.77 ms 108.88 ms]
       change: [-0.2215% -0.0730% +0.0746] (p = 0.33 > 0.05)
       No change in performance detected.
Found 2 outliers among 100 measurements (2.00%)
2 (2.00%) high mild
sent::Packets::take_ranges: No change in performance detected.
       time:   [4.5358 µs 4.6386 µs 4.7314 µs]
       change: [-3.0217% +1.5045% +5.9108] (p = 0.52 > 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
transfer/pacing-false/varying-seeds/wallclock-time/run: Change within noise threshold.
       time:   [23.451 ms 23.477 ms 23.513 ms]
       change: [+1.0374% +1.1765% +1.3268] (p = 0.00 < 0.05)
       Change within noise threshold.
Found 1 outliers among 100 measurements (1.00%)
1 (1.00%) high severe
transfer/pacing-false/varying-seeds/simulated-time/run: No change in performance detected.
       time:   [23.941 s 23.941 s 23.941 s]
       thrpt:  [171.09 KiB/s 171.09 KiB/s 171.09 KiB/s]
change:
       time:   [+0.0000% +0.0000% +0.0000] (p = NaN > 0.05)
       thrpt:  [+0.0000% +0.0000% +0.0000]
       No change in performance detected.
transfer/pacing-true/varying-seeds/wallclock-time/run: Change within noise threshold.
       time:   [23.811 ms 23.834 ms 23.860 ms]
       change: [+0.6203% +0.7462% +0.8854] (p = 0.00 < 0.05)
       Change within noise threshold.
Found 3 outliers among 100 measurements (3.00%)
1 (1.00%) high mild
2 (2.00%) high severe
transfer/pacing-true/varying-seeds/simulated-time/run: No change in performance detected.
       time:   [23.676 s 23.676 s 23.676 s]
       thrpt:  [173.01 KiB/s 173.01 KiB/s 173.01 KiB/s]
change:
       time:   [+0.0000% +0.0000% +0.0000] (p = NaN > 0.05)
       thrpt:  [+0.0000% +0.0000% +0.0000]
       No change in performance detected.
transfer/pacing-false/same-seed/wallclock-time/run: Change within noise threshold.
       time:   [23.496 ms 23.532 ms 23.581 ms]
       change: [+1.2475% +1.4305% +1.6248] (p = 0.00 < 0.05)
       Change within noise threshold.
Found 3 outliers among 100 measurements (3.00%)
2 (2.00%) high mild
1 (1.00%) high severe
transfer/pacing-false/same-seed/simulated-time/run: No change in performance detected.
       time:   [23.941 s 23.941 s 23.941 s]
       thrpt:  [171.09 KiB/s 171.09 KiB/s 171.09 KiB/s]
change:
       time:   [+0.0000% +0.0000% +0.0000] (p = NaN > 0.05)
       thrpt:  [+0.0000% +0.0000% +0.0000]
       No change in performance detected.
transfer/pacing-true/same-seed/wallclock-time/run: No change in performance detected.
       time:   [23.964 ms 23.996 ms 24.041 ms]
       change: [-0.2862% -0.1262% +0.0740] (p = 0.18 > 0.05)
       No change in performance detected.
Found 2 outliers among 100 measurements (2.00%)
2 (2.00%) high severe
transfer/pacing-true/same-seed/simulated-time/run: No change in performance detected.
       time:   [23.676 s 23.676 s 23.676 s]
       thrpt:  [173.01 KiB/s 173.01 KiB/s 173.01 KiB/s]
change:
       time:   [+0.0000% +0.0000% +0.0000] (p = NaN > 0.05)
       thrpt:  [+0.0000% +0.0000% +0.0000]
       No change in performance detected.

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

@larseggert larseggert merged commit 3377117 into mozilla:main Dec 15, 2025
145 of 147 checks passed
Comment thread .github/actions/nss/action.yml
larseggert added a commit to larseggert/neqo that referenced this pull request Dec 16, 2025
@larseggert larseggert deleted the chore-nss-imageos-cache-key branch December 17, 2025 11:38
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.

3 participants