pummel/test-heapdump-shadow-realm.js is flaky due to OOM
Test
pummel/test-heapdump-shadow-realm.js
Platform
Linux x64
Console output
11:41:28 not ok 3651 pummel/test-heapdump-shadow-realm
11:41:28 ---
11:41:28 duration_ms: 72141.13100
11:41:28 severity: crashed
11:41:28 exitcode: -6
11:41:28 stack: |-
11:41:28
11:41:28 <--- Last few GCs --->
11:41:28 0.[3846001:0x61f1c60] 46446 ms: Mark-Compact (reduce) 977.0 (993.2) -> 976.4 (993.7) MB, 1058.93 / 0.00 ms (+ 78.7 ms in 13 steps since start of marking, biggest step 13.7 ms, walltime since start of marking 1165 ms) (average mu = 0.260, current mu = 0.[3846001:0x61f1c60] 47642 ms: Mark-Compact (reduce) 977.1 (993.7) -> 976.5 (993.9) MB, 892.02 / 0.00 ms (+ 65.2 ms in 9 steps since start of marking, biggest step 16.2 ms, walltime since start of marking 978 ms) (average mu = 0.234, current mu = 0.200
11:41:28
11:41:28 <--- JS stacktrace --->
11:41:28
11:41:28 FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory
11:41:28 1: 0xca2d40 node::Abort() [out/Release/node]
11:41:28 2: 0xb7f1ab [out/Release/node]
11:41:28 3: 0xee4ff0 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [out/Release/node]
11:41:28 4: 0xee53ac v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [out/Release/node]
11:41:28 5: 0x10fa1e5 [out/Release/node]
11:41:28 6: 0x111095d v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [out/Release/node]
11:41:28 7: 0x10e875a v8::internal::HeapAllocator::AllocateRawWithLightRetrySlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [out/Release/node]
11:41:28 8: 0x10e92f5 v8::internal::HeapAllocator::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [out/Release/node]
11:41:28 9: 0x10c72fe v8::internal::Factory::NewFillerObject(int, v8::internal::AllocationAlignment, v8::internal::AllocationType, v8::internal::AllocationOrigin) [out/Release/node]
11:41:28 10: 0x1516e42 v8::internal::Runtime_AllocateInOldGeneration(int, unsigned long*, v8::internal::Isolate*) [out/Release/node]
11:41:28 11: 0x1951ef6 [out/Release/node]
11:41:28 ...
Build links
https://github.com/nodejs/reliability/issues/660
First CI: https://ci.nodejs.org/job/node-test-pull-request/53749/ Last CI: https://ci.nodejs.org/job/node-test-pull-request/53778/
Additional information
cc @legendecas
At first glance I think we could lower the number of shadow realms created in the test. But then the realms are supposed to be GC-able anyway...perhaps we should switch to setImmediate()
instead to give GC some time to kick in?