Skip to content

OOM issue (in all tested node versions) #61880

@systemcrash

Description

@systemcrash

Version

25.6.1

Platform

Darwin MacBook-Pro-3.local 24.4.0 Darwin Kernel Version 24.4.0: Fri Apr 11 18:32:50 PDT 2025; root:xnu-11417.101.15~117/RELEASE_ARM64_T6041 x86_64

Subsystem

No response

What steps will reproduce the bug?

Run a test suite using vitest

How often does it reproduce? Is there a required condition?

Consistently.

What is the expected behavior? Why is that the expected behavior?

No OOM...? :)

What do you see instead?

25.6.1 produces:

 ✓ tests/network.test.js (45 tests) 62ms

<--- Last few GCs --->

[37298:0x7fa6b8008000]    10620 ms: Scavenge (during sweeping) 4066.2 (4075.4) -> 4059.5 (4077.6) MB, pooled: 0.0 MB, 11.45 / 0.00 ms (average mu = 0.281, current mu = 0.230) allocation failure;
[37298:0x7fa6b8008000]    11402 ms: Mark-Compact (reduce) 4073.4 (4090.6) -> 4066.8 (4069.6) MB, pooled: 0.0 MB, 30.11 / 0.00 ms (+ 620.3 ms in 124 steps since start of marking, biggest step 5.0 ms, walltime since start of marking 692 ms) (average mu = 0.
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
----- Native stack trace -----

 1: 0x104a9def0 node::OOMErrorHandler(char const*, v8::OOMDetails const&) [/Users/me/git/project/node_modules/node/bin/node]
 2: 0x104ce6c78 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [/Users/me/git/project/node_modules/node/bin/node]
 3: 0x104f57687 v8::internal::Heap::FatalProcessOutOfMemory(char const*) [/Users/me/git/project/node_modules/node/bin/node]
 4: 0x104f5af2d v8::internal::Heap::RecomputeLimits(v8::internal::GarbageCollector, v8::base::TimeTicks) [/Users/me/git/project/node_modules/node/bin/node]
 5: 0x104f703cd v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags, v8::internal::PerformHeapLimitCheck)::$_1::operator()() const [/Users/me/git/project/node_modules/node/bin/node]
 6: 0x104f6fc9f void heap::base::Stack::SetMarkerAndCallbackImpl<v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags, v8::internal::PerformHeapLimitCheck)::$_1>(heap::base::Stack*, void*, void const*) [/Users/me/git/project/node_modules/node/bin/node]
 7: 0x105956c88 PushAllRegistersAndIterateStack [/Users/me/git/project/node_modules/node/bin/node]
 8: 0x104f550fc v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags, v8::internal::PerformHeapLimitCheck) [/Users/me/git/project/node_modules/node/bin/node]
 9: 0x104ea608f v8::internal::StackGuard::HandleInterrupts(v8::internal::StackGuard::InterruptLevel) [/Users/me/git/project/node_modules/node/bin/node]
10: 0x1054112c0 v8::internal::Runtime_StackGuardWithGap(int, unsigned long*, v8::internal::Isolate*) [/Users/me/git/project/node_modules/node/bin/node]
11: 0x105a58336 Builtins_CEntry_Return1_ArgvOnStack_NoBuiltinExit [/Users/me/git/project/node_modules/node/bin/node]
12: 0x132d7923e
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Unhandled Errors ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯

Vitest caught 1 unhandled error during the test run.
This might cause false positive tests. Resolve unhandled errors to make sure your tests are not affected.

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Unhandled Error ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Error: [vitest-pool]: Worker forks emitted error.
 ❯ EventEmitter.<anonymous> node_modules/vitest/dist/chunks/cli-api.B7PN_QUv.js:8043:22
 ❯ EventEmitter.emit node:events:508:20
 ❯ ChildProcess.emitUnexpectedExit node_modules/vitest/dist/chunks/cli-api.B7PN_QUv.js:7610:22
 ❯ ChildProcess.emit node:events:508:20
 ❯ Process.ChildProcess._handle.onexit node:internal/child_process:293:12

Caused by: Error: Worker exited unexpectedly
 ❯ ChildProcess.emitUnexpectedExit node_modules/vitest/dist/chunks/cli-api.B7PN_QUv.js:7609:33
 ❯ ChildProcess.emit node:events:508:20
 ❯ Process.ChildProcess._handle.onexit node:internal/child_process:293:12

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯

24.13.1 produces:

 ✓ tests/network.test.js (45 tests) 57ms

<--- Last few GCs --->

[37564:0x7fdfb0008000]    12981 ms: Scavenge (interleaved) 4036.8 (4053.8) -> 4031.8 (4092.3) MB, pooled: 0 MB, 29.57 / 0.00 ms  (average mu = 0.264, current mu = 0.189) allocation failure;
[37564:0x7fdfb0008000]    14973 ms: Mark-Compact (reduce) 4050.2 (4092.8) -> 4040.7 (4043.1) MB, pooled: 0 MB, 192.29 / 0.00 ms  (+ 1499.7 ms in 289 steps since start of marking, biggest step 14.7 ms, walltime since start of marking 1755 ms) (average mu =
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
----- Native stack trace -----

 1: 0x1022a1953 node::OOMErrorHandler(char const*, v8::OOMDetails const&) [/Users/me/git/project/node_modules/node/bin/node]
 2: 0x1024d213d v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [/Users/me/git/project/node_modules/node/bin/node]
 3: 0x10274e957 v8::internal::Heap::FatalProcessOutOfMemory(char const*) [/Users/me/git/project/node_modules/node/bin/node]
 4: 0x10275209a v8::internal::Heap::RecomputeLimits(v8::internal::GarbageCollector, v8::base::TimeTicks) [/Users/me/git/project/node_modules/node/bin/node]
 5: 0x102766066 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags)::$_1::operator()() const [/Users/me/git/project/node_modules/node/bin/node]
 6: 0x1027658ff void heap::base::Stack::SetMarkerAndCallbackImpl<v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags)::$_1>(heap::base::Stack*, void*, void const*) [/Users/me/git/project/node_modules/node/bin/node]
 7: 0x1031e94a8 PushAllRegistersAndIterateStack [/Users/me/git/project/node_modules/node/bin/node]
 8: 0x10274c3f9 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/Users/me/git/project/node_modules/node/bin/node]
 9: 0x1026b4c3f v8::internal::StackGuard::HandleInterrupts(v8::internal::StackGuard::InterruptLevel) [/Users/me/git/project/node_modules/node/bin/node]
10: 0x102c41343 v8::internal::Runtime_StackGuardWithGap(int, unsigned long*, v8::internal::Isolate*) [/Users/me/git/project/node_modules/node/bin/node]
11: 0x1032e8276 Builtins_CEntry_Return1_ArgvOnStack_NoBuiltinExit [/Users/me/git/project/node_modules/node/bin/node]
12: 0x12fe3b2f6
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Unhandled Errors ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯

Vitest caught 1 unhandled error during the test run.
This might cause false positive tests. Resolve unhandled errors to make sure your tests are not affected.

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Unhandled Error ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Error: [vitest-pool]: Worker forks emitted error.
 ❯ EventEmitter.<anonymous> node_modules/vitest/dist/chunks/cli-api.B7PN_QUv.js:8043:22
 ❯ EventEmitter.emit node:events:508:28
 ❯ ChildProcess.emitUnexpectedExit node_modules/vitest/dist/chunks/cli-api.B7PN_QUv.js:7610:22
 ❯ ChildProcess.emit node:events:508:28
 ❯ Process.ChildProcess._handle.onexit node:internal/child_process:294:12

Caused by: Error: Worker exited unexpectedly
 ❯ ChildProcess.emitUnexpectedExit node_modules/vitest/dist/chunks/cli-api.B7PN_QUv.js:7609:33
 ❯ ChildProcess.emit node:events:508:28
 ❯ Process.ChildProcess._handle.onexit node:internal/child_process:294:12

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯

### Additional information

Tried different versions of node and vitest. They all produce the same bug. 

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions