CLDSRV-940: pin CI Node to 22.23.1 to fix node-fetch@2 premature-close regression#6209
Conversation
Hello leif-scality,My role is to assist you with the merge of this Available options
Available commands
Status report is not available. |
Incorrect fix versionThe
Considering where you are trying to merge, I ignored possible hotfix versions and I expected to find:
Please check the |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files
@@ Coverage Diff @@
## development/9.2 #6209 +/- ##
================================================
Coverage 84.49% 84.50%
================================================
Files 204 204
Lines 13217 13217
================================================
+ Hits 11168 11169 +1
+ Misses 2049 2048 -1
Flags with carried forward coverage won't be shown. Click here to find out more. 🚀 New features to boost your workflow:
|
…e regression Node 22.23.0 (from GitHub runner image 20260622) introduced a regression breaking node-fetch@2: reading a response body throws 'FetchError: Premature close' (nodejs/node#63989, node-fetch#1767), fixed in 22.23.1. CI floated node-version '22' and so picked up the broken release on every branch, failing the quota/rate-limit functional tooling. Pin to 22.23.1 (keeps the 22.23.0 security patches). Note: development/9.4 has a diverged CI layout (separate lint.yaml plus 4 node-version refs in tests.yaml) that this cascade will not fully cover; pin those 6 refs manually when bert-e raises the 9.4 cascade. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
9e45aa0 to
7b2dbfb
Compare
francoisferrand
left a comment
There was a problem hiding this comment.
nit: would be nice to have a way to store this value in just one place (like a single environment variable)... but probably overkill here, no simple way accross multiple actions
|
ping |
|
/approve |
Incorrect fix versionThe
Considering where you are trying to merge, I ignored possible hotfix versions and I expected to find:
Please check the The following options are set: approve |
|
ping |
ConflictA conflict has been raised during the creation of I have not created the integration branch. Here are the steps to resolve this conflict: git fetch
git checkout -B w/9.3/bugfix/CLDSRV-940-fix-CI-fetch-error-premature-close origin/development/9.3
git merge origin/bugfix/CLDSRV-940-fix-CI-fetch-error-premature-close
# <intense conflict resolution>
git commit
git push -u origin w/9.3/bugfix/CLDSRV-940-fix-CI-fetch-error-premature-closeThe following options are set: approve |
|
ping |
Integration data createdI have created the integration data for the additional destination branches.
The following branches will NOT be impacted:
You can set option The following options are set: approve |
Build failedThe build for commit did not succeed in branch w/9.3/bugfix/CLDSRV-940-fix-CI-fetch-error-premature-close The following options are set: approve |
Build failedThe build for commit did not succeed in branch w/9.4/bugfix/CLDSRV-940-fix-CI-fetch-error-premature-close The following options are set: approve |
Build failedThe build for commit did not succeed in branch w/9.3/bugfix/CLDSRV-940-fix-CI-fetch-error-premature-close The following options are set: approve |
CI functional‑test jobs (sur-tests, file-ft-tests, mongo-*-ft-tests) started failing intermittently around 2026‑06‑22 on ~12–15 bucket quota and rate‑limit tests, always with FetchError: … Premature close rather than an assertion. The root cause is a regression in the Node.js 22.23.0 / 24.17.0 security releases (nodejs/node#63989, node-fetch/node-fetch#1767) that breaks node-fetch@2 on reused keep‑alive pooled sockets under load, surfacing as a premature close while reading the response body. It hit globally and on the same day because the GitHub ubuntu-24.04 runner image bumped Node 22.22.3 → 22.23.0 and our CI selects Node via actions/setup-node with node-version: '22' (which floats to the latest 22.x), so every branch's runner picked up the broken release at once; only the bespoke node-fetch@2‑based quota/rate‑limit test tooling is affected (the AWS SDK v3 tests use a different HTTP stack, and the server itself is uninvolved — every request returns 200 and the process never crashes).
Pin the node-version to 22.23.1 to fix the issue.