Repository navigation
test failures with newer linux when uv is shared #66491
Description
Activity
This appears to be a libuv header/library mismatch following Linux's EFTYPE addition. Reported upstream: libuv/libuv#5327
@kapouer Could you run this with the affected Node binary to confirm? No rebuild is needed.
const uv = process.binding('uv'); console.log(uv.UV_EFTYPE, uv.errname(-134), uv.errname(-4028));- addedlibuvIssues and PRs related to the libuv dependency or the uv binding.Issues and PRs related to the libuv dependency or the uv binding.shared_libIssues and PRs related to using Node.js as a shared library.Issues and PRs related to using Node.js as a shared library.linuxIssues and PRs related to the Linux platform.Issues and PRs related to the Linux platform.
on Oct 4, 2026 -134 Unknown system error -134 EFTYPEwhile the version compiled before returns
-4028 Unknown system error -134 EFTYPEDo I understand the problem correctly: nodejs makes a copy of the error definitions ? Why ?
Thanks, that confirms the mismatch.
Node exposes libuv error definitions at build time, while errname() uses the linked libuv at runtime, so they can get out of sync with --shared-uv.
libuv/libuv#5328 should fix this upstream.
libuv/libuv#5328 is merged. Both affected tests pass on Node main and v24.21.0 when built and run with fixed libuv. Build results.
Debian has also queued the fix for 1.53.0-1, which is currently unreleased.
Closing as resolved upstream; Debian packaging is tracked in Debian #1149904.
Version
24.21.0
Platform
Subsystem
tests, uv
What steps will reproduce the bug?
Run parallel/test-uv-errmap, parallel/test-uv-errno
How often does it reproduce? Is there a required condition?
Not sure, may be when shared libuv1 is built before the symbol for EFTYPE is defined,
then build nodejs when the symbol after EFTYPE is defined.
What is the expected behavior? Why is that the expected behavior?
I think the problem lies in the fact that nodejs copies uv errors codes at build time.
What do you see instead?
Two tests failures
not ok 3930 parallel/test-uv-errmap
duration_ms: 70.42400
severity: fail
exitcode: 1
stack: |-
node:assert:152
throw new AssertionError(obj);
^
...
not ok 3931 parallel/test-uv-errno
duration_ms: 69.43600
severity: fail
exitcode: 1
stack: |-
node:assert:152
throw new AssertionError(obj);
^
Additional information
node is build with --shared-uv.