Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
RdeWilde opened this issue Jun 2, 2023 · 3 comments

Comments

@RdeWilde
Copy link

RdeWilde commented Jun 2, 2023

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
...
zsh: abort      open-rpc-typings -d openrpc-specs.json --output-go pkg/openrpc/ --name-go sui

When trying to generate a client in Go, the script crashes because of OOM. Tried to increase it, but it seems it is stuck in a loop or something.

Samething seems to happen with open-rpc/generator open-rpc/generator#689

<--- Last few GCs --->

[51614:0x158008000]    55860 ms: Mark-Compact 4045.5 (4132.3) -> 4031.4 (4133.6) MB, 5534.75 / 0.00 ms  (average mu = 0.118, current mu = 0.006) allocation failure; scavenge might not succeed
[51614:0x158008000]    59939 ms: Mark-Compact 4047.5 (4133.8) -> 4033.2 (4135.6) MB, 4057.96 / 0.00 ms  (average mu = 0.070, current mu = 0.005) allocation failure; scavenge might not succeed


<--- JS stacktrace --->

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
 1: 0x100a6bc2c node::Abort() [/opt/homebrew/Cellar/node/20.2.0/bin/node]
 2: 0x100a6d088 node::ModifyCodeGenerationFromStrings(v8::Local<v8::Context>, v8::Local<v8::Value>, bool) [/opt/homebrew/Cellar/node/20.2.0/bin/node]
 3: 0x100bd10d8 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [/opt/homebrew/Cellar/node/20.2.0/bin/node]
 4: 0x100bd1084 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [/opt/homebrew/Cellar/node/20.2.0/bin/node]
 5: 0x100d5b7ac v8::internal::Heap::CallGCPrologueCallbacks(v8::GCType, v8::GCCallbackFlags, v8::internal::GCTracer::Scope::ScopeId) [/opt/homebrew/Cellar/node/20.2.0/bin/node]
 6: 0x100d5e410 v8::internal::Heap::ComputeMutatorUtilization(char const*, double, double) [/opt/homebrew/Cellar/node/20.2.0/bin/node]
 7: 0x100d5c450 v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::internal::GarbageCollectionReason, char const*) [/opt/homebrew/Cellar/node/20.2.0/bin/node]
 8: 0x100d5a2c8 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/opt/homebrew/Cellar/node/20.2.0/bin/node]
 9: 0x100d52294 v8::internal::HeapAllocator::AllocateRawWithLightRetrySlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/opt/homebrew/Cellar/node/20.2.0/bin/node]
10: 0x100d52a10 v8::internal::HeapAllocator::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/opt/homebrew/Cellar/node/20.2.0/bin/node]
11: 0x100d3b8b0 v8::internal::Factory::NewFillerObject(int, v8::internal::AllocationAlignment, v8::internal::AllocationType, v8::internal::AllocationOrigin) [/opt/homebrew/Cellar/node/20.2.0/bin/node]
12: 0x10104aaa4 v8::internal::Runtime_AllocateInYoungGeneration(int, unsigned long*, v8::internal::Isolate*) [/opt/homebrew/Cellar/node/20.2.0/bin/node]
13: 0x1008acc44 Builtins_CEntry_Return1_ArgvOnStack_NoBuiltinExit [/opt/homebrew/Cellar/node/20.2.0/bin/node]
14: 0x108198e2c 
15: 0x1081b4320 
16: 0x108197374 
17: 0x1081952f0 
18: 0x1081ace74 
19: 0x107f3b2e4 
20: 0x100908fb8 Builtins_PromiseFulfillReactionJob [/opt/homebrew/Cellar/node/20.2.0/bin/node]
21: 0x10084ab94 Builtins_RunMicrotasks [/opt/homebrew/Cellar/node/20.2.0/bin/node]
22: 0x1008223f4 Builtins_JSRunMicrotasksEntry [/opt/homebrew/Cellar/node/20.2.0/bin/node]
23: 0x100ce7908 v8::internal::(anonymous namespace)::Invoke(v8::internal::Isolate*, v8::internal::(anonymous namespace)::InvokeParams const&) [/opt/homebrew/Cellar/node/20.2.0/bin/node]
24: 0x100ce7d9c v8::internal::(anonymous namespace)::InvokeWithTryCatch(v8::internal::Isolate*, v8::internal::(anonymous namespace)::InvokeParams const&) [/opt/homebrew/Cellar/node/20.2.0/bin/node]
25: 0x100d091d4 v8::internal::MicrotaskQueue::RunMicrotasks(v8::internal::Isolate*) [/opt/homebrew/Cellar/node/20.2.0/bin/node]
26: 0x100d09008 v8::internal::MicrotaskQueue::PerformCheckpointInternal(v8::Isolate*) [/opt/homebrew/Cellar/node/20.2.0/bin/node]
27: 0x10099cb40 node::InternalCallbackScope::Close() [/opt/homebrew/Cellar/node/20.2.0/bin/node]
28: 0x10099d094 node::InternalMakeCallback(node::Environment*, v8::Local<v8::Object>, v8::Local<v8::Object>, v8::Local<v8::Function>, int, v8::Local<v8::Value>*, node::async_context) [/opt/homebrew/Cellar/node/20.2.0/bin/node]
29: 0x1009b25e0 node::AsyncWrap::MakeCallback(v8::Local<v8::Function>, int, v8::Local<v8::Value>*) [/opt/homebrew/Cellar/node/20.2.0/bin/node]
30: 0x100a72fd0 node::fs::FSReqCallback::Resolve(v8::Local<v8::Value>) [/opt/homebrew/Cellar/node/20.2.0/bin/node]
31: 0x100a748f0 node::fs::AfterNoArgs(uv_fs_s*) [/opt/homebrew/Cellar/node/20.2.0/bin/node]
32: 0x100a66090 node::MakeLibuvRequestCallback<uv_fs_s, void (*)(uv_fs_s*)>::Wrapper(uv_fs_s*) [/opt/homebrew/Cellar/node/20.2.0/bin/node]
33: 0x1036132d4 uv__work_done [/opt/homebrew/Cellar/libuv/1.45.0/lib/libuv.1.dylib]
34: 0x103616928 uv__async_io [/opt/homebrew/Cellar/libuv/1.45.0/lib/libuv.1.dylib]
35: 0x1036262e4 uv__io_poll [/opt/homebrew/Cellar/libuv/1.45.0/lib/libuv.1.dylib]
36: 0x103616dc4 uv_run [/opt/homebrew/Cellar/libuv/1.45.0/lib/libuv.1.dylib]
37: 0x10099d994 node::SpinEventLoopInternal(node::Environment*) [/opt/homebrew/Cellar/node/20.2.0/bin/node]
38: 0x100aaebe4 node::NodeMainInstance::Run(node::ExitCode*, node::Environment*) [/opt/homebrew/Cellar/node/20.2.0/bin/node]
39: 0x100aae940 node::NodeMainInstance::Run() [/opt/homebrew/Cellar/node/20.2.0/bin/node]
40: 0x100a359fc node::LoadSnapshotDataAndRun(node::SnapshotData const**, node::InitializationResultImpl const*) [/opt/homebrew/Cellar/node/20.2.0/bin/node]
41: 0x100a35bfc node::Start(int, char**) [/opt/homebrew/Cellar/node/20.2.0/bin/node]
42: 0x1a2d53f28 start [/usr/lib/dyld]
zsh: abort      open-rpc-typings -d openrpc-specs.json --output-go pkg/openrpc/ --name-go sui

Here's the specification: https://gist.github.com/RdeWilde/b6ec9c3c9e0b921d496e4553b5935300

@sachinbm1717
Copy link

@RdeWilde Please let me know if you find any solution for this.

@RdeWilde
Copy link
Author

RdeWilde commented Jun 6, 2023

@RdeWilde Please let me know if you find any solution for this.

Updating node seems to be at least part of the solution

@tabaktoni
Copy link

I have this issue, and I nailed it down to recursion in the json specification.
How to resolve I don't know.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants