dukat icon indicating copy to clipboard operation
dukat copied to clipboard

OOM Crash while running on twilio lib

Open ScottPierce opened this issue 5 years ago • 1 comments

Attached is the twilio library, complete with .d.ts files.

Using dukat 0.0.28 I ran the following command on osx: dukat $(find . -name '*.d.ts')

I get this crash:

dukat -d ./output $(find . -name '*.d.ts')

<--- Last few GCs --->

[93979:0x110000000]    28649 ms: Mark-sweep 2047.0 (2050.8) -> 2046.4 (2050.8) MB, 247.0 / 0.0 ms  (+ 594.8 ms in 130 steps since start of marking, biggest step 6.6 ms, walltime since start of marking 922 ms) (average mu = 0.183, current mu = 0.124) alloc[93979:0x110000000]    30044 ms: Mark-sweep 2047.2 (2050.8) -> 2046.5 (2051.0) MB, 1391.5 / 0.0 ms  (+ 0.0 ms in 13 steps since start of marking, biggest step 0.0 ms, walltime since start of marking 1396 ms) (average mu = 0.083, current mu = 0.003) alloca

<--- JS stacktrace --->

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

    0: ExitFrame [pc: 0x1007502f9]
Security context: 0x167efa480921 <JSObject>
    1: syncMapFields_ [0x167e5aafcb19] [/usr/local/lib/node_modules/dukat/node_modules/google-protobuf/google-protobuf.js:~435] [pc=0x2bb3d84b03f2](this=0x167ee47c3391 <JSObject>)
    2: setMembersList [0x167e39de0229] [/usr/local/lib/node_modules/dukat/lib/converter.js:~17920] [pc=0x2bb3d85b5675](this=0x167ee47c3ad9 <JSObject>,0x167f000cc731 <JSArray[3]>)
    ...

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
 1: 0x100ba0c4a node::Abort() (.cold.1) [/usr/local/bin/node]
 2: 0x100084961 node::FatalError(char const*, char const*) [/usr/local/bin/node]
 3: 0x100084a89 node::OnFatalError(char const*, char const*) [/usr/local/bin/node]
 4: 0x10017fa4d v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [/usr/local/bin/node]
 5: 0x10017f9f7 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/usr/local/bin/node]
 6: 0x100299baf v8::internal::Heap::FatalProcessOutOfMemory(char const*) [/usr/local/bin/node]
 7: 0x10029af4c v8::internal::Heap::MarkCompactPrologue() [/usr/local/bin/node]
 8: 0x100298b04 v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [/usr/local/bin/node]
 9: 0x1002975ab v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/usr/local/bin/node]
10: 0x10029eff8 v8::internal::Heap::AllocateRawWithLightRetrySlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/usr/local/bin/node]
11: 0x10029f04e v8::internal::Heap::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [/usr/local/bin/node]
12: 0x10027ca52 v8::internal::Factory::AllocateRawArray(int, v8::internal::AllocationType) [/usr/local/bin/node]
13: 0x10027b768 v8::internal::Factory::NewFixedArrayWithFiller(v8::internal::RootIndex, int, v8::internal::Object, v8::internal::AllocationType) [/usr/local/bin/node]
14: 0x10038c3ef v8::internal::(anonymous namespace)::ElementsAccessorBase<v8::internal::(anonymous namespace)::FastHoleyObjectElementsAccessor, v8::internal::(anonymous namespace)::ElementsKindTraits<(v8::internal::ElementsKind)3> >::PrependElementIndices(v8::internal::Handle<v8::internal::JSObject>, v8::internal::Handle<v8::internal::FixedArrayBase>, v8::internal::Handle<v8::internal::FixedArray>, v8::internal::GetKeysConversion, v8::internal::PropertyFilter) [/usr/local/bin/node]
15: 0x1003f6660 v8::internal::FastKeyAccumulator::GetKeysFast(v8::internal::GetKeysConversion) [/usr/local/bin/node]
16: 0x1003f4e80 v8::internal::FastKeyAccumulator::GetKeys(v8::internal::GetKeysConversion) [/usr/local/bin/node]
17: 0x1004d8900 v8::internal::Runtime_ForInEnumerate(int, unsigned long*, v8::internal::Isolate*) [/usr/local/bin/node]
18: 0x1007502f9 Builtins_CEntry_Return1_DontSaveFPRegs_ArgvOnStack_NoBuiltinExit [/usr/local/bin/node]
Abort trap: 6

twilio.zip

ScottPierce avatar Feb 15 '20 19:02 ScottPierce

@ScottPierce just have a clearer picture - why exactly you are trying to compile all of them rather than just index.d.ts?

Of course, my question does not imply, however, that this is ok to fail like this anyway.

Schahen avatar Feb 25 '20 14:02 Schahen

I just want type safety in my Kotlin code. If I can achieve that desired result by just hitting the index.d.ts, then that's fine. I'm more or less just doing whatever I can to get things to work in an environment that I'm not extremely knowledgeable about, or comfortable in right now. I know almost nothing about how typescript definitions work.

ScottPierce avatar Feb 25 '20 17:02 ScottPierce