FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed – JavaScript heap out of memory

はじめに

redash v8 のリポジトリを clone して コンテナを build しようとすると、

` FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed – JavaScript heap out of memory `

というエラーになった。

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory

Writing Node.js report to file: report.20200305.111353.33.0.001.json
Node.js report completed
 1: 0x9dab70 node::Abort() [node]
 2: 0x9dbd26 node::OnFatalError(char const*, char const*) [node]
 3: 0xb3b18e v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [node]
 4: 0xb3b509 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [node]
 5: 0xce68a5  [node]
 6: 0xce6f36 v8::internal::Heap::RecomputeLimits(v8::internal::GarbageCollector) [node]
 7: 0xcf2dca v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [node]
 8: 0xcf3cd5 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [node]
 9: 0xcf66e8 v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationType, v8::internal::AllocationAlignment) [node]
10: 0xcbd017 v8::internal::Factory::NewFillerObject(int, bool, v8::internal::AllocationType) [node]
11: 0xff307b v8::internal::Runtime_AllocateInYoungGeneration(int, unsigned long*, v8::internal::Isolate*) [node]
12: 0x1376259  [node]
Aborted (core dumped)
npm ERR! code ELIFECYCLE
npm ERR! errno 134
npm ERR! redash-client@9.0.0-alpha build: `npm run clean && NODE_ENV=production webpack`
npm ERR! Exit status 134
npm ERR! 
npm ERR! Failed at the redash-client@9.0.0-alpha build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
ERROR: Service 'server' failed to build: The command '/bin/sh -c npm run build' returned a non-zero code: 134

原因

マシンのメモリーが足りない。

https://redash.io/help/open-source/dev-guide/docker

v8 のイメージをbuild するには最低限 4G のメモリーが必須となるようだ。

ビルドするマシンのメモリーを増やすことによって解決できた。