node-osm-stream icon indicating copy to clipboard operation
node-osm-stream copied to clipboard

Out of memory error

Open bigbn opened this issue 6 years ago • 2 comments

I'm tryed to process large .osm file and got this:

<--- Last few GCs --->
[4314:0x3be41c0]   788839 ms: Mark-sweep 1349.7 (1406.1) -> 1349.5 (1406.6) MB, 1499.5 / 0.0 ms  allocation failure GC in old space requested
[4314:0x3be41c0]   790368 ms: Mark-sweep 1349.5 (1406.6) -> 1349.4 (1375.1) MB, 1529.3 / 0.0 ms  last resort GC in old space requested
[4314:0x3be41c0]   791849 ms: Mark-sweep 1349.4 (1375.1) -> 1349.4 (1374.6) MB, 1480.8 / 0.0 ms  last resort GC in old space requested

<--- JS stacktrace --->
==== JS stack trace =========================================
    0: ExitFrame [pc: 0x13944e60427d]
Security context: 0x1039978206a9 <JSObject>
    1: fileProcessor [/importer.js:~23] [pc=0x13944ea5b32c](this=0xc5ce40abbe9 <OSMStream map = 0x184279b53d81>,data=0x3b63b47298e9 <Object map = 0x184279b38da1>,callback=0x3b63b4729a79 <JSBoundFunction (BoundTargetFunction 0x3b63b4729a39)>)
    2: pushData [/node_modules/node-osm-stream/lib/node-osm-stream.js:~43] [pc=0x1...
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
 1: node::Abort() [/usr/local/bin/node]
 2: 0x88050c [/usr/local/bin/node]
 3: v8::Utils::ReportOOMFailure(char const*, bool) [/usr/local/bin/node]
 4: v8::internal::V8::FatalProcessOutOfMemory(char const*, bool) [/usr/local/bin/node]
 5: v8::internal::Factory::NewFixedArrayWithMap(v8::internal::Heap::RootListIndex, int, v8::internal::PretenureFlag) [/usr/local/bin/node]
 6: v8::internal::HashTable<v8::internal::NameDictionary, v8::internal::NameDictionaryShape>::New(v8::internal::Isolate*, int, v8::internal::PretenureFlag, v8::internal::MinimumCapacity) [/usr/local/bin/node]
 7: v8::internal::HashTable<v8::internal::NameDictionary, v8::internal::NameDictionaryShape>::EnsureCapacity(v8::internal::Handle<v8::internal::NameDictionary>, int, v8::internal::PretenureFlag) [/usr/local/bin/node]
 8: v8::internal::BaseNameDictionary<v8::internal::NameDictionary, v8::internal::NameDictionaryShape>::EnsureCapacity(v8::internal::Handle<v8::internal::NameDictionary>, int) [/usr/local/bin/node]
 9: v8::internal::BaseNameDictionary<v8::internal::NameDictionary, v8::internal::NameDictionaryShape>::AddNoUpdateNextEnumerationIndex(v8::internal::Handle<v8::internal::NameDictionary>, v8::internal::Handle<v8::internal::Name>, v8::internal::Handle<v8::internal::Object>, v8::internal::PropertyDetails, int*) [/usr/local/bin/node]
10: v8::internal::BaseNameDictionary<v8::internal::NameDictionary, v8::internal::NameDictionaryShape>::Add(v8::internal::Handle<v8::internal::NameDictionary>, v8::internal::Handle<v8::internal::Name>, v8::internal::Handle<v8::internal::Object>, v8::internal::PropertyDetails, int*) [/usr/local/bin/node]
11: v8::internal::LookupIterator::ApplyTransitionToDataProperty(v8::internal::Handle<v8::internal::JSReceiver>) [/usr/local/bin/node]
12: v8::internal::Object::AddDataProperty(v8::internal::LookupIterator*, v8::internal::Handle<v8::internal::Object>, v8::internal::PropertyAttributes, v8::internal::ShouldThrow, v8::internal::Object::StoreFromKeyed) [/usr/local/bin/node]
 13: v8::internal::Object::SetProperty(v8::internal::LookupIterator*, v8::internal::Handle<v8::internal::Object>, v8::internal::LanguageMode, v8::internal::Object::StoreFromKeyed) [/usr/local/bin/node]
 14: v8::internal::Runtime::SetObjectProperty(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, v8::internal::LanguageMode) [/usr/local/bin/node]
 15: v8::internal::Runtime_SetProperty(int, v8::internal::Object**, v8::internal::Isolate*) [/usr/local/bin/node]
 16: 0x13944e60427d

node -v

v10.2.1

bigbn avatar Jul 25 '18 09:07 bigbn

node ran out of memory. you need to allocate more memory for node. try node --max_old_space_size=4096 <your-script> without the tags

hartherbert avatar Aug 21 '18 07:08 hartherbert

But if it is a "stream" api, why does it need a lot of RAM?

bigbn avatar Aug 21 '18 09:08 bigbn