Skip to content

ECS times out for larger addons #15

@dustinfarris

Description

@dustinfarris

What happened?

I have an addon, ember-cashay, that takes a little longer than most to install. It pulls in a heavy-weight dependency (graphql) and does a few other above-and-beyond things. When I try to install it in Twiddle, it takes a while to load ("ember-cashay is still building...") and then eventually errors out with the following output:

Could not start watchman; falling back to NodeWatcher for file system events.
Visit http://ember-cli.com/user-guide/#watchman for more info.
Killed
Could not start watchman; falling back to NodeWatcher for file system events.
Visit http://ember-cli.com/user-guide/#watchman for more info.
DEPRECATION: EmberApp.concatFiles() is deprecated. Please use the `broccoli-concat` module directly.
DEPRECATION: EmberApp.concatFiles() is deprecated. Please use the `broccoli-concat` module directly.
Built project successfully. Stored in "dist/".

Why?

Amazon ECS has a stop timeout that issues SIGKILL after a certain period of time.

Without access to the ECS container myself, I can't be 100%; but if I had to take a shot in the dark, i'd say this is what's happening:

  • docker container started, build-addon.sh starts
  • ember install ember-cashay is executed
  • during the npm install phase, ECS times out and sends SIGKILL
  • "Killed" is recorded in ember.log which is receiving all output
  • the build-addon script gracefully records the non-zero exit code and moves on to ember build
  • since the addon install never completed, it is ignored—ember build completes successfully
  • 'Built project successfully. Stored in "dist/"' is recorded in ember.log
  • the build-addon script moves on to upload.js
  • upload.js notes the non-zero exit code from the install and the zero exit code from the build
  • because both exit codes must be zero, upload.js finishes with "build_error" status

What to do about it?

My guess is that bumping the timeout for ECS to something higher (5m?) would make this go away.

I believe this can be done by setting the ECS_CONTAINER_STOP_TIMEOUT environment variable to 5m in the Advanced -> Environment section of the ECS container settings.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions