ionic-cli: [V2 rc0] RangeError: Maximum call stack size exceeded

Multiple people are getting below arrors. Originally I opened an issue abut it for ionic repository abut i beilive ionic-cli is more appropriate place for it:

https://github.com/driftyco/ionic/issues/8280

Stack:

[00:52:28]  RangeError: Maximum call stack size exceeded
    at deepClone (/Users/barbarian/TS/greenkey/greenkey-tabs-rc0/node_modules/rollup/dist/rollup.js:153:20)
    at deepClone (/Users/barbarian/TS/greenkey/greenkey-tabs-rc0/node_modules/rollup/dist/rollup.js:165:18)
    at deepClone (/Users/barbarian/TS/greenkey/greenkey-tabs-rc0/node_modules/rollup/dist/rollup.js:165:18)
    at deepClone (/Users/barbarian/TS/greenkey/greenkey-tabs-rc0/node_modules/rollup/dist/rollup.js:165:18)
    at deepClone (/Users/barbarian/TS/greenkey/greenkey-tabs-rc0/node_modules/rollup/dist/rollup.js:165:18)
    at deepClone (/Users/barbarian/TS/greenkey/greenkey-tabs-rc0/node_modules/rollup/dist/rollup.js:165:18)
    at deepClone (/Users/barbarian/TS/greenkey/greenkey-tabs-rc0/node_modules/rollup/dist/rollup.js:165:18)
    at deepClone (/Users/barbarian/TS/greenkey/greenkey-tabs-rc0/node_modules/rollup/dist/rollup.js:165:18)
    at deepClone (/Users/barbarian/TS/greenkey/greenkey-tabs-rc0/node_modules/rollup/dist/rollup.js:165:18)
    at deepClone (/Users/barbarian/TS/greenkey/greenkey-tabs-rc0/node_modules/rollup/dist/rollup.js:165:18)

And also this error is thrown frequently:

[08:36:53]  bundle dev update started ...
<--- Last few GCs --->
 3466571 ms: Mark-sweep 1274.0 (1435.0) -> 1272.4 (1435.0) MB, 1445.4 / 0 ms [allocation failure] [GC in old space requested].
 3468039 ms: Mark-sweep 1272.4 (1435.0) -> 1272.4 (1435.0) MB, 1467.7 / 0 ms [allocation failure] [GC in old space requested].
 3469589 ms: Mark-sweep 1272.4 (1435.0) -> 1272.4 (1435.0) MB, 1549.6 / 0 ms [last resort gc].
 3471091 ms: Mark-sweep 1272.4 (1435.0) -> 1272.4 (1435.0) MB, 1502.6 / 0 ms [last resort gc].
<--- JS stacktrace --->
==== JS stack trace =========================================
Security context: 0x361bce9c9e31 <JS Object>
    1: Join(aka Join) [native array.js:179] [pc=0x4b0bbe181f5] (this=0x361bce904189 <undefined>,w=0x1905f65f2399 <JS Array[94699]>,x=94699,N=0x89790b28e99 <String[1]: ;>,M=0x361bce9b4ab1 <JS Function ConvertToString (SharedFunctionInfo 0x361bce94ef79)>)
    2: InnerArrayJoin(aka InnerArrayJoin) [native array.js:~343] [pc=0x4b0bce12b6c] (this=0x361bce904189 <undefined>,N=0x89790b28e99 <String[1]...
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
 1: node::Abort() [/usr/local/Cellar/node/6.3.1/bin/node]
 2: 
node::FatalException(v8::Isolate*, v8::Local<v8::Value>, v8::Local<v8::Message>)
 [/usr/local/Cellar/node/6.3.1/bin/node]
 3: 
v8::Utils::ReportApiFailure(char const*, char const*) [/usr/local/Cellar/node/6.3.1/bin/node]
 4: 
v8::internal::V8::FatalProcessOutOfMemory(char const*, bool) [/usr/local/Cellar/node/6.3.1/bin/node]
 5: 
v8::internal::Factory::NewRawTwoByteString(int, v8::internal::PretenureFlag) [/usr/local/Cellar/node/6.3.1/bin/node]
 6: 
v8::internal::Runtime_StringBuilderJoin(int, v8::internal::Object**, v8::internal::Isolate*)
 [/usr/local/Cellar/node/6.3.1/bin/node]

Cordova CLI: 6.3.1
Gulp version:  CLI version 1.2.2
Gulp local:  
Ionic Framework Version: 2.0.0-rc.0
Ionic CLI Version: 2.1.0
Ionic App Lib Version: 2.1.0-beta.1
ios-deploy version: 1.9.0 
ios-sim version: 5.0.8 
OS: Mac OS X El Capitan
Node Version: v6.4.0
Xcode version: Xcode 8.0 Build version 8A218a 

About this issue

  • Original URL
  • State: closed
  • Created 8 years ago
  • Reactions: 11
  • Comments: 21 (4 by maintainers)

Commits related to this issue

Most upvoted comments

I believe I found the issue. The watch process is spawning multiple rollup bundle processes rather than just managing the one. This would greatly increase the memory footprint. I am working on a fix now.

Thanks for reporting this!

@mhartington @jthoms1 Maximum call stack size exceeded error is gone but i am seeing the below error still that was occasionally thrown right after Max Stack before (see original issue description for another example).

<--- Last few GCs --->
 3172683 ms: Mark-sweep 1265.3 (1434.4) -> 1265.2 (1434.4) MB, 1549.5 / 0 ms [allocation failure] [GC in old space requested].
 3174187 ms: Mark-sweep 1265.2 (1434.4) -> 1265.0 (1434.4) MB, 1504.3 / 0 ms [allocation failure] [GC in old space requested].
 3175719 ms: Mark-sweep 1265.0 (1434.4) -> 1265.0 (1434.4) MB, 1532.1 / 0 ms [last resort gc].
 3177260 ms: Mark-sweep 1265.0 (1434.4) -> 1265.0 (1434.4) MB, 1541.1 / 0 ms [last resort gc].
<--- JS stacktrace --->
==== JS stack trace =========================================
    2: arguments adaptor frame: 3->1
Security context: 0x35d29d4c9e31 <JS Object>
    3: InnerArrayForEach(aka InnerArrayForEach) [native array.js:~946] [pc=0x37b82a7f57df] (this=0x35d29d404189 <undefined>,br=0x2b61d5897809 <JS Function (SharedFunctionInfo 0x192b90adbbf1)>,bs=0x35d29d404189 <undefined>,w=0x9dd36daa579 <JS Array[21]>,x=21)
    4: forEach [native array.js:~956] [pc=0x37b82b7954cc] (this=0x9dd36daa579 <JS Array[21]>,br=0x2b6...
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
 1: 
node::Abort() [/usr/local/Cellar/node/6.3.1/bin/node]
 2: 
node::FatalException(v8::Isolate*, v8::Local<v8::Value>, v8::Local<v8::Message>) [/usr/local/Cellar/node/6.3.1/bin/node]
 3: 
v8::Utils::ReportApiFailure(char const*, char const*) [/usr/local/Cellar/node/6.3.1/bin/node]

 4: 
v8::internal::V8::FatalProcessOutOfMemory(char const*, bool)
 [/usr/local/Cellar/node/6.3.1/bin/node]
 5: 
v8::internal::Factory::NewFixedArray(int, v8::internal::PretenureFlag) [/usr/local/Cellar/node/6.3.1/bin/node]

 6: 
v8::internal::LCodeGenBase::PopulateDeoptimizationData(v8::internal::Handle<v8::internal::Code>)
 [/usr/local/Cellar/node/6.3.1/bin/node]
 7: 
v8::internal::LChunk::Codegen()
 [/usr/local/Cellar/node/6.3.1/bin/node]
 8: 
v8::internal::OptimizedCompileJob::GenerateCode()
 [/usr/local/Cellar/node/6.3.1/bin/node]
 9: 
v8::internal::Compiler::GetConcurrentlyOptimizedCode(v8::internal::OptimizedCompileJob*)
 [/usr/local/Cellar/node/6.3.1/bin/node]
10: 
v8::internal::OptimizingCompileDispatcher::InstallOptimizedFunctions()
 [/usr/local/Cellar/node/6.3.1/bin/node]
11: 
v8::internal::Runtime_TryInstallOptimizedCode(int, v8::internal::Object**, v8::internal::Isolate*)
 [/usr/local/Cellar/node/6.3.1/bin/node]
12: 0x37b82900961b

Same here. “Maximum call stack size exceeded” is happening too often together with “Allocation failed - process out of memory”.

And cli is noticeably slower now, before update build never didn’t take more that 2.5 seconds now it is around 30 seconds.

Closed via https://github.com/driftyco/ionic-app-scripts/pull/44

This should be fixed in the next release of app scripts.