1

I'm trying to upgrade angular material from v14 to v15 and trying to push the changes up to repo in gitlab, however, it's hitting JavaScript heap out of memory on the pipeline job which is running ng test.

ng test --watch=false --browsers=ChromeHeadlessNoSandbox
- Generating browser application bundles (phase: setup)...
warn - You have enabled the JIT engine which is currently in preview.
warn - Preview features are not covered by semver, may introduce breaking changes, and can change at any time.
<--- Last few GCs --->
[43:0x746d3e0]   141701 ms: Mark-sweep 1946.9 (2083.3) -> 1946.9 (2080.1) MB, 846.9 / 0.0 ms  (average mu = 0.127, current mu = 0.000) allocation failure; GC in old space requested
[43:0x746d3e0]   142855 ms: Mark-sweep (reduce) 1946.9 (2080.1) -> 1946.8 (2033.8) MB, 1153.3 / 0.0 ms  (average mu = 0.067, current mu = 0.000) last resort; GC in old space requested
<--- JS stacktrace --->
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
 1: 0xb7b3f0 node::Abort() [ng test --watch=false --browsers=ChromeHeadlessNoSandbox]
 2: 0xa8c89a  [ng test --watch=false --browsers=ChromeHeadlessNoSandbox]
 3: 0xd631b0 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [ng test --watch=false --browsers=ChromeHeadlessNoSandbox]
 4: 0xd63557 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [ng test --watch=false --browsers=ChromeHeadlessNoSandbox]
 5: 0xf40c55  [ng test --watch=false --browsers=ChromeHeadlessNoSandbox]
 6: 0xf41b58 v8::internal::Heap::RecomputeLimits(v8::internal::GarbageCollector) [ng test --watch=false --browsers=ChromeHeadlessNoSandbox]
 7: 0xf52063  [ng test --watch=false --browsers=ChromeHeadlessNoSandbox]
 8: 0xf52ed8 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [ng test --watch=false --browsers=ChromeHeadlessNoSandbox]
 9: 0xf554d6 v8::internal::Heap::CollectAllAvailableGarbage(v8::internal::GarbageCollectionReason) [ng test --watch=false --browsers=ChromeHeadlessNoSandbox]
10: 0xf2ec5d v8::internal::HeapAllocator::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [ng test --watch=false --browsers=ChromeHeadlessNoSandbox]
11: 0xf0f150 v8::internal::Factory::AllocateRaw(int, v8::internal::AllocationType, v8::internal::AllocationAlignment) [ng test --watch=false --browsers=ChromeHeadlessNoSandbox]
12: 0xf06bc4 v8::internal::FactoryBase<v8::internal::Factory>::AllocateRawWithImmortalMap(int, v8::internal::AllocationType, v8::internal::Map, v8::internal::AllocationAlignment) [ng test --watch=false --browsers=ChromeHeadlessNoSandbox]
13: 0xf08f58 v8::internal::FactoryBase<v8::internal::Factory>::NewRawTwoByteString(int, v8::internal::AllocationType) [ng test --watch=false --browsers=ChromeHeadlessNoSandbox]
14: 0x11e4bb5 v8::internal::String::SlowFlatten(v8::internal::Isolate*, v8::internal::Handle<v8::internal::ConsString>, v8::internal::AllocationType) [ng test --watch=false --browsers=ChromeHeadlessNoSandbox]
15: 0xd6efbc v8::String::Utf8Length(v8::Isolate*) const [ng test --watch=false --browsers=ChromeHeadlessNoSandbox]
16: 0xb4ce17  [ng test --watch=false --browsers=ChromeHeadlessNoSandbox]
17: 0xdc12a0  [ng test --watch=false --browsers=ChromeHeadlessNoSandbox]
18: 0xdc27df v8::internal::Builtin_HandleApiCall(int, unsigned long*, v8::internal::Isolate*) [ng test --watch=false --browsers=ChromeHeadlessNoSandbox]
19: 0x1700679  [ng test --watch=false --browsers=ChromeHeadlessNoSandbox]
Aborted

And I didn't encounter the same error on my local machine.

The test files changes only related imports, all they do is just updating existing imports to load from legacy module. For example,

import { MatLegacyDialog as MatDialog } from '@angular/material/legacy-dialog';

Is it increasing max_old_space_size is the solution for this issue? As I see most suggestions are related to it. And is it possible to setup max_old_space_size on gitlab, how am I able to do that? Or it's actually a bug that's related to official angular material?

rakurice
  • 11
  • 1

0 Answers0