Skip to content

src: fix external reference registration for new CFunction lifetime #1881

src: fix external reference registration for new CFunction lifetime

src: fix external reference registration for new CFunction lifetime #1881

Triggered via push May 23, 2026 09:29
Status Failure
Total duration 2h 38m 40s
Artifacts

test-linux.yml

on: push
Matrix: test-linux
Fit to window
Zoom out
Zoom in

Annotations

10 errors
test-linux (ubuntu-24.04-arm)
Process completed with exit code 2.
test-linux (ubuntu-24.04-arm): test/wpt/test-wasm-jsapi.mjs#L0
--- stderr --- (node:199864) ExperimentalWarning: Importing WebAssembly module instances is an experimental feature and might change at any time (Use `node --trace-warnings ...` to show where the warning was created) /home/runner/work/node-v8/node-v8/node/test/common/wpt.js:850 throw new Error( ^ Error: Found 1 unexpected passes. Consider updating test/wpt/status/wasm/jsapi.json for these files: global/value-get-set.any.js:Calling setter without argument at process.<anonymous> (/home/runner/work/node-v8/node-v8/node/test/common/wpt.js:850:15) at process.emit (node:events:509:20) Node.js v27.0.0-pre --- stdout --- [SKIPPED] esm-integration/global-exports-live-bindings.tentative.any.js: Live bindings unsupported pending V8 WebAssemblyModuleRecord [SKIPPED] esm-integration/namespace-instance.tentative.any.js: pending https://github.com/nodejs/node/pull/59024 [SKIPPED] esm-integration/v128-tdz.tentative.any.js: v128 undefined Wasm bindings not yet supported in V8 [SKIPPED] exception/getArg.tentative.any.js: track - still tentative / unsupported [SKIPPED] function/call.tentative.any.js: track - still tentative / unsupported [SKIPPED] function/constructor.tentative.any.js: track - still tentative / unsupported [SKIPPED] function/table.tentative.any.js: track - still tentative / unsupported [SKIPPED] function/type.tentative.any.js: track - still tentative / unsupported [SKIPPED] global/type.tentative.any.js: track - still tentative / unsupported [SKIPPED] idlharness.any.js: track - still tentative / unsupported [SKIPPED] memory/constructor-types.tentative.any.js: track - still tentative / unsupported [SKIPPED] memory/type.tentative.any.js: track - still tentative / unsupported [SKIPPED] table/constructor-types.tentative.any.js: track - still tentative / unsupported [SKIPPED] table/type.tentative.any.js: track - still tentative / unsupported [SKIPPED] tag/type.tentative.any.js: track - still tentative / unsupported [PASS] Promise type [PASS] Missing argument [PASS] Invalid arguments [PASS] Branding [PASS] Empty buffer [PASS] Promise type [PASS] Invalid code [PASS] Result type [PASS] Stray argument [PASS] Changing the buffer [PASS] Missing arguments [PASS] WebAssembly.instantiate(module): Non-object imports argument: null [PASS] WebAssembly.instantiate(module): Non-object imports argument: true [PASS] WebAssembly.instantiate(module): Non-object imports argument: "" [PASS] WebAssembly.instantiate(module): Non-object imports argument: symbol "Symbol()" [PASS] WebAssembly.instantiate(module): Non-object imports argument: 1 [PASS] WebAssembly.instantiate(module): Non-object imports argument: 0.1 [PASS] WebAssembly.instantiate(module): Non-object imports argument: NaN [PASS] WebAssembly.instantiate(module): Non-object module: undefined [PASS] WebAssembly.instantiate(module): Non-object module: null [PASS] WebAssembly.instantiate(module): Non-object module: true [PASS] WebAssembly.instantiate(module): Non-object module: "" [PASS] WebAssembly.instantiate(module): Non-object module: symbol "Symbol()" [PASS] WebAssembly.instantiate(module): Non-object module: 1 [PASS] WebAssembly.instantiate(module): Non-object module: 0.1 [PASS] WebAssembly.instantiate(module): Non-object module: NaN [PASS] WebAssembly.instantiate(module): Missing imports argument [PASS] WebAssembly.instantiate(module): Imports argument with missing property: undefined [PASS] WebAssembly.instantiate(module): Imports argument with missing property: empty object [PASS] WebAssembly.instantiate(module): Imports argument with missing property: wrong property [PASS] WebAssembly.instantiate(module): Importing a function with an incorrectly-typed value: undefined [PASS] WebAssembly.instantiate(module): Importing a function with an incorrectly-typed value: null [PASS] WebAssembly.instantiate(module): Importing a function with an incorrectly-typed value: true [PASS] WebAssembly.instantiate(module): Importing a function with an incorrectly-typed value: "" [PASS] WebAssembly.instantiate(module): Importing a function with an incorrectly-typed value: symbol "
test-linux (ubuntu-24.04-arm): test/parallel/test-v8-serdes.js#L200
--- stderr --- node:internal/assert/utils:146 throw error; ^ AssertionError [ERR_ASSERTION]: New serialization format. This test is expected to fail when V8 changes its serialization format. When that happens, the "desStr" variable must be updated to the new value and the change should be mentioned in the release notes, as it is semver-major. Consider opening an issue as a heads up at https://github.com/nodejs/node/issues/new + actual - expected + 'ff106f2203666f6f5e007b01' - 'ff0f6f2203666f6f5e007b01' ^ at Object.<anonymous> (/home/runner/work/node-v8/node-v8/node/test/parallel/test-v8-serdes.js:200:10) at Module._compile (node:internal/modules/cjs/loader:1876:14) at Module._extensions..js (node:internal/modules/cjs/loader:2016:10) at Module.load (node:internal/modules/cjs/loader:1599:32) at Module._load (node:internal/modules/cjs/loader:1401:12) at wrapModuleLoad (node:internal/modules/cjs/loader:255:19) at Module.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:154:5) at node:internal/main/run_main_module:33:47 { generatedMessage: false, code: 'ERR_ASSERTION', actual: 'ff106f2203666f6f5e007b01', expected: 'ff0f6f2203666f6f5e007b01', operator: 'deepStrictEqual', diff: 'simple' } Node.js v27.0.0-pre Command: out/Release/node --expose-internals /home/runner/work/node-v8/node-v8/node/test/parallel/test-v8-serdes.js
test-linux (ubuntu-24.04-arm): test/parallel/test-runner-v8-deserializer.mjs#L106
--- stdout --- Test failure: 'should not hang when buffer starts with v8Header followed by oversized length' Location: test/parallel/test-runner-v8-deserializer.mjs:95:3 AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected + '�\x0F\x7F���' - 'ÿ\x0F\x7F���' at TestContext.<anonymous> (file:///home/runner/work/node-v8/node-v8/node/test/parallel/test-runner-v8-deserializer.mjs:106:12) at process.processTicksAndRejections (node:internal/process/task_queues:104:5) at async Test.run (node:internal/test_runner/test:1388:7) at async Suite.processPendingSubtests (node:internal/test_runner/test:959:7) { generatedMessage: true, code: 'ERR_ASSERTION', actual: '�\x0F\x7F���', expected: 'ÿ\x0F\x7F���', operator: 'strictEqual', diff: 'simple' } Test failure: 'should flush incomplete v8 frame as stdout and keep prior valid data' Location: test/parallel/test-runner-v8-deserializer.mjs:109:3 AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected + 'hello�\x0F\x00\x01\x00\x00' - 'helloÿ\x0F\x00\x01\x00\x00' ^ at TestContext.<anonymous> (file:///home/runner/work/node-v8/node-v8/node/test/parallel/test-runner-v8-deserializer.mjs:116:12) at process.processTicksAndRejections (node:internal/process/task_queues:104:5) at async Test.run (node:internal/test_runner/test:1388:7) at async Suite.processPendingSubtests (node:internal/test_runner/test:959:7) { generatedMessage: true, code: 'ERR_ASSERTION', actual: 'hello�\x0F\x00\x01\x00\x00', expected: 'helloÿ\x0F\x00\x01\x00\x00', operator: 'strictEqual', diff: 'simple' } Test failure: 'should flush v8Header-only bytes as stdout when stream ends' Location: test/parallel/test-runner-v8-deserializer.mjs:119:3 AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: '�\x0F' !== 'ÿ\x0F' at TestContext.<anonymous> (file:///home/runner/work/node-v8/node-v8/node/test/parallel/test-runner-v8-deserializer.mjs:123:12) at process.processTicksAndRejections (node:internal/process/task_queues:104:5) at async Test.run (node:internal/test_runner/test:1388:7) at async Suite.processPendingSubtests (node:internal/test_runner/test:959:7) { generatedMessage: true, code: 'ERR_ASSERTION', actual: '�\x0F', expected: 'ÿ\x0F', operator: 'strictEqual', diff: 'simple' } Test failure: 'should resync and parse valid messages after false v8 header' Location: test/parallel/test-runner-v8-deserializer.mjs:126:3 AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected + '�\x0F\x7F���' - 'ÿ\x0F\x7F���' at TestContext.<anonymous> (file:///home/runner/work/node-v8/node-v8/node/test/parallel/test-runner-v8-deserializer.mjs:136:12) at process.processTicksAndRejections (node:internal/process/task_queues:104:5) at async Test.run (node:internal/test_runner/test:1388:7) at async Suite.processPendingSubtests (node:internal/test_runner/test:959:7) { generatedMessage: true, code: 'ERR_ASSERTION', actual: '�\x0F\x7F���', expected: 'ÿ\x0F\x7F���', operator: 'strictEqual', diff: 'simple' } Test failure: 'should preserve a false v8 header split across chunks' Location: test/parallel/test-runner-v8-deserializer.mjs:139:3 AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected + '�\x0F\x7F���' - 'ÿ\x0F\x7F���' at TestContext.<anonymous> (file:///home/runner/work/node-v8/node-v8/node/test/parallel/test-runner-v8-deserializer.mjs:145:12) at process.processTicksAndRejections (node:internal/process/task_queues:104:5) at async Test.run (node:internal/test_runner/test:1388:7) at async Suite.processPendingSubtests (node:internal/test_runner/test:959:7) { generatedMessage: true, code: 'ERR_ASSERTION', actual: '�\x0F\x7F���', expected: 'ÿ\x0F\x7F���', operator: 'strictEqual', diff: 'simple' } Command: out/Release/node --expose-internals --no-warnings --
test-linux (ubuntu-24.04-arm): test/parallel/test-node-output-v8-warning.mjs#L12
--- stdout --- Test failure: 'v8/v8_warning.js' Location: test/parallel/test-node-output-v8-warning.mjs:11:5 AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected + '' - '(node:<pid>) V8: <project-root>/test/fixtures/v8/v8_warning.js:13 Invalid asm.js: Invalid return type\n' + - '(Use `<node-exe> --trace-warnings ...` to show where the warning was created)\n' at assertSnapshot (/home/runner/work/node-v8/node-v8/node/test/common/assertSnapshot.js:173:12) at async Module.spawnAndAssert (/home/runner/work/node-v8/node-v8/node/test/common/assertSnapshot.js:208:3) at async TestContext.<anonymous> (file:///home/runner/work/node-v8/node-v8/node/test/parallel/test-node-output-v8-warning.mjs:12:7) at async Test.run (node:internal/test_runner/test:1388:7) at async Promise.all (index 0) at async Suite.run (node:internal/test_runner/test:1861:7) at async startSubtestAfterBootstrap (node:internal/test_runner/harness:387:3) { generatedMessage: true, code: 'ERR_ASSERTION', actual: '', expected: '(node:<pid>) V8: <project-root>/test/fixtures/v8/v8_warning.js:13 Invalid asm.js: Invalid return type\n' + '(Use `<node-exe> --trace-warnings ...` to show where the warning was created)\n', operator: 'strictEqual', diff: 'simple' } Command: out/Release/node --test-reporter=./test/common/test-error-reporter.js --test-reporter-destination=stdout /home/runner/work/node-v8/node-v8/node/test/parallel/test-node-output-v8-warning.mjs
test-linux (ubuntu-24.04)
Process completed with exit code 2.
test-linux (ubuntu-24.04): test/wpt/test-wasm-jsapi.mjs#L0
--- stderr --- (node:205150) ExperimentalWarning: Importing WebAssembly module instances is an experimental feature and might change at any time (Use `node --trace-warnings ...` to show where the warning was created) /home/runner/work/node-v8/node-v8/node/test/common/wpt.js:850 throw new Error( ^ Error: Found 1 unexpected passes. Consider updating test/wpt/status/wasm/jsapi.json for these files: global/value-get-set.any.js:Calling setter without argument at process.<anonymous> (/home/runner/work/node-v8/node-v8/node/test/common/wpt.js:850:15) at process.emit (node:events:509:20) Node.js v27.0.0-pre --- stdout --- [SKIPPED] esm-integration/global-exports-live-bindings.tentative.any.js: Live bindings unsupported pending V8 WebAssemblyModuleRecord [SKIPPED] esm-integration/namespace-instance.tentative.any.js: pending https://github.com/nodejs/node/pull/59024 [SKIPPED] esm-integration/v128-tdz.tentative.any.js: v128 undefined Wasm bindings not yet supported in V8 [SKIPPED] exception/getArg.tentative.any.js: track - still tentative / unsupported [SKIPPED] function/call.tentative.any.js: track - still tentative / unsupported [SKIPPED] function/constructor.tentative.any.js: track - still tentative / unsupported [SKIPPED] function/table.tentative.any.js: track - still tentative / unsupported [SKIPPED] function/type.tentative.any.js: track - still tentative / unsupported [SKIPPED] global/type.tentative.any.js: track - still tentative / unsupported [SKIPPED] idlharness.any.js: track - still tentative / unsupported [SKIPPED] memory/constructor-types.tentative.any.js: track - still tentative / unsupported [SKIPPED] memory/type.tentative.any.js: track - still tentative / unsupported [SKIPPED] table/constructor-types.tentative.any.js: track - still tentative / unsupported [SKIPPED] table/type.tentative.any.js: track - still tentative / unsupported [SKIPPED] tag/type.tentative.any.js: track - still tentative / unsupported [PASS] Promise type [PASS] Missing argument [PASS] Invalid arguments [PASS] Branding [PASS] Empty buffer [PASS] Invalid code [PASS] Result type [PASS] Stray argument [PASS] Changing the buffer [PASS] Promise type [PASS] Missing arguments [PASS] Branding [PASS] Invalid arguments [PASS] Empty module without imports argument: BufferSource argument [PASS] Empty module without imports argument: Module argument [PASS] Empty module with undefined imports argument: BufferSource argument [PASS] Empty module with undefined imports argument: Module argument [PASS] Empty module with empty imports argument: BufferSource argument [PASS] Empty module with empty imports argument: Module argument [PASS] getter order for imports object: BufferSource argument [PASS] WebAssembly.instantiate(module): Non-object imports argument: null [PASS] WebAssembly.instantiate(module): Non-object imports argument: true [PASS] getter order for imports object: Module argument [PASS] WebAssembly.instantiate(module): Non-object imports argument: "" [PASS] WebAssembly.instantiate(module): Non-object imports argument: symbol "Symbol()" [PASS] WebAssembly.instantiate(module): Non-object imports argument: 1 [PASS] WebAssembly.instantiate(module): Non-object imports argument: 0.1 [PASS] WebAssembly.instantiate(module): Non-object imports argument: NaN [PASS] imports: BufferSource argument [PASS] imports: Module argument [PASS] WebAssembly.instantiate(module): Non-object module: undefined [PASS] WebAssembly.instantiate(module): Non-object module: null [PASS] WebAssembly.instantiate(module): Non-object module: true [PASS] imports with empty module names: BufferSource argument [PASS] imports with empty module names: Module argument [PASS] WebAssembly.instantiate(module): Non-object module: "" [PASS] WebAssembly.instantiate(module): Non-object module: symbol "Symbol()" [PASS] WebAssembly.instantiate(module): Non-object module: 1 [PASS] WebAssembly.instantiate(module): Non-object module: 0.1 [PASS] WebAssembly.instantiate(module): Non-object module: NaN [PASS] imports with empty names: BufferSource argument [PASS] imports with empty names:
test-linux (ubuntu-24.04): test/parallel/test-v8-serdes.js#L200
--- stderr --- node:internal/assert/utils:146 throw error; ^ AssertionError [ERR_ASSERTION]: New serialization format. This test is expected to fail when V8 changes its serialization format. When that happens, the "desStr" variable must be updated to the new value and the change should be mentioned in the release notes, as it is semver-major. Consider opening an issue as a heads up at https://github.com/nodejs/node/issues/new + actual - expected + 'ff106f2203666f6f5e007b01' - 'ff0f6f2203666f6f5e007b01' ^ at Object.<anonymous> (/home/runner/work/node-v8/node-v8/node/test/parallel/test-v8-serdes.js:200:10) at Module._compile (node:internal/modules/cjs/loader:1876:14) at Module._extensions..js (node:internal/modules/cjs/loader:2016:10) at Module.load (node:internal/modules/cjs/loader:1599:32) at Module._load (node:internal/modules/cjs/loader:1401:12) at wrapModuleLoad (node:internal/modules/cjs/loader:255:19) at Module.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:154:5) at node:internal/main/run_main_module:33:47 { generatedMessage: false, code: 'ERR_ASSERTION', actual: 'ff106f2203666f6f5e007b01', expected: 'ff0f6f2203666f6f5e007b01', operator: 'deepStrictEqual', diff: 'simple' } Node.js v27.0.0-pre Command: out/Release/node --expose-internals /home/runner/work/node-v8/node-v8/node/test/parallel/test-v8-serdes.js
test-linux (ubuntu-24.04): test/parallel/test-runner-v8-deserializer.mjs#L106
--- stdout --- Test failure: 'should not hang when buffer starts with v8Header followed by oversized length' Location: test/parallel/test-runner-v8-deserializer.mjs:95:3 AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected + '�\x0F\x7F���' - 'ÿ\x0F\x7F���' at TestContext.<anonymous> (file:///home/runner/work/node-v8/node-v8/node/test/parallel/test-runner-v8-deserializer.mjs:106:12) at process.processTicksAndRejections (node:internal/process/task_queues:104:5) at async Test.run (node:internal/test_runner/test:1388:7) at async Suite.processPendingSubtests (node:internal/test_runner/test:959:7) { generatedMessage: true, code: 'ERR_ASSERTION', actual: '�\x0F\x7F���', expected: 'ÿ\x0F\x7F���', operator: 'strictEqual', diff: 'simple' } Test failure: 'should flush incomplete v8 frame as stdout and keep prior valid data' Location: test/parallel/test-runner-v8-deserializer.mjs:109:3 AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected + 'hello�\x0F\x00\x01\x00\x00' - 'helloÿ\x0F\x00\x01\x00\x00' ^ at TestContext.<anonymous> (file:///home/runner/work/node-v8/node-v8/node/test/parallel/test-runner-v8-deserializer.mjs:116:12) at process.processTicksAndRejections (node:internal/process/task_queues:104:5) at async Test.run (node:internal/test_runner/test:1388:7) at async Suite.processPendingSubtests (node:internal/test_runner/test:959:7) { generatedMessage: true, code: 'ERR_ASSERTION', actual: 'hello�\x0F\x00\x01\x00\x00', expected: 'helloÿ\x0F\x00\x01\x00\x00', operator: 'strictEqual', diff: 'simple' } Test failure: 'should flush v8Header-only bytes as stdout when stream ends' Location: test/parallel/test-runner-v8-deserializer.mjs:119:3 AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: '�\x0F' !== 'ÿ\x0F' at TestContext.<anonymous> (file:///home/runner/work/node-v8/node-v8/node/test/parallel/test-runner-v8-deserializer.mjs:123:12) at process.processTicksAndRejections (node:internal/process/task_queues:104:5) at async Test.run (node:internal/test_runner/test:1388:7) at async Suite.processPendingSubtests (node:internal/test_runner/test:959:7) { generatedMessage: true, code: 'ERR_ASSERTION', actual: '�\x0F', expected: 'ÿ\x0F', operator: 'strictEqual', diff: 'simple' } Test failure: 'should resync and parse valid messages after false v8 header' Location: test/parallel/test-runner-v8-deserializer.mjs:126:3 AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected + '�\x0F\x7F���' - 'ÿ\x0F\x7F���' at TestContext.<anonymous> (file:///home/runner/work/node-v8/node-v8/node/test/parallel/test-runner-v8-deserializer.mjs:136:12) at process.processTicksAndRejections (node:internal/process/task_queues:104:5) at async Test.run (node:internal/test_runner/test:1388:7) at async Suite.processPendingSubtests (node:internal/test_runner/test:959:7) { generatedMessage: true, code: 'ERR_ASSERTION', actual: '�\x0F\x7F���', expected: 'ÿ\x0F\x7F���', operator: 'strictEqual', diff: 'simple' } Test failure: 'should preserve a false v8 header split across chunks' Location: test/parallel/test-runner-v8-deserializer.mjs:139:3 AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected + '�\x0F\x7F���' - 'ÿ\x0F\x7F���' at TestContext.<anonymous> (file:///home/runner/work/node-v8/node-v8/node/test/parallel/test-runner-v8-deserializer.mjs:145:12) at process.processTicksAndRejections (node:internal/process/task_queues:104:5) at async Test.run (node:internal/test_runner/test:1388:7) at async Suite.processPendingSubtests (node:internal/test_runner/test:959:7) { generatedMessage: true, code: 'ERR_ASSERTION', actual: '�\x0F\x7F���', expected: 'ÿ\x0F\x7F���', operator: 'strictEqual', diff: 'simple' } Command: out/Release/node --expose-internals --no-warnings --
test-linux (ubuntu-24.04): test/parallel/test-node-output-v8-warning.mjs#L12
--- stdout --- Test failure: 'v8/v8_warning.js' Location: test/parallel/test-node-output-v8-warning.mjs:11:5 AssertionError [ERR_ASSERTION]: Expected values to be strictly equal: + actual - expected + '' - '(node:<pid>) V8: <project-root>/test/fixtures/v8/v8_warning.js:13 Invalid asm.js: Invalid return type\n' + - '(Use `<node-exe> --trace-warnings ...` to show where the warning was created)\n' at assertSnapshot (/home/runner/work/node-v8/node-v8/node/test/common/assertSnapshot.js:173:12) at async Module.spawnAndAssert (/home/runner/work/node-v8/node-v8/node/test/common/assertSnapshot.js:208:3) at async TestContext.<anonymous> (file:///home/runner/work/node-v8/node-v8/node/test/parallel/test-node-output-v8-warning.mjs:12:7) at async Test.run (node:internal/test_runner/test:1388:7) at async Promise.all (index 0) at async Suite.run (node:internal/test_runner/test:1861:7) at async startSubtestAfterBootstrap (node:internal/test_runner/harness:387:3) { generatedMessage: true, code: 'ERR_ASSERTION', actual: '', expected: '(node:<pid>) V8: <project-root>/test/fixtures/v8/v8_warning.js:13 Invalid asm.js: Invalid return type\n' + '(Use `<node-exe> --trace-warnings ...` to show where the warning was created)\n', operator: 'strictEqual', diff: 'simple' } Command: out/Release/node --test-reporter=./test/common/test-error-reporter.js --test-reporter-destination=stdout /home/runner/work/node-v8/node-v8/node/test/parallel/test-node-output-v8-warning.mjs