Closed Bug 1875239 Opened 4 months ago Closed 3 months ago

Update the version of Node for tests to use at least Node 18

Categories

(Firefox Build System :: Toolchains, task)

task

Tracking

(firefox125 fixed)

RESOLVED FIXED
125 Branch
Tracking Status
firefox125 --- fixed

People

(Reporter: standard8, Assigned: glandium)

References

(Blocks 1 open bug)

Details

Attachments

(1 file)

For ESLint v9, we need to update Node to version 18.18.0 or later on the test machines.

I have done some preliminary tests and it appears that Node 18 requires Glibc v2.28 or later which is not available on our Linux Ubuntu 18.04 machines.

For background: ESLint is working towards releasing a version 9 later this year, it is currently in the alpha stage. We would like to be able to upgrade to it once it is out, because there are significant improvements to the configuration system which will help to resolve some issues in the ESLint system for mozilla-central.

We are starting on this work early as it is a significant change and requires some preparation work.

See Also: → 1846951
Duplicate of this bug: 1840850

"Tests" is a broad term. But you're talking about eslint. So, what is it you want exactly? node 18 on tests (e.g. mochitest, etc.) or on lints (e.g. tasks in taskcluster/ci/source-test/node.yml)? If only the latter, then there is no problem with glibc 2.28, as those lints run on Debian 12.

Thank you, I hadn't realised that lints run on a different distribution, which would explain why the ES job still ran on my try push.

So I think the set would be:

How would ensure that developers got the new version of node when running bootstrap? I can see the node toolchain is marked as local-toolchain, but I can't see how the version of the toolchain would be selected.

Flags: needinfo?(mh+mozilla)

Puppeteer deprecated Node 16 in its newest release and it would be good to not be blocked in the near future by running these tests in our infra - source tests currently use Node 16. As such it would be great to get an upgrade here.

Blocks: 1878632
See Also: 1878632

(In reply to Henrik Skupin [:whimboo][⌚️UTC+1] from comment #4)

Puppeteer deprecated Node 16 in its newest release and it would be good to not be blocked in the near future by running these tests in our infra - source tests currently use Node 16. As such it would be great to get an upgrade here.

We are actually blocked by vendoring new versions of Puppeteer into mozilla-central. At least two new methods are used which do not exist pre version 18. We would appreciate any progress on this bug.

Depends on: 1879465
Depends on: 1879466
Assignee: nobody → mh+mozilla
Status: NEW → ASSIGNED
Flags: needinfo?(mh+mozilla)
Depends on: 1880001
Duplicate of this bug: 1878787
Pushed by mh@glandium.org:
https://hg.mozilla.org/integration/autoland/rev/da0966c2c2d5
Switch most tasks to node 18. r=jmaher,firefox-build-system-reviewers,sergesanspaille,perftest-reviewers,sparky
node moz-http2 [stderr] (node:4868) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 window_update listeners added to [Flow]. Use emitter.setMaxListeners() to increase limit
Flags: needinfo?(mh+mozilla) → needinfo?(jmaher)

:valentin, any chance you would know about this? I see your name as an author on some of the moz-http2 stuff.

Flags: needinfo?(jmaher) → needinfo?(valentin.gosu)

Warning message with a trace:

[task 2024-02-21T01:57:30.592Z] 01:57:30     INFO -  node moz-http2 [stderr] (node:5623) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 window_update listeners added to [Flow]. Use emitter.setMaxListeners() to increase limit
[task 2024-02-21T01:57:30.592Z] 01:57:30     INFO -  node moz-http2 [stderr]     at _addListener (node:events:591:17)
[task 2024-02-21T01:57:30.592Z] 01:57:30     INFO -  node moz-http2 [stderr]     at Flow.addListener (node:events:609:10)
[task 2024-02-21T01:57:30.592Z] 01:57:30     INFO -  node moz-http2 [stderr]     at Readable.on (node:internal/streams/readable:928:35)
[task 2024-02-21T01:57:30.592Z] 01:57:30     INFO -  node moz-http2 [stderr]     at Flow.once (node:events:653:8)
[task 2024-02-21T01:57:30.593Z] 01:57:30     INFO -  node moz-http2 [stderr]     at Flow._read (/builds/worker/workspace/build/tests/xpcshell/node-http2/lib/protocol/flow.js:175:10)
[task 2024-02-21T01:57:30.593Z] 01:57:30     INFO -  node moz-http2 [stderr]     at Flow.read (/builds/worker/workspace/build/tests/xpcshell/node-http2/lib/protocol/flow.js:196:10)
[task 2024-02-21T01:57:30.593Z] 01:57:30     INFO -  node moz-http2 [stderr]     at Connection._send (/builds/worker/workspace/build/tests/xpcshell/node-http2/lib/protocol/connection.js:302:37)
[task 2024-02-21T01:57:30.593Z] 01:57:30     INFO -  node moz-http2 [stderr]     at process.processImmediate (node:internal/timers:476:21)

I have a patch fixing the emitter warnings in bug 1881204, but I'm not 100% sure it'll fix it.
I've run the tests locally with node19 and they seem to pass.

Flags: needinfo?(valentin.gosu)

(In reply to Valentin Gosu [:valentin] (he/him) from comment #13)

I have a patch fixing the emitter warnings in bug 1881204, but I'm not 100% sure it'll fix it.

It doesn't seem to. Well, it does fix the warnings. Not the timeouts.

You can disable the tests and file a Networking bug to figure out the problem. I expect it's something related to our Node proxy implementation.

Blocks: 1881334
Pushed by mh@glandium.org:
https://hg.mozilla.org/integration/autoland/rev/c5bcba552844
Switch most tasks to node 18. r=jmaher,firefox-build-system-reviewers,sergesanspaille,perftest-reviewers,sparky
Status: ASSIGNED → RESOLVED
Closed: 3 months ago
Resolution: --- → FIXED
Target Milestone: --- → 125 Branch

Thank you for fixing this, Mike.

Regressions: 1881901
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: