Skip to content

High memory usage in Atom 1.18 beta #308

@simurai

Description

@simurai

Originally reported here: atom/atom#14436

In Atom 1.18 (currently beta), having a few files open and then enabling this package seems to use a lot of RAM (some GBs).

memory

Console shows:

task.coffee:109 FATAL ERROR: deserialize context Allocation failed - process out of memory
 1: (anonymous function) @ task.coffee:109emitOne @ events.js:96emit @ events.js:188readableAddChunk @ _stream_readable.js:176Readable.push @ _stream_readable.js:134onread @ net.js:543
task.coffee:109 node::Abort() [/Applications/Atom.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libnode.dylib]
 2: node::DLOpen(v8::FunctionCallbackInfo<v8::Value> const&) [/Applications/Atom.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libnode.dylib]
 3: v8::internal::V8::FatalProcessOutOfMemory(char const*, bool) [/Applications/Atom.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libnode.dylib]
 4: v8::internal::V8::FatalProcessOutOfMemory(char const*, bool) [/Applications/Atom.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libnode.dylib]
 5: v8::internal::Deserializer::DeserializePartial(v8::internal::Isolate*, v8::internal::Handle<v8::internal::JSGlobalProxy>) [/Applications/Atom.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libnode.dylib]
 6: v8::internal::Snapshot::NewContextFromSnapshot(v8::internal::Isolate*, v8::internal::Handle<v8::internal::JSGlobalProxy>) [/Applications/Atom.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libnode.dylib]
 7: v8::internal::Genesis::Genesis(v8::internal::Isolate*, v8::internal::MaybeHandle<v8::internal::JSGlobalProxy>, v8::Local<v8::ObjectTemplate>, v8::ExtensionConfiguration*, v8::internal::GlobalContextType) [/Applications/Atom.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libnode.dylib]
 8: v8::internal::Bootstrapper::CreateEnvironment(v8::internal::MaybeHandle<v8::internal::JSGlobalProxy>, v8::Local<v8::ObjectTemplate>, v8::ExtensionConfiguration*, v8::internal::GlobalContextType) [/Applications/Atom.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libnode.dylib]
 9: v8::Context::New(v8::Isolate*, v8::ExtensionConfiguration*, v8::Local<v8::ObjectTemplate>, v8::Local<v8::Value>) [/Applications/Atom.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libnode.dylib]
10: (anonymous function) @ task.coffee:109emitOne @ events.js:96emit @ events.js:188readableAddChunk @ _stream_readable.js:176Readable.push @ _stream_readable.js:134onread @ net.js:543
task.coffee:109 node::ContextifyContext::IsContext(v8::FunctionCallbackInfo<v8::Value> const&)(anonymous function) @ task.coffee:109emitOne @ events.js:96emit @ events.js:188readableAddChunk @ _stream_readable.js:176Readable.push @ _stream_readable.js:134onread @ net.js:543
task.coffee:109  [/Applications/Atom.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libnode.dylib](anonymous function) @ task.coffee:109emitOne @ events.js:96emit @ events.js:188readableAddChunk @ _stream_readable.js:176Readable.push @ _stream_readable.js:134onread @ net.js:543
task.coffee:109 
(anonymous function) @ task.coffee:109emitOne @ events.js:96emit @ events.js:188readableAddChunk @ _stream_readable.js:176Readable.push @ _stream_readable.js:134onread @ net.js:543
task.coffee:109 11: (anonymous function) @ task.coffee:109emitOne @ events.js:96emit @ events.js:188readableAddChunk @ _stream_readable.js:176Readable.push @ _stream_readable.js:134onread @ net.js:543
task.coffee:109 node::ContextifyContext::IsContext(v8::FunctionCallbackInfo<v8::Value> const&) [/Applications/Atom.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libnode.dylib]
12: (anonymous function) @ task.coffee:109emitOne @ events.js:96emit @ events.js:188readableAddChunk @ _stream_readable.js:176Readable.push @ _stream_readable.js:134onread @ net.js:543
task.coffee:109 node::ContextifyContext::IsContext(v8::FunctionCallbackInfo<v8::Value> const&) [/Applications/Atom.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libnode.dylib](anonymous function) @ task.coffee:109emitOne @ events.js:96emit @ events.js:188readableAddChunk @ _stream_readable.js:176Readable.push @ _stream_readable.js:134onread @ net.js:543
task.coffee:109 
13: (anonymous function) @ task.coffee:109emitOne @ events.js:96emit @ events.js:188readableAddChunk @ _stream_readable.js:176Readable.push @ _stream_readable.js:134onread @ net.js:543
task.coffee:109 node::ContextifyContext::MakeContext(v8::FunctionCallbackInfo<v8::Value> const&) [/Applications/Atom.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libnode.dylib]
14: (anonymous function) @ task.coffee:109emitOne @ events.js:96emit @ events.js:188readableAddChunk @ _stream_readable.js:176Readable.push @ _stream_readable.js:134onread @ net.js:543
task.coffee:109 v8::internal::FunctionCallbackArguments::Call(void (*)(v8::FunctionCallbackInfo<v8::Value> const&)) [/Applications/Atom.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libnode.dylib]
15: v8::internal::Builtins::InvokeApiFunction(v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*) [/Applications/Atom.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libnode.dylib]
16: v8::internal::Builtins::~Builtins() [/Applications/Atom.app/Contents/Frameworks/Electron Framework.framework/Versions/A/Libraries/libnode.dylib]
17: 0x2a687b7084e7
(anonymous function) @ task.coffee:109emitOne @ events.js:96emit @ events.js:188readableAddChunk @ _stream_readable.js:176Readable.push @ _stream_readable.js:134onread @ net.js:543
task.coffee:105 
<--- Last few GCs --->

   18620 ms: Mark-sweep 1389.3 (1420.7) -> 1354.5 (1387.7) MB, 648.4 / 0.0 ms (+ 0.0 ms in 36 steps since start of marking, biggest step 0.0 ms) [failed to reserve space in paged or large object space, trying to reduce memory footprint] [GC in old space requested].


<--- JS stacktrace --->

==== JS stack trace =========================================

Security context: 0x12ab5ea883b1 <JS Object>
    1: createContext [vm.js:57] [pc=0x2a687b8b3f41](this=0x623feef59d1 <an Object with map 0x16c82d44d3c9>,sandbox=0x21a8227130f9 <an Object with map 0x16c82d482379>)
    2: runInNewContext [vm.js:40] [pc=0x2a687b8b3cba](this=0x21a822713121 <a ContextifyScript with map 0x16c82d416001>,sandbox=0x21a8227130f9 <an Object with map 0x16c82d482379>,options=0x10c6d09043c1 <undefined>)
    3: runInNewC...

Might be related to adding snapshots atom/atom#13916, but not sure.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions