ember-cli: ember-cli build very slow and finally heap out of memory

enviroment

ember-cli: 2.16.2
node: 6.10.2
npm:3.10.10
os: win32 x64

steps

  1. ember new testapp
  2. ember init
  3. ember build

error info

Warning: failed to stat C:\Users\haohao\Desktop\ember\myapp\node_modules\.npmins
tall\babel-core\6.26.0\babel-core\node_modules\babel-register\node_modules\babel
-core\node_modules\babel-register\node_modules\babel-core\node_modules\babel-reg
ister\node_modules\babel-core\node_modules\babel-register\node_modules\babel-cor
e\node_modules\babel-register\node_modules\babel-core\node_modules\babel-registe
r\node_modules\babel-core\node_modules\babel-register\node_modules\babel-core\no
de_modules\babel-register\node_modules\babel-core\node_modules\babel-register\no
de_modules\babel-core\node_modules\babel-register\node_modules\babel-core\node_m
odules\babel-register\node_modules\babel-core\node_modules\babel-register\node_m
odules\babel-core\node_modules\babel-register\node_modules\babel-core\node_modul
es\babel-helpers\node_modules\babel-template\node_modules\babel-traverse\node_mo
dules\babel-code-frame\node_modules\chalk\node_modules\ansi-styles

<--- Last few GCs --->

 1319016 ms: Mark-sweep 1379.6 (1435.3) -> 1379.6 (1435.3) MB, 1440.3 / 0.0 ms [
allocation failure] [GC in old space requested].
 1320465 ms: Mark-sweep 1379.6 (1435.3) -> 1379.6 (1417.3) MB, 1448.9 / 0.0 ms [
last resort gc].
 1321894 ms: Mark-sweep 1379.6 (1417.3) -> 1379.6 (1417.3) MB, 1428.7 / 0.0 ms [
last resort gc].


<--- JS stacktrace --->

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

Security context: 0000033E515CFB49 <JS Object>
    2: keysForTree [C:\Users\haohao\Desktop\ember\myapp\node_modules\.npminstall
\broccoli-kitchen-sink-helpers\0.3.1\broccoli-kitchen-sink-helpers\index.js:37]
[pc=000001894C420AD7] (this=0000016DEC88C869 <JS Global Object>,fullPath=0000019
DDCDF14A1 <String[906]: C:\Users\haohao\Desktop\ember\myapp\node_modules\.npmins
tall\babel-core\6.26.0\babel-core\node_modules\babel-register\node_modules\...

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memo
ry

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Reactions: 3
  • Comments: 18 (7 by maintainers)

Most upvoted comments

I found the culprit for me was actually the ./tmp folder.

For whatever reason, if you kill ember server and it doesn’t do properly do it’s cleanup.

I made a bash scrip that clears the ./tmp folder before starting ember server for my project. Haven’t had any problems since. Don’t have to use JOBS=1 either. Runs much faster without that, just default ember server command.

@Sinled Clear the ./tmp and report back if it solves for you.

This problem plagued me for many months. Wish it was in some documentation somewhere.

Turns out my issue was due to a nested scss for loop

 @for $i from 1 to 20 {
    .my-class:nth-child(#{$i}) {
      @for $j from 1 to 200 {
        circle:nth-of-type(#{$j}) {
          @include animation($name: animationName, $duration: 0.5s, $delay: (0.03s * $j) + (0.2s * $i));
        }
      }
    }
  }

I was able to get around the error by running the build with the following command, but it took 4+ hours

node --max-old-space-size=8192 /home/me/.yarn/bin/ember build --prod

As soon as I removed the nested for loop it returned to being under a minute for a build

I’m also running into this bug. JOBS=1 and clearing the tmp/ dir did not fix

ember --version
ember-cli: 3.3.0
node: 8.11.3
os: linux x64
ember build --prod
⠹ Building
<--- Last few GCs --->

[6655:0x31dd700]   165121 ms: Mark-sweep 1348.3 (1429.1) -> 1348.3 (1429.1) MB, 186.0 / 0.0 ms  allocation failure GC in old space requested
[6655:0x31dd700]   165320 ms: Mark-sweep 1348.3 (1429.1) -> 1348.3 (1426.6) MB, 197.2 / 0.0 ms  last resort GC in old space requested
[6655:0x31dd700]   165523 ms: Mark-sweep 1348.3 (1426.6) -> 1348.3 (1426.6) MB, 202.8 / 0.0 ms  last resort GC in old space requested


<--- JS stacktrace --->

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

Security context: 0x3e38e81a5879 <JSObject>
    2: addToCache [/path/to/app/node_modules/clean-css/lib/selectors/restructure.js:42] [bytecode=0x385fc6bb32a1 offset=21](this=0x3e2f5748c209 <JSGlobal Object>,movedProperty=0x19afb91e6e91 <JSArray[7]>,fit=0x21fcc7cc4f59 <JSArray[3780]>)
    3: sendToMultiPropertyMoveCache [/path/to/app/node_modules/clean-css/lib/selectors/restructure.js:31] [bytecode=0x38...

FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
 1: node::Abort() [ember]
 2: 0x8c21ec [ember]
 3: v8::Utils::ReportOOMFailure(char const*, bool) [ember]
 4: v8::internal::V8::FatalProcessOutOfMemory(char const*, bool) [ember]
 5: v8::internal::Factory::NewInternalizedStringImpl(v8::internal::Handle<v8::internal::String>, int, unsigned int) [ember]
 6: v8::internal::StringTable::LookupString(v8::internal::Isolate*, v8::internal::Handle<v8::internal::String>) [ember]
 7: 0xffeb9e [ember]
 8: v8::internal::Runtime_KeyedGetProperty(int, v8::internal::Object**, v8::internal::Isolate*) [ember]
 9: 0xe8a314042fd
Aborted (core dumped)

@edeis53 Thank you 👍 It solved issue. Looks like /tmp was culprit.