tools: run test-asan on ubuntu-24.04 #48508
Annotations
10 errors
test-asan:
test/parallel/test-cli-node-options.js#L1
Command: out/Release/node --test-reporter=spec --test-reporter-destination=stdout --test-reporter=./tools/github_reporter/index.js --test-reporter-destination=stdout /home/runner/work/node/node/test/parallel/test-cli-node-options.js
--- CRASHED (Signal: 11) ---
|
test-asan:
test/parallel/test-worker-http2-stream-terminate.js#L1
--- stderr ---
undefined:0
RangeError: Maximum call stack size exceeded
Node.js v23.0.0-pre
Command: out/Release/node --test-reporter=spec --test-reporter-destination=stdout --test-reporter=./tools/github_reporter/index.js --test-reporter-destination=stdout /home/runner/work/node/node/test/parallel/test-worker-http2-stream-terminate.js
--- CRASHED (Signal: 11) ---
|
test-asan:
test/parallel/test-worker-memory.js#L1
--- stderr ---
undefined:0
RangeError: Maximum call stack size exceeded
Node.js v23.0.0-pre
--- stdout ---
run() called with n=15 (numWorkers=4)
run() called with n=15 (numWorkers=4)
run() called with n=15 (numWorkers=4)
run() called with n=15 (numWorkers=4)
run() called with n=14 (numWorkers=4)
run() called with n=14 (numWorkers=4)
run() called with n=14 (numWorkers=4)
run() called with n=14 (numWorkers=4)
Command: out/Release/node --test-reporter=spec --test-reporter-destination=stdout --test-reporter=./tools/github_reporter/index.js --test-reporter-destination=stdout /home/runner/work/node/node/test/parallel/test-worker-memory.js
--- CRASHED (Signal: 6) ---
|
test-asan:
test/parallel/test-worker-init-failure.js#L69
--- stderr ---
node:assert:126
throw new AssertionError(obj);
^
AssertionError [ERR_ASSERTION]: Expected values to be strictly equal:
134 !== 0
at ChildProcess.<anonymous> (/home/runner/work/node/node/test/parallel/test-worker-init-failure.js:69:12)
at ChildProcess.<anonymous> (/home/runner/work/node/node/test/common/index.js:487:15)
at ChildProcess.emit (node:events:520:28)
at ChildProcess._handle.onexit (node:internal/child_process:294:12) {
generatedMessage: true,
code: 'ERR_ASSERTION',
actual: 134,
expected: 0,
operator: 'strictEqual'
}
Node.js v23.0.0-pre
--- stdout ---
child stdout:
child stderr: undefined:0
RangeError: Maximum call stack size exceeded
Node.js v23.0.0-pre
# Node.js[183104]: IsolatePlatformDelegate *node::NodePlatform::ForIsolate(Isolate *) at ../src/node_platform.cc:523
# Assertion failed: (data.first) != nullptr
----- Native stack trace -----
1: 0x55ac0737946f node::PosixSymbolDebuggingContext::GetStackTrace(void**, int) [/home/runner/work/node/node/out/Release/node]
2: 0x55ac07375c1e node::DumpNativeBacktrace(_IO_FILE*) [/home/runner/work/node/node/out/Release/node]
3: 0x55ac076333ee node::Assert(node::AssertionInfo const&) [/home/runner/work/node/node/out/Release/node]
4: 0x55ac0782bcae node::NodePlatform::ForIsolate(v8::Isolate*) [/home/runner/work/node/node/out/Release/node]
5: 0x55ac0782c17c node::NodePlatform::GetForegroundTaskRunner(v8::Isolate*) [/home/runner/work/node/node/out/Release/node]
=================================================================
==183104==ERROR: AddressSanitizer: heap-use-after-free on address 0x515000c9ec00 at pc 0x55ac071cd3a8 bp 0x7ffca02fa3d0 sp 0x7ffca02f9b90
WRITE of size 8 at 0x515000c9ec00 thread T0
6: 0x55ac07f1b81d v8::Isolate::Initialize(v8::Isolate*, v8::Isolate::CreateParams const&) [/home/runner/work/node/node/out/Release/node]
7: 0x55ac072300f1 node::NewIsolate(v8::Isolate::CreateParams*, uv_loop_s*, node::MultiIsolatePlatform*, node::SnapshotData const*, node::IsolateSettings const&) [/home/runner/work/node/node/out/Release/node]
8: 0x55ac07a4e397 node::worker::WorkerThreadData::WorkerThreadData(node::worker::Worker*) [/home/runner/work/node/node/out/Release/node]
9: 0x55ac07a3f2bc node::worker::Worker::Run() [/home/runner/work/node/node/out/Release/node]
10: 0x55ac07a485a5 [/home/runner/work/node/node/out/Release/node]
11: 0x55ac07a483bf [/home/runner/work/node/node/out/Release/node]
12: 0x55ac071ccf4d [/home/runner/work/node/node/out/Release/node]
13: 0x7fb8e0c9ca94 [/lib/x86_64-linux-gnu/libc.so.6]
14: 0x7fb8e0d29c3c [/lib/x86_64-linux-gnu/libc.so.6]
Aborted (core dumped)
Command: out/Release/node --test-reporter=spec --test-reporter-destination=stdout --test-reporter=./tools/github_reporter/index.js --test-reporter-destination=stdout /home/runner/work/node/node/test/parallel/test-worker-init-failure.js
|
test-asan:
test/parallel/test-worker-stack-overflow.js#L1
Command: out/Release/node --test-reporter=spec --test-reporter-destination=stdout --test-reporter=./tools/github_reporter/index.js --test-reporter-destination=stdout /home/runner/work/node/node/test/parallel/test-worker-stack-overflow.js
--- CRASHED (Signal: 11) ---
|
test-asan:
test/parallel/test-worker-stack-overflow-stack-size.js#L1
Command: out/Release/node --test-reporter=spec --test-reporter-destination=stdout --test-reporter=./tools/github_reporter/index.js --test-reporter-destination=stdout /home/runner/work/node/node/test/parallel/test-worker-stack-overflow-stack-size.js
--- CRASHED (Signal: 11) ---
|
test-asan:
test/sequential/test-single-executable-application.js#L54
--- stderr ---
[process 202430]: --- stderr ---
Found SEA blob 0x5649094c0080, size=2231
Found SEA resource 0x5649094c0080, size=2231
Read<uint32_t>()(4-byte), count=1: { 21223968 }, read 4 bytes
Read SEA magic 143da20
Read<uint32_t>()(4-byte), count=1: { 0 }, read 4 bytes
Read SEA flags 0
Read<uint64_t>()(8-byte), count=1: { 6 }, read 8 bytes
ReadStringView(), length=6: 0x5649094c0090, read 6 bytes, content: sea.js
Read SEA code path 0x5649094c0090, size=6
Read<uint64_t>()(8-byte), count=1: { 2201 }, read 8 bytes
ReadStringView(), length=2201: 0x5649094c009e, read 2201 bytes, content:
const { Module: { createRequire } } = require('module');
const createdRequire = createRequire(__filename);
// Although, require('../common') works locally, that couldn't be used here
// because we set NODE_TEST_DIR=/Users/iojs/node-tmp on Jenkins CI.
const { expectWarning, mustNotCall } = createdRequire(process.env.COMMON_DIRECTORY);
// This additionally makes sure that no unexpected warnings are emitted.
if (createdRequire('./sea-config.json').disableExperimentalSEAWarning) {
process.on('warning', mustNotCall());
} else {
expectWarning('ExperimentalWarning',
'Single executable application is an experimental feature and ' +
'might change at any time');
// Any unexpected warning would throw this error:
// https://github.com/nodejs/node/blob/c301404105a7256b79a0b8c4522ce47af96dfa17/test/common/index.js#L697-L700.
}
// Should be possible to require core modules that optionally require the
// "node:" scheme.
const { deepStrictEqual, strictEqual, throws } = require('assert');
const { dirname } = require('node:path');
// Checks that the source filename is used in the error stack trace.
strictEqual(new Error('lol').stack.split('\n')[1], ' at sea.js:25:13');
// Should be possible to require a core module that requires using the "node:"
// scheme.
{
const { test } = require('node:test');
strictEqual(typeof test, 'function');
}
// Should not be possible to require a core module without the "node:" scheme if
// it requires using the "node:" scheme.
throws(() => require('test'), {
code: 'ERR_UNKNOWN_BUILTIN_MODULE',
});
deepStrictEqual(process.argv, [process.execPath, process.execPath, '-a', '--b=c', 'd']);
strictEqual(require.cache, undefined);
strictEqual(require.extensions, undefined);
strictEqual(require.main, module);
strictEqual(require.resolve, undefined);
strictEqual(__filename, process.execPath);
strictEqual(__dirname, dirname(process.execPath));
strictEqual(module.exports, exports);
throws(() => require('./requirable.js'), {
code: 'ERR_UNKNOWN_BUILTIN_MODULE',
});
const requirable = createdRequire('./requirable.js');
deepStrictEqual(requirable, {
hello: 'world',
});
console.log('Hello, world! π');
Read SEA resource code 0x5649094c009e, size=2201
=================================================================
==202430==ERROR: AddressSanitizer: alloc-dealloc-mismatch (malloc vs operator delete) on 0x514000001c40
#0 0x5648eb20f706 in operator delete(void*, unsigned long) (/home/runner/work/node/node/test/.tmp.4152/sea+0x1c0f706) (BuildId: cd881da313bcf0ea28c07f53f863a331e65ca5f1)
#1 0x5648eb7b26ff in std::__uniq_ptr_impl<std::filesystem::__cxx11::path::_List::_Impl, std::filesystem::__cxx11::path::_List::_Impl_deleter>::reset(std::filesystem::__cxx11::path::_List::_Impl*) (/home/runner/work/node/node/test/.tmp.4152/sea+0x21b26ff) (BuildId: cd881da313bcf0ea28c07f53f863a331e65ca5f1)
#2 0x5648eb7b263c in std::__uniq_ptr_impl<std::filesystem::__cxx11::path::_List::_Impl, std::filesystem::__cxx11::path::_List::_Impl_deleter>::operator=(std::__uniq_ptr_impl<std::filesystem::__cxx11::path::_List::_Impl, std::filesystem::__cxx11::path::_List::_Impl_deleter>&&) (/home/runner/work/node/node/test/.tmp.4152/sea+0x21b263c) (BuildId: cd881da313bcf0ea28c07f53f863a331e65ca5f1)
#3 0x5648eb7b2600 in std::__uniq_ptr_data<std::filesystem::__cxx11::path::_List::_Impl, std::filesystem::__cxx11::path::_List::_Impl_deleter, true, true>::operator=(std::__uniq_ptr_data<std::filesystem::
|
test-asan:
test/sequential/test-single-executable-application-disable-experimental-sea-warning.js#L55
--- stderr ---
[process 202872]: --- stderr ---
Found SEA blob 0x55bb1f6c0080, size=2231
Found SEA resource 0x55bb1f6c0080, size=2231
Read<uint32_t>()(4-byte), count=1: { 21223968 }, read 4 bytes
Read SEA magic 143da20
Read<uint32_t>()(4-byte), count=1: { 1 }, read 4 bytes
Read SEA flags 1
Read<uint64_t>()(8-byte), count=1: { 6 }, read 8 bytes
ReadStringView(), length=6: 0x55bb1f6c0090, read 6 bytes, content: sea.js
Read SEA code path 0x55bb1f6c0090, size=6
Read<uint64_t>()(8-byte), count=1: { 2201 }, read 8 bytes
ReadStringView(), length=2201: 0x55bb1f6c009e, read 2201 bytes, content:
const { Module: { createRequire } } = require('module');
const createdRequire = createRequire(__filename);
// Although, require('../common') works locally, that couldn't be used here
// because we set NODE_TEST_DIR=/Users/iojs/node-tmp on Jenkins CI.
const { expectWarning, mustNotCall } = createdRequire(process.env.COMMON_DIRECTORY);
// This additionally makes sure that no unexpected warnings are emitted.
if (createdRequire('./sea-config.json').disableExperimentalSEAWarning) {
process.on('warning', mustNotCall());
} else {
expectWarning('ExperimentalWarning',
'Single executable application is an experimental feature and ' +
'might change at any time');
// Any unexpected warning would throw this error:
// https://github.com/nodejs/node/blob/c301404105a7256b79a0b8c4522ce47af96dfa17/test/common/index.js#L697-L700.
}
// Should be possible to require core modules that optionally require the
// "node:" scheme.
const { deepStrictEqual, strictEqual, throws } = require('assert');
const { dirname } = require('node:path');
// Checks that the source filename is used in the error stack trace.
strictEqual(new Error('lol').stack.split('\n')[1], ' at sea.js:25:13');
// Should be possible to require a core module that requires using the "node:"
// scheme.
{
const { test } = require('node:test');
strictEqual(typeof test, 'function');
}
// Should not be possible to require a core module without the "node:" scheme if
// it requires using the "node:" scheme.
throws(() => require('test'), {
code: 'ERR_UNKNOWN_BUILTIN_MODULE',
});
deepStrictEqual(process.argv, [process.execPath, process.execPath, '-a', '--b=c', 'd']);
strictEqual(require.cache, undefined);
strictEqual(require.extensions, undefined);
strictEqual(require.main, module);
strictEqual(require.resolve, undefined);
strictEqual(__filename, process.execPath);
strictEqual(__dirname, dirname(process.execPath));
strictEqual(module.exports, exports);
throws(() => require('./requirable.js'), {
code: 'ERR_UNKNOWN_BUILTIN_MODULE',
});
const requirable = createdRequire('./requirable.js');
deepStrictEqual(requirable, {
hello: 'world',
});
console.log('Hello, world! π');
Read SEA resource code 0x55bb1f6c009e, size=2201
=================================================================
==202872==ERROR: AddressSanitizer: alloc-dealloc-mismatch (malloc vs operator delete) on 0x514000001c40
#0 0x55bb0140f706 in operator delete(void*, unsigned long) (/home/runner/work/node/node/test/.tmp.4155/sea+0x1c0f706) (BuildId: cd881da313bcf0ea28c07f53f863a331e65ca5f1)
#1 0x55bb019b26ff in std::__uniq_ptr_impl<std::filesystem::__cxx11::path::_List::_Impl, std::filesystem::__cxx11::path::_List::_Impl_deleter>::reset(std::filesystem::__cxx11::path::_List::_Impl*) (/home/runner/work/node/node/test/.tmp.4155/sea+0x21b26ff) (BuildId: cd881da313bcf0ea28c07f53f863a331e65ca5f1)
#2 0x55bb019b263c in std::__uniq_ptr_impl<std::filesystem::__cxx11::path::_List::_Impl, std::filesystem::__cxx11::path::_List::_Impl_deleter>::operator=(std::__uniq_ptr_impl<std::filesystem::__cxx11::path::_List::_Impl, std::filesystem::__cxx11::path::_List::_Impl_deleter>&&) (/home/runner/work/node/node/test/.tmp.4155/sea+0x21b263c) (BuildId: cd881da313bcf0ea28c07f53f863a331e65ca5f1)
#3 0x55bb019b2600 in std::__uniq_ptr_data<std::filesystem::__cxx11::path::_List::_Impl, std::filesystem::__cxx11::path::_List::_Impl_deleter, true, true>::operator=(std::__uniq_ptr_data<std::filesystem::
|
test-asan:
test/sequential/test-single-executable-application-use-code-cache.js#L61
--- stderr ---
[process 203346]: --- stderr ---
Found SEA blob 0x55f8f82c0080, size=4951
Found SEA resource 0x55f8f82c0080, size=4951
Read<uint32_t>()(4-byte), count=1: { 21223968 }, read 4 bytes
Read SEA magic 143da20
Read<uint32_t>()(4-byte), count=1: { 4 }, read 4 bytes
Read SEA flags 4
Read<uint64_t>()(8-byte), count=1: { 6 }, read 8 bytes
ReadStringView(), length=6: 0x55f8f82c0090, read 6 bytes, content: sea.js
Read SEA code path 0x55f8f82c0090, size=6
Read<uint64_t>()(8-byte), count=1: { 2201 }, read 8 bytes
ReadStringView(), length=2201: 0x55f8f82c009e, read 2201 bytes, content:
const { Module: { createRequire } } = require('module');
const createdRequire = createRequire(__filename);
// Although, require('../common') works locally, that couldn't be used here
// because we set NODE_TEST_DIR=/Users/iojs/node-tmp on Jenkins CI.
const { expectWarning, mustNotCall } = createdRequire(process.env.COMMON_DIRECTORY);
// This additionally makes sure that no unexpected warnings are emitted.
if (createdRequire('./sea-config.json').disableExperimentalSEAWarning) {
process.on('warning', mustNotCall());
} else {
expectWarning('ExperimentalWarning',
'Single executable application is an experimental feature and ' +
'might change at any time');
// Any unexpected warning would throw this error:
// https://github.com/nodejs/node/blob/c301404105a7256b79a0b8c4522ce47af96dfa17/test/common/index.js#L697-L700.
}
// Should be possible to require core modules that optionally require the
// "node:" scheme.
const { deepStrictEqual, strictEqual, throws } = require('assert');
const { dirname } = require('node:path');
// Checks that the source filename is used in the error stack trace.
strictEqual(new Error('lol').stack.split('\n')[1], ' at sea.js:25:13');
// Should be possible to require a core module that requires using the "node:"
// scheme.
{
const { test } = require('node:test');
strictEqual(typeof test, 'function');
}
// Should not be possible to require a core module without the "node:" scheme if
// it requires using the "node:" scheme.
throws(() => require('test'), {
code: 'ERR_UNKNOWN_BUILTIN_MODULE',
});
deepStrictEqual(process.argv, [process.execPath, process.execPath, '-a', '--b=c', 'd']);
strictEqual(require.cache, undefined);
strictEqual(require.extensions, undefined);
strictEqual(require.main, module);
strictEqual(require.resolve, undefined);
strictEqual(__filename, process.execPath);
strictEqual(__dirname, dirname(process.execPath));
strictEqual(module.exports, exports);
throws(() => require('./requirable.js'), {
code: 'ERR_UNKNOWN_BUILTIN_MODULE',
});
const requirable = createdRequire('./requirable.js');
deepStrictEqual(requirable, {
hello: 'world',
});
console.log('Hello, world! π');
Read SEA resource code 0x55f8f82c009e, size=2201
Read<uint64_t>()(8-byte), count=1: { 2712 }, read 8 bytes
ReadStringView(), length=2712: 0x55f8f82c093f, read 2712 bytes
Read SEA resource code cache 0x55f8f82c093f, size=2712
=================================================================
==203346==ERROR: AddressSanitizer: alloc-dealloc-mismatch (malloc vs operator delete) on 0x514000001c40
#0 0x55f8da00f706 in operator delete(void*, unsigned long) (/home/runner/work/node/node/test/.tmp.4159/sea+0x1c0f706) (BuildId: cd881da313bcf0ea28c07f53f863a331e65ca5f1)
#1 0x55f8da5b26ff in std::__uniq_ptr_impl<std::filesystem::__cxx11::path::_List::_Impl, std::filesystem::__cxx11::path::_List::_Impl_deleter>::reset(std::filesystem::__cxx11::path::_List::_Impl*) (/home/runner/work/node/node/test/.tmp.4159/sea+0x21b26ff) (BuildId: cd881da313bcf0ea28c07f53f863a331e65ca5f1)
#2 0x55f8da5b263c in std::__uniq_ptr_impl<std::filesystem::__cxx11::path::_List::_Impl, std::filesystem::__cxx11::path::_List::_Impl_deleter>::operator=(std::__uniq_ptr_impl<std::filesystem::__cxx11::path::_List::_Impl, std::filesystem::__cxx11::path::_List::_Impl_deleter>&&) (/home/runner/work/node/node/test/.tmp.4159/sea+0x21b263c) (BuildId: cd881da313bcf0ea28c07f53f863a331e65ca5f1)
#3 0x55f8da5b2600 in std::_
|
test-asan:
test/sequential/test-worker-fshandles-error-on-termination.js#L1
--- stderr ---
undefined:0
RangeError: Maximum call stack size exceeded
Node.js v23.0.0-pre
=================================================================
==204750==ERROR: AddressSanitizer: heap-use-after-free on address 0x50d0000006c0 at pc 0x55a46907dbcd bp 0x7f12f17fd510 sp 0x7f12f17fd508
READ of size 8 at 0x50d0000006c0 thread T18
Command: out/Release/node --test-reporter=spec --test-reporter-destination=stdout --test-reporter=./tools/github_reporter/index.js --test-reporter-destination=stdout /home/runner/work/node/node/test/sequential/test-worker-fshandles-error-on-termination.js
--- TIMEOUT ---
|