Giter Site home page Giter Site logo

aws-codedeploy-agent's Introduction

AWS CodeDeploy Agent

Code Climate Build Status Coverage Status

Latest Release: 1.4.0

Release Notes

Build Steps

git clone https://github.com/aws/aws-codedeploy-agent.git
gem install bundler -v 1.3.5
cd aws-codedeploy-agent
bundle install
rake clean && rake

Starting up the CodeDeploy Agent Locally for manual testing

bin/codedeploy-agent start

To stop it:

bin/codedeploy-agent stop

Integration Test

Please do the build steps mentioned above before running the integration test.

The integration test creates the following

  • An IAM role "codedeploy-agent-integ-test-deployment-role" if it doesn't exist
  • An IAM role "codedeploy-agent-integ-test-instance-role" if it doesn't exist
  • An IAM user "codedeploy-agent-integ-test-instance-user" if it doesn't exist. (Access key will be recreated.)
  • A CodeDeploy application
  • Startup the codedeploy agent on your host
  • A CodeDeploy deployment group with your host in it
  • A CodeDeploy deployment to your host.
  • Local Deployments to your host.

It terminates the test ec2 instance and deletes the CodeDeploy application at the end of each test run. It also terminates any test ec2 instances before starting up the test.

Create your default aws credentials file in the default location (~/.aws/credentials on linux/mac and %USERPROFILE%.awscredentials on windows). Add your AWS access key, secret key, and optionally your session token there. The access key should have permission to create the above mentioned resources. You can also change the default region. Note that temporary credentials won't work.

Sample format of the credentials file:

[default]
aws_access_key_id=<keyID>
aws_secret_access_key=<key>

To run the integration test execute:

rake test-integration

aws-codedeploy-agent's People

Contributors

aj-aws avatar amartyag avatar ambareesha avatar asaf-erlich avatar bw-intuit avatar ccloes-intuit avatar chrisdibble avatar default50 avatar dljvette avatar edward2a avatar feverlu avatar gaohan137 avatar jcbhl avatar jdrago999 avatar jmcfar avatar kylemcmullen avatar mwjones-aws avatar pankajtanuj avatar pdrakeweb avatar philstrong avatar pmzara avatar psavides-aws avatar puneethranga avatar rohkat-aws avatar saketu-aws avatar spilist avatar suryanarayanan avatar t0shiii avatar vrr-21 avatar yubangxi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

aws-codedeploy-agent's Issues

Recent codedeploy-agent seems to be running bash scripts in POSIX compliant mode (sh) regardless of shebang.

A recent release of codedeploy-agent broke our previously working scripts:

--> Script at specified location: script/system.sh failed with exit code 2
--> LifecycleEvent - AfterInstall
--> Script - script/system.sh
--> [stderr]/opt/codedeploy-agent/deployment-root/1a506db0-192b-4124-a869-359f1d001c5a/d-GVFM5I4BG/deployment-archi
ve/script/logger.sh: line 4: syntax error near unexpected token `>'
[ ✗ ] [ 0m 35s ] Error while performing step: Creating Deployment
  Thor::Error: Deployment was unsuccessful!
Deployment was unsuccessful!

All of our scripts start with a shebang line pointing at bash:

#!/bin/bash

But for some reason, they are running in bash in POSIX mode which wasn't previously the case.

Our fix:

set +o posix

One potential cause for the change:

https://github.com/aws/aws-codedeploy-agent/commit/f2d8cba93bc6df6e3ca2480045ced6c8dc1ef6c8

uninitialized constant Zip::File

I'm not sure if this is the where I should be filing this issue but I've been getting an uninitialized constant Zip::File error during the DownloadBundle event when trying to do a deploy from a .zip file through CodeDeploy. I'm able to successfully deploy from a .tar.gz file without issue...as well as deploy directly through github directly.

I'm trying to use a Jenkins/AWS CodeDeploy plugin that compresses to a .zip before uploading to s3, otherwise I'd just use .tar.gz.

Ruby 2.0 is unmaintained - also cannot install on Ubuntu LTS

The specific requirement for "ruby2.0" means that CodeDeploy cannot be installed on Ubuntu 16.04 LTS.

Considering that maintenance for Ruby 2.0 ended in February 2016, CodeDeploy is now relying on an unmaintained version. It was advised well over a year ago to move all Ruby 2.0 projects to a newer version.

This also means that the CodeDeploy install instructions no longer work for Ubuntu as they say they should.

How should users who are on Ubuntu LTS install the CodeDeploy agent?

Is CodeDeploy still going to be maintained going forward? (Ruby 2.0 is over three years old now!)

auto-purge : deployment-root

Hi,

Is there a native way to purge this directory ?
If no how are you managing it ? (post-action or via logrotate or ... ?)

Best regards,

Run codedeploy-agent as non-root user

It would be nice to be able to run the agent as a non-root user, or, only run the supervisor as root, and drop privileges on the child process if they're not needed.

In our case, we'd like to only deploy signed binaries which are checked by a server agent as part of the deploy process (with the agent only decrypting a payload if the signatures are verified). Because code-deploy runs as root, it is possible that compromised credentials could lead to an unauthorized payload being deployed.

Provide a way to specify target revision to deploy

The initial problem I have is that there seems to be no way to manage target revisions (eg, "promote as target revision") through CLI. Correct me if I am wrong?


It would be great if there is a way to specify which revision agent should deploy.

It is not always best idea to deploy "latest successfully deployed", because DB may have changed, or when doing debugging, or when scripts used for deployment are not idempotent (on purpose).

I can think of specific env like AWS_DEPLOY_S3_LOCATION="bucket=BucketName,key=123.zip,bundleType=zip" which can be used during deployment, if not empty.

High memory consumption

Hello. When I restart codedeploy-agent it takes about 26MB. But, after one deploy it takes 300-350MB. Is it ok or not? Memory doesn't free when deploy is finished. Therefore, I get error about memory allocation on the next build.

Image of proccesses

Bypass SSL check

I would appreciate a way to bypass the SSL verification check. We intercept all outbound traffic, including HTTPS for PCI reasons. Even though I have a file in /etc/profile.d with the following contents:

export AWS_SSL_CA_DIRECTORY="/etc/ssl/certs"
export AWS_SSL_CA_BUNDLE="/etc/ssl/certs/squid-proxy.pem"
export SSL_CERT_FILE="/etc/ssl/certs/squid-proxy.pem"

On first boot, the agent still errors. It eventually starts working after failing twice.

2015-09-18 10:40:03 INFO  [codedeploy-agent(4057)]: master 4057: Spawned child 1/1
2015-09-18 10:40:04 INFO  [codedeploy-agent(4061)]: On Premises config file does not exist or not readable
2015-09-18 10:40:04 INFO  [codedeploy-agent(4057)]: Started master 4057 with 1 children
2015-09-18 10:42:11 ERROR [codedeploy-agent(4061)]: InstanceAgent::Plugins::CodeDeployPlugin::CodeDeployControl: Error during certificate verification on codedeploy endpoint https://codedeploy-commands.us-east-1.amazonaws.com
2015-09-18 10:42:11 ERROR [codedeploy-agent(4061)]: Error validating the SSL configuration: Invalid server certificate
2015-09-18 10:42:11 ERROR [codedeploy-agent(4061)]: booting child: error during start or run: SystemExit - Stopping CodeDeploy agent due to SSL validation error. - /opt/codedeploy-agent/lib/instance_agent/plugins/codedeploy/command_poller.rb:53:in `abort'
/opt/codedeploy-agent/lib/instance_agent/plugins/codedeploy/command_poller.rb:53:in `validate'
/opt/codedeploy-agent/lib/instance_agent/agent/base.rb:11:in `runner'
/opt/codedeploy-agent/lib/instance_agent/runner/child.rb:31:in `block in prepare_run'
/opt/codedeploy-agent/lib/instance_agent/runner/child.rb:55:in `with_error_handling'
/opt/codedeploy-agent/lib/instance_agent/runner/child.rb:30:in `prepare_run'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/child.rb:64:in `block in prepare_run_with_error_handling'
/opt/codedeploy-agent/lib/instance_agent/runner/child.rb:55:in `with_error_handling'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/child.rb:63:in `prepare_run_with_error_handling'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/child.rb:20:in `start'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/master.rb:198:in `block in spawn_child'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/master.rb:196:in `fork'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/master.rb:196:in `spawn_child'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/master.rb:188:in `block in spawn_children'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/master.rb:187:in `times'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/master.rb:187:in `spawn_children'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/master.rb:133:in `start'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/master.rb:36:in `block in start'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/master.rb:35:in `fork'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/master.rb:35:in `start'
/opt/codedeploy-agent/bin/codedeploy-agent:37:in `block (2 levels) in <main>'
/opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli/command_support.rb:130:in `call'
/opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli/command_support.rb:130:in `execute'
/opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli/app_support.rb:262:in `block in call_command'
/opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli/app_support.rb:275:in `call'
/opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli/app_support.rb:275:in `call_command'
/opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli/app_support.rb:69:in `run'
/opt/codedeploy-agent/bin/codedeploy-agent:84:in `<main>'
2015-09-18 10:42:11 ERROR [codedeploy-agent(4061)]: booting child: error during start or run: SystemExit - exit - /opt/codedeploy-agent/lib/instance_agent/runner/child.rb:67:in `exit'
/opt/codedeploy-agent/lib/instance_agent/runner/child.rb:67:in `rescue in with_error_handling'
/opt/codedeploy-agent/lib/instance_agent/runner/child.rb:55:in `with_error_handling'
/opt/codedeploy-agent/lib/instance_agent/runner/child.rb:30:in `prepare_run'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/child.rb:64:in `block in prepare_run_with_error_handling'
/opt/codedeploy-agent/lib/instance_agent/runner/child.rb:55:in `with_error_handling'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/child.rb:63:in `prepare_run_with_error_handling'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/child.rb:20:in `start'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/master.rb:198:in `block in spawn_child'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/master.rb:196:in `fork'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/master.rb:196:in `spawn_child'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/master.rb:188:in `block in spawn_children'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/master.rb:187:in `times'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/master.rb:187:in `spawn_children'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/master.rb:133:in `start'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/master.rb:36:in `block in start'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/master.rb:35:in `fork'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/master.rb:35:in `start'
/opt/codedeploy-agent/bin/codedeploy-agent:37:in `block (2 levels) in <main>'
/opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli/command_support.rb:130:in `call'
/opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli/command_support.rb:130:in `execute'
/opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli/app_support.rb:262:in `block in call_command'
/opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli/app_support.rb:275:in `call'
/opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli/app_support.rb:275:in `call_command'
/opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli/app_support.rb:69:in `run'
/opt/codedeploy-agent/bin/codedeploy-agent:84:in `<main>'
2015-09-18 10:42:11 INFO  [codedeploy-agent(4057)]: master 4057: Received CHLD - cleaning dead child process
2015-09-18 10:42:11 INFO  [codedeploy-agent(4057)]: master 4057: been told to replace child 4061
2015-09-18 10:42:11 INFO  [codedeploy-agent(4057)]: master 4057: not enough child processes running - missing at least 1 - respawning
2015-09-18 10:42:16 INFO  [codedeploy-agent(4057)]: master 4057: Spawned child 1/1
2015-09-18 10:42:16 INFO  [codedeploy-agent(4910)]: On Premises config file does not exist or not readable
2015-09-18 10:44:23 ERROR [codedeploy-agent(4910)]: InstanceAgent::Plugins::CodeDeployPlugin::CodeDeployControl: Error during certificate verification on codedeploy endpoint https://codedeploy-commands.us-east-1.amazonaws.com
2015-09-18 10:44:23 ERROR [codedeploy-agent(4910)]: Error validating the SSL configuration: Invalid server certificate
2015-09-18 10:44:23 ERROR [codedeploy-agent(4910)]: booting child: error during start or run: SystemExit - Stopping CodeDeploy agent due to SSL validation error. - /opt/codedeploy-agent/lib/instance_agent/plugins/codedeploy/command_poller.rb:53:in `abort'
/opt/codedeploy-agent/lib/instance_agent/plugins/codedeploy/command_poller.rb:53:in `validate'
/opt/codedeploy-agent/lib/instance_agent/agent/base.rb:11:in `runner'
/opt/codedeploy-agent/lib/instance_agent/runner/child.rb:31:in `block in prepare_run'
/opt/codedeploy-agent/lib/instance_agent/runner/child.rb:55:in `with_error_handling'
/opt/codedeploy-agent/lib/instance_agent/runner/child.rb:30:in `prepare_run'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/child.rb:64:in `block in prepare_run_with_error_handling'
/opt/codedeploy-agent/lib/instance_agent/runner/child.rb:55:in `with_error_handling'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/child.rb:63:in `prepare_run_with_error_handling'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/child.rb:20:in `start'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/master.rb:198:in `block in spawn_child'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/master.rb:196:in `fork'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/master.rb:196:in `spawn_child'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/master.rb:275:in `block (2 levels) in replace_terminated_children'
/opt/codedeploy-agent/vendor/gems/logging-1.8.1/lib/logging/diagnostic_context.rb:323:in `call'
/opt/codedeploy-agent/vendor/gems/logging-1.8.1/lib/logging/diagnostic_context.rb:323:in `block in create_with_logging_context'
2015-09-18 10:44:23 ERROR [codedeploy-agent(4910)]: booting child: error during start or run: SystemExit - exit - /opt/codedeploy-agent/lib/instance_agent/runner/child.rb:67:in `exit'
/opt/codedeploy-agent/lib/instance_agent/runner/child.rb:67:in `rescue in with_error_handling'
/opt/codedeploy-agent/lib/instance_agent/runner/child.rb:55:in `with_error_handling'
/opt/codedeploy-agent/lib/instance_agent/runner/child.rb:30:in `prepare_run'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/child.rb:64:in `block in prepare_run_with_error_handling'
/opt/codedeploy-agent/lib/instance_agent/runner/child.rb:55:in `with_error_handling'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/child.rb:63:in `prepare_run_with_error_handling'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/child.rb:20:in `start'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/master.rb:198:in `block in spawn_child'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/master.rb:196:in `fork'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/master.rb:196:in `spawn_child'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/master.rb:275:in `block (2 levels) in replace_terminated_children'
/opt/codedeploy-agent/vendor/gems/logging-1.8.1/lib/logging/diagnostic_context.rb:323:in `call'
/opt/codedeploy-agent/vendor/gems/logging-1.8.1/lib/logging/diagnostic_context.rb:323:in `block in create_with_logging_context'
2015-09-18 10:44:23 INFO  [codedeploy-agent(4057)]: master 4057: Received CHLD - cleaning dead child process
2015-09-18 10:44:23 INFO  [codedeploy-agent(4057)]: master 4057: been told to replace child 4910
2015-09-18 10:44:23 INFO  [codedeploy-agent(4057)]: master 4057: not enough child processes running - missing at least 1 - respawning
2015-09-18 10:44:28 INFO  [codedeploy-agent(4057)]: master 4057: Spawned child 1/1
2015-09-18 10:44:28 INFO  [codedeploy-agent(4920)]: On Premises config file does not exist or not readable
2015-09-18 10:46:00 INFO  [codedeploy-agent(4920)]: [Aws::CodeDeployCommand::Client 200 60.940396 0 retries] poll_host_command(host_identifier:"arn:aws:ec2:us-east-1:999999999999:instance/i-bbbbbbbb")

Is there a way to fix this or bypass the SSL check completely?

Provide a way to run a cleanup script after a deployment error

CodeDeploy is missing a mechanism for doing cleanup after a deployment error. This could be implemented as another lifecycle event that is triggered only when a deployment fails for some reason. This reason could be e.g. a non-zero exit status of a hook script, a timeout or a user-triggered cancellation of the deployment.

The idea of this originates from a more specific issue regarding ASG lifecycle scripts. In that case, an auto-scaling group is left in an unclean state after an error during a deployment.

One remotely similar mechanism for error handling is the rescue block in Ansible:
http://docs.ansible.com/ansible/playbooks_blocks.html

Must explicitly specify gemfile if using bundler inside hook scripts

I noticed this issue with on of my hook scripts and didn't seem to find this gotcha mentioned in the docs. Maybe this is an obivous thing to know, but I figured I'd put a note here just incase someone else runs into this:

Here's what I was attempting to run in my hook script:

...
bundle --deployment
...

Seemed pretty normal except I kept getting error messages like this:

...
[stdout]The --deployment flag requires a Gemfile.lock. Please make sure you have checked
[stdout]your Gemfile.lock into version control before deploying.
...

I went to go look at the source and found that a Gemfile is actually getting set here:
https://github.com/aws/aws-codedeploy-agent/blob/master/lib/instance_agent.rb#L9

This means that bundler is set to use that Gemfile even if we are running bundler from a different directory in our hook scripts. This issue was discussed in this ticket:

rubygems/bundler#1981

Here's the area where the codedeploy-agent shells out to the hook scripts:

https://github.com/aws/aws-codedeploy-agent/blob/master/lib/instance_agent/codedeploy_plugin/hook_executor.rb#L113

...
Open3.popen3(script_command, :pgroup => true) do |stdin, stdout, stderr, wait_thr|
  stdin.close
  stdout_thread = Thread.new{stdout.each_line { |line| log_script("[stdout]" + line.to_s, script_log_file)}}
  stderr_thread = Thread.new{stderr.each_line { |line| log_script("[stderr]" + line.to_s, script_log_file)}}
  if !wait_thr.join(script.timeout)
    Process.kill('-TERM', wait_thr.pid) #kill the process group instead of pid
    raise Timeout::Error
  end
  stdout_thread.join
  stderr_thread.join
  exit_status = wait_thr.value.exitstatus
end
...

Here's some options I found that can resolve this issue:

  • Specify BUNDLE_GEMFILE before you call bundler in hook scripts. Example:
BUNDLE_GEMFILE=$PWD/Gemfile bundle
  • Take BUNDLE_GEMFILE out of the environment before Open3.popen3 gets called. That way your environment will be clean before the hook script runs. The above snippet would then look something like this:
...
tmp_gemfile = ENV.delete('BUNDLER_GEMFILE')
Open3.popen3(script_command, :pgroup => true) do |stdin, stdout, stderr, wait_thr|
  stdin.close
  stdout_thread = Thread.new{stdout.each_line { |line| log_script("[stdout]" + line.to_s, script_log_file)}}
  stderr_thread = Thread.new{stderr.each_line { |line| log_script("[stderr]" + line.to_s, script_log_file)}}
  if !wait_thr.join(script.timeout)
    Process.kill('-TERM', wait_thr.pid) #kill the process group instead of pid
    raise Timeout::Error
  end
  stdout_thread.join
  stderr_thread.join
  exit_status = wait_thr.value.exitstatus
end
ENV['BUNDLER_GEMFILE'] = tmp_gemfile unless tmp_gemfile.nil?
...

Running composer in build.sh

Hi:

I'm trying to run composer in my before deployment to my httpd server. This is my configuration:

 version: 0.0
 os: linux 
 files:
   - source: .
     destination: /var/www/html/ 
 permissions:
   - object: ./build.sh 
     mode: 644

hooks:
   BeforeInstall:
     - location: ./build.sh
       timeout: 300

However, I'm getting this error:

     2016-06-07 22:37:20 WARN  [codedeploy-agent(2469)]:        InstanceAgent::Plugins::CodeDeployPlugin::HookExecutor: Script at specified location: ./build.sh is   not executable.  Trying to make it executable.
     2016-06-07 22:37:21 INFO  [codedeploy-agent(2469)]: Version file found in /opt/codedeploy-a     gent/.version.

    2016-06-07 22:37:21 INFO  [codedeploy-agent(2469)]: [Aws::CodeDeployCommand::Client 200  0.03208 0 retries] put_host_command_complete(command_status:"Failed",diagnostics: {format:"JSON",payload:"{\"error_code\":4,\"script_name\":\"./build.sh\",\"message\":\"Script at  specified location: ./build.sh failed with exit code 1\",\"log\":\"LifecycleEvent - BeforeInstall\\nScript -  ./build.sh\\n[stderr]Running composer as root/super user is highly discouraged as packages, plugins  and scripts cannot always be trusted\\n[stderr]Composer could not find a composer.json file in    /opt/codedeploy-agent\\n[stderr]To initialize a project, please create a composer.json file as   described in the https://getcomposer.org/ \\\"Getting Started\\\" section\\n[stderr]sudo:   vendor/bin/phing: command not   found\\n\"}"},host_command_identifier:"WyJjb20uYW1hem9uLmFwb2xsby5kZXBsb3ljb250cm9sLm  RvbWFpbi5Ib3N0Q29tbWFuZElkZW50aWZpZXIiLHsiZGVwbG95bWVudElkIjoiQ29kZURlcGxveS91c y13ZXN0LTIvUHJvZC9hcm46YXdzOnNkczp1cy13ZXN0LTI6ODYyODgzMjM3MDgwOmRlcGxveW1l bnQvZC1CVkwzQUxRMkciLCJob3N0SWQiOiJhcm46YXdzOmVjMjp1cy13ZXN0LTI6ODYyODgzMjM 3MDgwOmluc3RhbmNlL2ktZmE1MTk4MjEiLCJjb21tYW5kTmFtZSI6IkJlZm9yZUluc3RhbGwiLCJjb2 1tYW5kUG9zaXRpb24iOjMsImNvbW1hbmRBdHRlbXB0IjoxfV0=")

   2016-06-07 22:37:21 ERROR [codedeploy-agent(2469)]: InstanceAgent::Plugins::CodeDeployPlugin::CommandPoller: Error during perform: InstanceAgent::Plugins::CodeDeployPlugin::ScriptError - Script at specified location: ./build.sh failed with exit code 1 - /opt/codedeploy-agent/lib/instance_agent/plugins/codedeploy/hook_executor.rb:153:in `execute_script'
   /opt/codedeploy-agent/lib/instance_agent/plugins/codedeploy/hook_executor.rb:110:in `block (2 levels) in execute'

/opt/codedeploy-agent/lib/instance_agent/plugins/codedeploy/hook_executor.rb:98:in each' /opt/codedeploy-agent/lib/instance_agent/plugins/codedeploy/hook_executor.rb:98:inblock in execute'
/opt/codedeploy-agent/lib/instance_agent/plugins/codedeploy/hook_executor.rb:168:in create_script_log_file_if_needed' /opt/codedeploy-agent/lib/instance_agent/plugins/codedeploy/hook_executor.rb:96:inexecute'
/opt/codedeploy-agent/lib/instance_agent/plugins/codedeploy/command_executor.rb:134:in block (3 levels) in map' /opt/codedeploy-agent/lib/instance_agent/plugins/codedeploy/command_executor.rb:125:ineach'
/opt/codedeploy-agent/lib/instance_agent/plugins/codedeploy/command_executor.rb:125:in block (2 levels) in map' /opt/codedeploy-agent/lib/instance_agent/plugins/codedeploy/command_executor.rb:63:inexecute_command'
/opt/codedeploy-agent/lib/instance_agent/plugins/codedeploy/command_poller.rb:132:in process_command' /opt/codedeploy-agent/lib/instance_agent/plugins/codedeploy/command_poller.rb:65:inperform'
/opt/codedeploy-agent/lib/instance_agent/agent/base.rb:28:in run' /opt/codedeploy-agent/lib/instance_agent/runner/child.rb:38:inblock in run'
/opt/codedeploy-agent/lib/instance_agent/runner/child.rb:55:in with_error_handling' /opt/codedeploy-agent/lib/instance_agent/runner/child.rb:37:inrun'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/child.rb:70:in block in run_with_error_handling' /opt/codedeploy-agent/lib/instance_agent/runner/child.rb:55:inwith_error_handling'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/child.rb:69:in run_with_error_handling' /opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/child.rb:33:inblock in start'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/child.rb:22:in loop' /opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/child.rb:22:instart'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/master.rb:202:in block in spawn_child' /opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/master.rb:200:infork'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/master.rb:200:in spawn_child' /opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/master.rb:192:inblock in spawn_children'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/master.rb:191:in times' /opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/master.rb:191:inspawn_children'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/master.rb:134:in start' /opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/master.rb:37:inblock in start'
/opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/master.rb:36:in fork' /opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/master.rb:36:instart'
/opt/codedeploy-agent/bin/codedeploy-agent:37:in block (2 levels) in <main>' /opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli/command_support.rb:130:incall'
/opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli/command_support.rb:130:in execute' /opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli/app_support.rb:262:inblock in call_command'
/opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli/app_support.rb:275:in call' /opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli/app_support.rb:275:incall_command'
/opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli/app_support.rb:69:in run' /opt/codedeploy-agent/bin/codedeploy-agent:84:in

'
2016-06-07 22:37:31 INFO [codedeploy-agent(2469)]: Version file found in /opt/codedeploy- agent/.version.
2016-06-07 22:38:31 INFO [codedeploy-agent(2469)]: [Aws::CodeDeployCommand::Client 200 60.100514 0 retries] poll_host_command(host_identifier:"arn:aws:ec2:us-west-2:862883237080:instance/i-fa519821")

This is my build.sh

 #!/bin/bash
   echo pwd
  sudo composer install
 sudo vendor/bin/phing www

AWS Attribution for security vulnerabilities

Attribution for the time involved in tracking down, courteously describing, exploit scenarios, and complete disclosure of security vulnerabilities (such as the recent root escalation vulnerabilities that I sent in a few weeks ago) even just in a project CHANGELOG would be courteous and greatly appreciated.

It's awesome that you resolved (fa3caad) the flaws but you didn't notify me or your users until I asked what happened and I don't know that you've notified your users. I'm guessing many of them manually integrate it into their build or config management and won't be affected by the automatic upgrade. (Many of our users do this as well, and we encourage them to go through a proper code review before integrating.)

What's strange is that there seems to be a lack of formal process around handling security breaches. It is stunning to me that the largest cloud platform in the universe as well as the largest storefront of any sort (online or off) on the planet do not even have a simple bug bounty program. We have one at Userify, and we're a tiny fraction of AWS or Amazon.

Perhaps a focus on growth, features, or frugality, noble aims all, have reduced security as a priority, but even just an acknowledgement and thanks for the efforts of outside, independent security professionals could be a great start! :)

Hangs on process that forks and exits.

I have a program like this:

#!/usr/bin/env python
import sys
import os
pid = os.fork()
if pid > 0:
  sys.exit(0)
command_that_runs_forever()

If I use this script as my ApplicationStart command, the code deploy agent will hang forever in the application start stage. I don't understand why this would happen. When I run the program from the command line, it returns immediately (the child being forked, and parent exiting immediately) and the status code is 0.

Any light shed on this would be appreciated. Thanks!

400 error on PollHostCommand

Hi -

I'm using the deb version of the plugin on ubuntu trusty 64 in us-east-1. A new deploymentgroup I setup on Friday late afternoon was failing, so I looked at it this morning. Every time it tries to make a request to the codedeploycommands service it receives a 400 error response.

HTTP log below:

Request:

Note: host is https://codedeploy-commands.us-east-1.amazonaws.com/

POST / HTTP/1.1
Content-Type: application/x-amz-json-1.1
Accept-Encoding: 
User-Agent: aws-sdk-ruby2/2.0.42 ruby/2.0.0 x86_64-linux-gnu
X-Amz-Target: CodeDeployCommandService_v20141006.PollHostCommand
X-Amz-Date: 20150629T180026Z
Host: codedeploy-commands.us-east-1.amazonaws.com
X-Amz-Content-Sha256: f0e32927247ca0d80e05a755a56484220f21826393f82d675353e70e92336251
Authorization: AWS4-HMAC-SHA256 Credential=AKIAID7KXXXXXXXXXXXX/20150629/us-east-1/codedeploy-commands/aws4_request, SignedHeaders=content-type;host;user-agent;x-amz-content-sha256;x-amz-date;x-amz-target, Signature=35d962fdd26919d00e10863c915dfb49dc8eac01f4bb8c5fb6d076325b02d25e
Content-Length: 75
Accept: */*

Response:

HTTP/1.1 400 Bad Request
x-amzn-RequestId: b8902d1e-1e88-11e5-bd9d-458065df3e1e
Content-Type: application/x-amz-json-1.1
Content-Length: 34

{"__type":"AccessDeniedException"}

More info in Readme

Can you add more information about how the agent is supposed to work in the Readme?

Tarball download error

Hello Guys,
Just setup the codedeploy, and triggered the deploy via Github.

I completed all the pre-requisite steps. I make a new commit to the repo and i can see new deployment being triggered in CodeDeploy console under deployments.

It always fails at "DownloadBundle" stage. The error message is this:

Could not download bundle at 'https://api.github.com/repos/my_org_name/my_repo_name/tarball/commit_id' after 3 retries. Server returned codes: 404 'Not Found'; 404 'Not Found'; 404 'Not Found'; 404 'Not Found'.

Looks like the URL that the agent creates for downloading the tarball of the comitt does not exist. I tried the same URL directly in browser and i still get 404 error.

But it does work, if I change the URL to this format:

https://github.com/my_org_name/my_repo_name/tarball/commit_id

Any help will be appreciated, as i can not find anything regarding this under CodeDeploy manual.

Debian package ignores /usr/sbin/policy-rc.d, always starts daemon

When creating a base Ubuntu AMI with the codedeploy agent pre-installed, I'd like to be able to install the codedeploy agent w/out the daemon starting.

After installing on the base AMI, I need to manually stop the daemon and clean up log files.

The idiomatic way to handle whether to start a service during installation is to use invoke-rc.d.

Instead of invoking service codedeploy-agent {start,stop} in postinst/prerm, use invoke-rc.d:

# In postinst:
invoke-rc.d codedeploy-agent start

See the nginx package's postinst script for example.

invoke-rc.d runs /usr/sbin/policy-rc.d to determine whether a service should be started.

I looked for how to make this change myself in a pull request, but I couldn't figure out how the controls scripts in the deb package is generated from this repo.

Get more logs from the agent

It is limited to 2048 for now.

I see all my ruby traces truncated... Would be cool to save the whole log somewhere on disk and just point to it too.

Or return more information to the server.

Add support for excluding directories in appspec.yml "Permissions" section

I would like the ability (or clarification on how) to exclude sub-directories and their contents in the permissions section of the appspec.yml.

Given I have a file structure

/tmp/test
├── file1
├── folder1
└── folder2
    ├── file2
    └── folderA
        ├── folderI
        └── folderII

I would like to create an appspec.yml file with the following section:

permissions:
  - origin: /tmp/test
    owner: user1
    group: group1
    exclude: [ folder2/folderA ]
    mode: 644
  - origin: /tmp/test/folder2/folderA
    mode: 664
    owner: user1
    group: group1

This would set the mode for all files and folder under /tmp/test except for those in /tmp/test/folder2/folderA to 644, while all files and folders under /tmp/test/folder2/folderA have a mode of 664.

Currently, when I try this I get an error saying /tmp/test/folder2/folderA/folderI has duplicate permission setting instructions.

Setting :max-revisions to 0 prevents new deployments

Please refer to this post for the issue description: https://forums.aws.amazon.com/thread.jspa?messageID=711273

Based on my reading of the code, this is what happens:

  1. During a deployment, command_executor#execute_command is called with command = DownloadBundle.
  2. It creates a new deployment directory: https://github.com/aws/aws-codedeploy-agent/blob/master/lib/instance_agent/plugins/codedeploy/command_executor.rb#L59
  3. It invokes method download_bundle which performs a cleanup: https://github.com/aws/aws-codedeploy-agent/blob/master/lib/instance_agent/plugins/codedeploy/command_executor.rb#L71.
  4. With :max-revisions = 0, cleanup_old_archives removes all the deployment directories except for the last successful one, including the newly-created one.
  5. This causes the new file creation to fail in download_from_s3: https://github.com/aws/aws-codedeploy-agent/blob/master/lib/instance_agent/plugins/codedeploy/command_executor.rb#L207.

You either need to keep track of and exclude the newly-created directory from the cleanup, or perform the cleanup before creating new directories.

After I set :max-revisions to 2, the deployments were able to proceed.

High Memory Consumption

Hi,

We are testing out the code deployment agent on Centos7, we are seeing memory consumption spike after each deployment. The application revision we are are deploying is about 100MB and is in tar.gz format. The workaround we have been using is to execute the following commands.

/etc/init.d/codedeploy-agent stop; /etc/init.d/codedeploy-agent start;sync && echo 3 > /proc/sys/vm/drop_caches && free -m

Thanks,
Larry

Cron entry /etc/cron.d/codedeploy-agent-update should not be present (chkconfig not honoured)

I tried to figure out why chkconfig wasn't being honoured for starting the code deploy agent at boot. I explicitly need this disabled to prevent clash between code deploy and cfn-init.

I couldn't figure out why code deploy agent was still starting despite chkconfig listing all flags as OFF.

Turns out a cron entry is added to AUTO UPDATE the agent. This is wrong for two reasons:

  • it causes code deploy agent to start at boot because the install program automatically starts the agent service, and thus chkconfig is ignored
  • it's wrong to auto update software that hasn't been tested by the team managing the server (save urgent security updates done by AWS through cloud-init).

codedeploy-agent stop service

Stopping the codedeploy-agent service doesn't kill the CodeDeployPlugin::CommandPoller immediately and the command takes about 2 minutes to execute.

Just wondering if there is a way to cleanly stop the agent service without using kill/pkill?

[root@cli-2-0-8 ec2-user]# service codedeploy-agent status
error: No AWS CodeDeploy agent running

[root@cli-2-0-8 ec2-user]# time service codedeploy-agent start
Starting codedeploy-agent:
real    0m0.262s
user    0m0.240s
sys 0m0.004s

[root@cli-2-0-8 ec2-user]# ps aux | grep codedeploy 
root      7967  0.0  1.9 215532 19640 pts/0    Sl   04:34   0:00 codedeploy-agent: master 7967                                    
root      7971  2.8  2.9 294460 30376 pts/0    Sl   04:34   0:00 codedeploy-agent: InstanceAgent::Plugins::CodeDeployPlugin::CommandPoller of master 7967
root      7983  0.0  0.2 110460  2276 pts/0    S+   04:34   0:00 grep --color=auto codedeploy

[root@cli-2-0-8 ec2-user]# service codedeploy-agent status
The AWS CodeDeploy agent is running as PID 7967

[root@cli-2-0-8 ec2-user]# time service codedeploy-agent stop
Stopping codedeploy-agent:
real    1m20.242s
user    0m0.220s
sys 0m0.012s

[root@cli-2-0-8 ec2-user]# service codedeploy-agent status
Pidfile /opt/codedeploy-agent/state/.pid/codedeploy-agent.pid present but no matching process running - cleaning up
error: No AWS CodeDeploy agent running

[root@cli-2-0-8 ec2-user]# ps aux | grep codedeploy 
root      7971  0.1  3.0 360576 30796 pts/0    Sl   04:34   0:00 codedeploy-agent: InstanceAgent::Plugins::CodeDeployPlugin::CommandPoller of master 7967 - shutting down
root      8109  0.0  0.2 110456  2132 pts/0    S+   04:36   0:00 grep --color=auto codedeploy

CentOS Support

Hi, Can you guy consider supporting CentOS / Redhat linux environments?

404 Error on BundleDownload for private repo

Hi Guys,
I am getting this error on deployments. This is from the log:

ERROR [codedeploy-agent(26296)]: InstanceAgent::Plugins::CodeDeployPlugin::CommandExecutor: Could not download bundle at 'https://api.github.com/repos/my_organisation/my_repo/tarball/my_comitt_id'. Server returned code 404 'Not Found'

This is a private repo, so i created a Personal Access Token with "repo" scope and added the Token ID to the "Github Token" field under the AWS CodeDeploy Service.

Still the error happens. I am not sure if the codedeploy-agent gets this Token ID injected to it by the service when the deployment is called?

Any help will be appreciated.

regards

Updating the agent should not start the agent if it's not running

Follow-up to #43 (which I believe no one is reading).

I'm fine with auto updating the agent as long as the update process does not start the agent daemon. There are scenarios where we want to honour chkconfig and not start the agent at boot.

Either the update process should not start the agent (restart is OK since it's obviously already running) or we shouldn't have a cron entry that runs at reboot to update the agent (since we already update every hour).

expose git commit revision id as environmental variable to hook steps

Our CI systems precompiles some artifacts and stores them in S3 with the git revision as the unique identifier.

We'd like the scripts that run on deploy to download the correct version based on the deployed git commit id. Right now it's awkward, since we need to query for the deployment ID and then get the git commit id from there.

aws-sdk-core

using release v1.0-1.751 with bundler to install gem dependencies causes this error when trying to start child process:

2015-09-23 14:54:00 ERROR [codedeploy-agent(1506)]: Plugin codedeploy could not be loaded: Unable to activate codedeploy-commands-1.0.0, because aws-sdk-core-2.1.23 conflicts with aws-sdk-core (= 2.1.2).
2015-09-23 14:54:00 ERROR [codedeploy-agent(1506)]: booting child: error during start or run: Gem::ConflictError - Unable to activate codedeploy-commands-1.0.0, because aws-sdk-core-2.1.23 conflicts with aws-sdk-core (= 2.1.2) - /usr/lib/ruby/2.2.0/rubygems/specification.rb:2112:in `raise_if_conflicts'

looks like that lock to 2.1.2 is coming from: https://github.com/aws/aws-codedeploy-agent/blob/v1.0-1.751/vendor/specifications/codedeploy-commands-1.0.0.gemspec#L24

but the gemspec used by the Gemfile uses a pessimistic lock at (~> 2.1.0): https://github.com/aws/aws-codedeploy-agent/blob/v1.0-1.751/codedeploy_agent-1.1.0.gemspec#L18

causing aws-sdk-core 2.1.23 to be installed through bundler.

sleep before running codedeploy agent

Hello,

In bin/install script there is a do_sanity_check('/sbin/service') call in when 'rpm' section (which is used on amazon linux). The problem is it actually waiting 3 min before running agent first time (when instance is created): sleep(3 * 60). What is the goal for this sleep (3 minutes!). Can we remove it?

Thanks
Tim

Aws::CodeDeployCommand::Errors::AccessDeniedException after /etc/init.d/codedeploy-agent restart

After I modified codedeploy-agent's config file to reduce the number of builds it keeps around, I restarted it to get it to reread the config file by running:

sudo /etc/init.d/codedeploy-agent restart

The restart itself worked fine, but after the agent came back up it started to report a bunch of "access denied" errors in its logs, and deployments to that instance ceased to work. Eventually I tried rebooting the server itself, at which point everything began to work properly again.

Here is the relevant section of my logs from /var/log/aws/codedeploy-agent from around the time I restarted the agent:

2016-06-06 21:02:20 INFO  [codedeploy-agent(6665)]: Version file found in /opt/codedeploy-agent/.version.
2016-06-06 21:03:20 INFO  [codedeploy-agent(6665)]: [Aws::CodeDeployCommand::Client 200 60.365945 0 retries] poll_host_command(host_identifier:"arn:aws:ec2:us-east-1:XXXX:instance/i-YYYY")

2016-06-06 21:03:21 INFO  [codedeploy-agent(6665)]: Version file found in /opt/codedeploy-agent/.version.
2016-06-06 21:05:01 INFO  [codedeploy-agent(15321)]: Stopping master 6660
2016-06-06 21:05:01 INFO  [codedeploy-agent(6660)]: master 6660: Received TERM - stopping children and shutting down
2016-06-06 21:05:01 INFO  [codedeploy-agent(6665)]: InstanceAgent::Plugins::CodeDeployPlugin::CommandPoller of master 6660: Received TERM - setting internal shutting down flag and possibly finishing last run
2016-06-06 21:05:22 INFO  [codedeploy-agent(6665)]: [Aws::CodeDeployCommand::Client 200 121.037746 1 retries] poll_host_command(host_identifier:"arn:aws:ec2:us-east-1:XXXX:instance/i-YYYY")

2016-06-06 21:05:23 INFO  [codedeploy-agent(6665)]: InstanceAgent::Plugins::CodeDeployPlugin::CommandPoller of master 6660: shutting down
2016-06-06 21:05:25 INFO  [codedeploy-agent(15352)]: master 15352: Spawned child 1/1
2016-06-06 21:05:25 INFO  [codedeploy-agent(15352)]: master 15352: Spawned child 1/1
2016-06-06 21:05:25 INFO  [codedeploy-agent(15356)]: On Premises config file does not exist or not readable
2016-06-06 21:05:25 INFO  [codedeploy-agent(15356)]: On Premises config file does not exist or not readable
2016-06-06 21:05:25 INFO  [codedeploy-agent(15356)]: InstanceAgent::Plugins::CodeDeployPlugin::CommandExecutor: Archives to retain is: 1}
2016-06-06 21:05:25 INFO  [codedeploy-agent(15356)]: InstanceAgent::Plugins::CodeDeployPlugin::CommandExecutor: Archives to retain is: 1}
2016-06-06 21:05:25 INFO  [codedeploy-agent(15356)]: Version file found in /opt/codedeploy-agent/.version.
2016-06-06 21:05:25 INFO  [codedeploy-agent(15356)]: Version file found in /opt/codedeploy-agent/.version.
2016-06-06 21:05:25 INFO  [codedeploy-agent(15356)]: [Aws::CodeDeployCommand::Client 400 0.062063 0 retries] poll_host_command(host_identifier:"arn:aws:ec2:us-east-1:XXXX:instance/i-YYYY") Aws::CodeDeployCommand::Errors::AccessDeniedException

2016-06-06 21:05:25 INFO  [codedeploy-agent(15356)]: [Aws::CodeDeployCommand::Client 400 0.062063 0 retries] poll_host_command(host_identifier:"arn:aws:ec2:us-east-1:XXXX:instance/i-YYYY") Aws::CodeDeployCommand::Errors::AccessDeniedException

I'm not sure why restarting the server would work, I tried it on a guess because I thought it might be IAM-related or something.

codedeploy agent refuses to start

Whenever I run "service codedeploy-agent start", I am given the usage of the command. The agent never starts. What other information do you need from me?

prod-app-1 i-XXXXXX ubuntu ~ $ cat /etc/init.d/codedeploy-agent
#!/bin/bash -ex

# Init file for codedeploy-agent
#
# chkconfig: 2345 98 02
# description: codedeploy-agent processes the deployments created by AWS CodeDeploy and installs \
# the deployment artifacts on to this instance.

### BEGIN INIT INFO
# Provides:          codedeploy-agent
# Required-Start:    $all
# Required-Stop:     $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: AWS CodeDeploy Host Agent
# Description:       codedeploy-agent processes the deployments created by AWS CodeDeploy and installs
#                    the deployment artifacts on to this instance.
### END INIT INFO


RETVAL=0
[ -f /etc/profile ] && [ "`stat --format '%U %G' /etc/profile`" == "root root" ] && source /etc/profile

prog="codedeploy-agent"
AGENT_ROOT="/opt/codedeploy-agent/"
INSTALLER="/opt/codedeploy-agent/bin/install"
BIN="/opt/codedeploy-agent/bin/codedeploy-agent"

start() {
        echo -n $"Starting $prog:"
        cd $AGENT_ROOT
        nohup $BIN start >/dev/null </dev/null 2>&1  # Try to start the server
        exit $?
}

stop() {
        echo -n $"Stopping $prog:"
        cd $AGENT_ROOT
        nohup $BIN stop >/dev/null </dev/null 2>&1  # Try to stop the server
        exit $?
}

restart() {
        echo -n $"Restarting $prog:"
        cd $AGENT_ROOT
        nohup $BIN restart >/dev/null </dev/null 2>&1  # Try to restart the server
        exit $?
}

status() {
        cd $AGENT_ROOT
        $BIN status # Status of the server
        exit $?
}

update() {
        echo -n $"Updating $prog:"
        cd $AGENT_ROOT
        $INSTALLER auto #Update the agent
}

case "$1" in
        start)
                start
                ;;
        start-no-update)
                start
                ;;
        start-with-update)
                update
                start
                ;;
        stop)
                stop
                ;;
        restart)
                restart
                ;;
        force-reload)
                stop
                start
                ;;
        status)
                status
                ;;
        *)
                echo $"Usage: $0 {start|stop|status|restart}"
esac
prod-app-1 i-XXXXXXX ubuntu ~ $ sudo service codedeploy-agent start
+ RETVAL=0
+ '[' -f /etc/profile ']'
++ stat --format '%U %G' /etc/profile
+ '[' 'root root' == 'root root' ']'
+ source /etc/profile
++ '[' '' ']'
++ '[' -d /etc/profile.d ']'
++ for i in '/etc/profile.d/*.sh'
++ '[' -r /etc/profile.d/bash_completion.sh ']'
++ . /etc/profile.d/bash_completion.sh
+++ '[' -n '4.3.11(1)-release' -a -n '' -a -z '' ']'
++ for i in '/etc/profile.d/*.sh'
++ '[' -r /etc/profile.d/nvm.sh ']'
++ . /etc/profile.d/nvm.sh
+++ . /usr/local/src/nvm/nvm.sh
++++ NVM_SCRIPT_SOURCE=']'
++++ '[' -z '' ']'
++++ export NVM_CD_FLAGS=
++++ NVM_CD_FLAGS=
++++ nvm_has unsetopt
++++ type unsetopt
++++ '[' -z '' ']'
++++ '[' -n /usr/local/src/nvm/nvm.sh ']'
++++ NVM_SCRIPT_SOURCE=/usr/local/src/nvm/nvm.sh
++++++ dirname /usr/local/src/nvm/nvm.sh
+++++ cd /usr/local/src/nvm
+++++ pwd
++++ NVM_DIR=/usr/local/src/nvm
++++ export NVM_DIR
++++ unset NVM_SCRIPT_SOURCE
++++ '[' -z '' ']'
++++ export NVM_NODEJS_ORG_MIRROR=https://nodejs.org/dist
++++ NVM_NODEJS_ORG_MIRROR=https://nodejs.org/dist
++++ '[' -z '' ']'
++++ export NVM_IOJS_ORG_MIRROR=https://iojs.org/dist
++++ NVM_IOJS_ORG_MIRROR=https://iojs.org/dist
++++ NVM_AUTO_MODE=use
++++ nvm_supports_source_options
+++++ echo '[ $# -gt 0 ] && echo $1'
+++++ . /dev/stdin yes
++++ '[' _yes = _yes ']'
++++ '[' 1 -ne 0 ']'
++++ case "$1" in
++++ shift
++++ '[' 0 -ne 0 ']'
++++ nvm_auto use
++++ local NVM_MODE
++++ NVM_MODE=use
++++ local VERSION
++++ '[' _use = _install ']'
++++ '[' _use = _use ']'
+++++ nvm_alias default
++++ VERSION=v0.12.7
++++ '[' -n v0.12.7 ']'
++++ nvm use --silent v0.12.7
++++ '[' 3 -lt 1 ']'
++++ local GREP_OPTIONS
++++ GREP_OPTIONS=
++++ local VERSION
++++ local ADDITIONAL_PARAMETERS
++++ local ALIAS
++++ case $1 in
++++ local PROVIDED_VERSION
++++ local NVM_USE_SILENT
++++ NVM_USE_SILENT=0
++++ local NVM_DELETE_PREFIX
++++ NVM_DELETE_PREFIX=0
++++ shift
++++ '[' 2 -ne 0 ']'
++++ case "$1" in
++++ NVM_USE_SILENT=1
++++ shift
++++ '[' 1 -ne 0 ']'
++++ case "$1" in
++++ '[' -n v0.12.7 ']'
++++ PROVIDED_VERSION=v0.12.7
++++ shift
++++ '[' 0 -ne 0 ']'
++++ '[' -z v0.12.7 ']'
+++++ nvm_match_version v0.12.7
+++++ local NVM_IOJS_PREFIX
++++++ nvm_iojs_prefix
++++++ echo iojs
+++++ NVM_IOJS_PREFIX=iojs
+++++ local PROVIDED_VERSION
+++++ PROVIDED_VERSION=v0.12.7
+++++ case "_$PROVIDED_VERSION" in
+++++ nvm_version v0.12.7
+++++ local PATTERN
+++++ PATTERN=v0.12.7
+++++ local VERSION
+++++ '[' -z v0.12.7 ']'
+++++ '[' v0.12.7 = current ']'
+++++ local NVM_NODE_PREFIX
++++++ nvm_node_prefix
++++++ echo node
+++++ NVM_NODE_PREFIX=node
+++++ case "_$PATTERN" in
++++++ nvm_ls v0.12.7
++++++ command tail -n1
++++++ local PATTERN
++++++ PATTERN=v0.12.7
++++++ local VERSIONS
++++++ VERSIONS=
++++++ '[' v0.12.7 = current ']'
++++++ local NVM_IOJS_PREFIX
++++++ tail -n1
+++++++ nvm_iojs_prefix
+++++++ echo iojs
++++++ NVM_IOJS_PREFIX=iojs
++++++ local NVM_NODE_PREFIX
+++++++ nvm_node_prefix
+++++++ echo node
++++++ NVM_NODE_PREFIX=node
++++++ local NVM_VERSION_DIR_IOJS
+++++++ nvm_version_dir iojs
+++++++ local NVM_WHICH_DIR
+++++++ NVM_WHICH_DIR=iojs
+++++++ '[' -z iojs ']'
+++++++ '[' _iojs = _new ']'
+++++++ '[' _iojs = _iojs ']'
+++++++ echo /usr/local/src/nvm/versions/io.js
++++++ NVM_VERSION_DIR_IOJS=/usr/local/src/nvm/versions/io.js
++++++ local NVM_VERSION_DIR_NEW
+++++++ nvm_version_dir new
+++++++ local NVM_WHICH_DIR
+++++++ NVM_WHICH_DIR=new
+++++++ '[' -z new ']'
+++++++ '[' _new = _new ']'
+++++++ echo /usr/local/src/nvm/versions/node
++++++ NVM_VERSION_DIR_NEW=/usr/local/src/nvm/versions/node
++++++ local NVM_VERSION_DIR_OLD
+++++++ nvm_version_dir old
+++++++ local NVM_WHICH_DIR
+++++++ NVM_WHICH_DIR=old
+++++++ '[' -z old ']'
+++++++ '[' _old = _new ']'
+++++++ '[' _old = _iojs ']'
+++++++ '[' _old = _old ']'
+++++++ echo /usr/local/src/nvm
++++++ NVM_VERSION_DIR_OLD=/usr/local/src/nvm
++++++ case "$PATTERN" in
++++++ nvm_resolve_local_alias v0.12.7
++++++ '[' -z v0.12.7 ']'
++++++ local VERSION
++++++ local EXIT_CODE
+++++++ nvm_resolve_alias v0.12.7
+++++++ '[' -z v0.12.7 ']'
+++++++ local PATTERN
+++++++ PATTERN=v0.12.7
+++++++ local ALIAS
+++++++ ALIAS=v0.12.7
+++++++ local ALIAS_TEMP
+++++++ local SEEN_ALIASES
+++++++ SEEN_ALIASES=v0.12.7
+++++++ true
++++++++ nvm_alias v0.12.7
+++++++ ALIAS_TEMP=
+++++++ '[' -z '' ']'
+++++++ break
+++++++ '[' -n v0.12.7 ']'
+++++++ '[' _v0.12.7 '!=' _v0.12.7 ']'
+++++++ nvm_validate_implicit_alias v0.12.7
+++++++ return 2
++++++ VERSION=
++++++ EXIT_CODE=2
++++++ '[' -z '' ']'
++++++ return 2
+++++++ nvm_ensure_version_prefix v0.12.7
+++++++ local NVM_VERSION
++++++++ nvm_strip_iojs_prefix v0.12.7
++++++++ local NVM_IOJS_PREFIX
++++++++ command sed -e 's/^\([0-9]\)/v\1/g'
++++++++ sed -e 's/^\([0-9]\)/v\1/g'
+++++++++ nvm_iojs_prefix
+++++++++ echo iojs
++++++++ NVM_IOJS_PREFIX=iojs
++++++++ '[' _v0.12.7 = _iojs ']'
++++++++ echo v0.12.7
+++++++ NVM_VERSION=v0.12.7
+++++++ nvm_is_iojs_version v0.12.7
+++++++ case "$1" in
+++++++ return 1
+++++++ echo v0.12.7
++++++ PATTERN=v0.12.7
++++++ '[' _v0.12.7 = _N/A ']'
++++++ local NVM_PATTERN_STARTS_WITH_V
++++++ case $PATTERN in
++++++ NVM_PATTERN_STARTS_WITH_V=true
++++++ '[' true = true ']'
+++++++ nvm_num_version_groups v0.12.7
+++++++ local VERSION
+++++++ VERSION=v0.12.7
+++++++ VERSION=0.12.7
+++++++ VERSION=0.12.7
+++++++ '[' -z 0.12.7 ']'
+++++++ local NVM_NUM_DOTS
++++++++ echo 0.12.7
++++++++ command sed -e 's/[^\.]//g'
++++++++ sed -e 's/[^\.]//g'
+++++++ NVM_NUM_DOTS=..
+++++++ local NVM_NUM_GROUPS
+++++++ NVM_NUM_GROUPS=...
+++++++ echo 3
++++++ '[' _3 = _3 ']'
+++++++ nvm_version_path v0.12.7
+++++++ local VERSION
+++++++ VERSION=v0.12.7
+++++++ '[' -z v0.12.7 ']'
+++++++ nvm_is_iojs_version v0.12.7
+++++++ case "$1" in
+++++++ return 1
+++++++ nvm_version_greater 0.12.0 v0.12.7
+++++++ local LHS
++++++++ nvm_normalize_version 0.12.0
++++++++ echo 0.12.0
++++++++ command awk -F. '{ printf("%d%06d%06d\n", $1,$2,$3); }'
++++++++ awk -F. '{ printf("%d%06d%06d\n", $1,$2,$3); }'
+++++++ LHS=0000012000000
+++++++ local RHS
++++++++ nvm_normalize_version v0.12.7
++++++++ echo 0.12.7
++++++++ command awk -F. '{ printf("%d%06d%06d\n", $1,$2,$3); }'
++++++++ awk -F. '{ printf("%d%06d%06d\n", $1,$2,$3); }'
+++++++ RHS=0000012000007
+++++++ '[' 0000012000000 -gt 0000012000007 ']'
++++++++ nvm_version_dir new
++++++++ local NVM_WHICH_DIR
++++++++ NVM_WHICH_DIR=new
++++++++ '[' -z new ']'
++++++++ '[' _new = _new ']'
++++++++ echo /usr/local/src/nvm/versions/node
+++++++ echo /usr/local/src/nvm/versions/node/v0.12.7
++++++ '[' -d /usr/local/src/nvm/versions/node/v0.12.7 ']'
++++++ VERSIONS=v0.12.7
++++++ '[' '' = true ']'
++++++ '[' -z v0.12.7 ']'
++++++ echo v0.12.7
+++++ VERSION=v0.12.7
+++++ '[' -z v0.12.7 ']'
+++++ '[' _v0.12.7 = _N/A ']'
+++++ echo v0.12.7
++++ VERSION=v0.12.7
++++ '[' -z v0.12.7 ']'
++++ '[' _v0.12.7 = _system ']'
++++ '[' _v0.12.7 = _∞ ']'
++++ nvm_ensure_version_installed v0.12.7
++++ local PROVIDED_VERSION
++++ PROVIDED_VERSION=v0.12.7
++++ local LOCAL_VERSION
++++ local EXIT_CODE
+++++ nvm_version v0.12.7
+++++ local PATTERN
+++++ PATTERN=v0.12.7
+++++ local VERSION
+++++ '[' -z v0.12.7 ']'
+++++ '[' v0.12.7 = current ']'
+++++ local NVM_NODE_PREFIX
++++++ nvm_node_prefix
++++++ echo node
+++++ NVM_NODE_PREFIX=node
+++++ case "_$PATTERN" in
++++++ nvm_ls v0.12.7
++++++ command tail -n1
++++++ local PATTERN
++++++ tail -n1
++++++ PATTERN=v0.12.7
++++++ local VERSIONS
++++++ VERSIONS=
++++++ '[' v0.12.7 = current ']'
++++++ local NVM_IOJS_PREFIX
+++++++ nvm_iojs_prefix
+++++++ echo iojs
++++++ NVM_IOJS_PREFIX=iojs
++++++ local NVM_NODE_PREFIX
+++++++ nvm_node_prefix
+++++++ echo node
++++++ NVM_NODE_PREFIX=node
++++++ local NVM_VERSION_DIR_IOJS
+++++++ nvm_version_dir iojs
+++++++ local NVM_WHICH_DIR
+++++++ NVM_WHICH_DIR=iojs
+++++++ '[' -z iojs ']'
+++++++ '[' _iojs = _new ']'
+++++++ '[' _iojs = _iojs ']'
+++++++ echo /usr/local/src/nvm/versions/io.js
++++++ NVM_VERSION_DIR_IOJS=/usr/local/src/nvm/versions/io.js
++++++ local NVM_VERSION_DIR_NEW
+++++++ nvm_version_dir new
+++++++ local NVM_WHICH_DIR
+++++++ NVM_WHICH_DIR=new
+++++++ '[' -z new ']'
+++++++ '[' _new = _new ']'
+++++++ echo /usr/local/src/nvm/versions/node
++++++ NVM_VERSION_DIR_NEW=/usr/local/src/nvm/versions/node
++++++ local NVM_VERSION_DIR_OLD
+++++++ nvm_version_dir old
+++++++ local NVM_WHICH_DIR
+++++++ NVM_WHICH_DIR=old
+++++++ '[' -z old ']'
+++++++ '[' _old = _new ']'
+++++++ '[' _old = _iojs ']'
+++++++ '[' _old = _old ']'
+++++++ echo /usr/local/src/nvm
++++++ NVM_VERSION_DIR_OLD=/usr/local/src/nvm
++++++ case "$PATTERN" in
++++++ nvm_resolve_local_alias v0.12.7
++++++ '[' -z v0.12.7 ']'
++++++ local VERSION
++++++ local EXIT_CODE
+++++++ nvm_resolve_alias v0.12.7
+++++++ '[' -z v0.12.7 ']'
+++++++ local PATTERN
+++++++ PATTERN=v0.12.7
+++++++ local ALIAS
+++++++ ALIAS=v0.12.7
+++++++ local ALIAS_TEMP
+++++++ local SEEN_ALIASES
+++++++ SEEN_ALIASES=v0.12.7
+++++++ true
++++++++ nvm_alias v0.12.7
+++++++ ALIAS_TEMP=
+++++++ '[' -z '' ']'
+++++++ break
+++++++ '[' -n v0.12.7 ']'
+++++++ '[' _v0.12.7 '!=' _v0.12.7 ']'
+++++++ nvm_validate_implicit_alias v0.12.7
+++++++ return 2
++++++ VERSION=
++++++ EXIT_CODE=2
++++++ '[' -z '' ']'
++++++ return 2
+++++++ nvm_ensure_version_prefix v0.12.7
+++++++ local NVM_VERSION
++++++++ nvm_strip_iojs_prefix v0.12.7
++++++++ command sed -e 's/^\([0-9]\)/v\1/g'
++++++++ local NVM_IOJS_PREFIX
++++++++ sed -e 's/^\([0-9]\)/v\1/g'
+++++++++ nvm_iojs_prefix
+++++++++ echo iojs
++++++++ NVM_IOJS_PREFIX=iojs
++++++++ '[' _v0.12.7 = _iojs ']'
++++++++ echo v0.12.7
+++++++ NVM_VERSION=v0.12.7
+++++++ nvm_is_iojs_version v0.12.7
+++++++ case "$1" in
+++++++ return 1
+++++++ echo v0.12.7
++++++ PATTERN=v0.12.7
++++++ '[' _v0.12.7 = _N/A ']'
++++++ local NVM_PATTERN_STARTS_WITH_V
++++++ case $PATTERN in
++++++ NVM_PATTERN_STARTS_WITH_V=true
++++++ '[' true = true ']'
+++++++ nvm_num_version_groups v0.12.7
+++++++ local VERSION
+++++++ VERSION=v0.12.7
+++++++ VERSION=0.12.7
+++++++ VERSION=0.12.7
+++++++ '[' -z 0.12.7 ']'
+++++++ local NVM_NUM_DOTS
++++++++ echo 0.12.7
++++++++ command sed -e 's/[^\.]//g'
++++++++ sed -e 's/[^\.]//g'
+++++++ NVM_NUM_DOTS=..
+++++++ local NVM_NUM_GROUPS
+++++++ NVM_NUM_GROUPS=...
+++++++ echo 3
++++++ '[' _3 = _3 ']'
+++++++ nvm_version_path v0.12.7
+++++++ local VERSION
+++++++ VERSION=v0.12.7
+++++++ '[' -z v0.12.7 ']'
+++++++ nvm_is_iojs_version v0.12.7
+++++++ case "$1" in
+++++++ return 1
+++++++ nvm_version_greater 0.12.0 v0.12.7
+++++++ local LHS
++++++++ nvm_normalize_version 0.12.0
++++++++ echo 0.12.0
++++++++ command awk -F. '{ printf("%d%06d%06d\n", $1,$2,$3); }'
++++++++ awk -F. '{ printf("%d%06d%06d\n", $1,$2,$3); }'
+++++++ LHS=0000012000000
+++++++ local RHS
++++++++ nvm_normalize_version v0.12.7
++++++++ echo 0.12.7
++++++++ command awk -F. '{ printf("%d%06d%06d\n", $1,$2,$3); }'
++++++++ awk -F. '{ printf("%d%06d%06d\n", $1,$2,$3); }'
+++++++ RHS=0000012000007
+++++++ '[' 0000012000000 -gt 0000012000007 ']'
++++++++ nvm_version_dir new
++++++++ local NVM_WHICH_DIR
++++++++ NVM_WHICH_DIR=new
++++++++ '[' -z new ']'
++++++++ '[' _new = _new ']'
++++++++ echo /usr/local/src/nvm/versions/node
+++++++ echo /usr/local/src/nvm/versions/node/v0.12.7
++++++ '[' -d /usr/local/src/nvm/versions/node/v0.12.7 ']'
++++++ VERSIONS=v0.12.7
++++++ '[' '' = true ']'
++++++ '[' -z v0.12.7 ']'
++++++ echo v0.12.7
+++++ VERSION=v0.12.7
+++++ '[' -z v0.12.7 ']'
+++++ '[' _v0.12.7 = _N/A ']'
+++++ echo v0.12.7
++++ LOCAL_VERSION=v0.12.7
++++ EXIT_CODE=0
++++ local NVM_VERSION_DIR
++++ '[' _0 = _0 ']'
+++++ nvm_version_path v0.12.7
+++++ local VERSION
+++++ VERSION=v0.12.7
+++++ '[' -z v0.12.7 ']'
+++++ nvm_is_iojs_version v0.12.7
+++++ case "$1" in
+++++ return 1
+++++ nvm_version_greater 0.12.0 v0.12.7
+++++ local LHS
++++++ nvm_normalize_version 0.12.0
++++++ echo 0.12.0
++++++ command awk -F. '{ printf("%d%06d%06d\n", $1,$2,$3); }'
++++++ awk -F. '{ printf("%d%06d%06d\n", $1,$2,$3); }'
+++++ LHS=0000012000000
+++++ local RHS
++++++ nvm_normalize_version v0.12.7
++++++ echo 0.12.7
++++++ command awk -F. '{ printf("%d%06d%06d\n", $1,$2,$3); }'
++++++ awk -F. '{ printf("%d%06d%06d\n", $1,$2,$3); }'
+++++ RHS=0000012000007
+++++ '[' 0000012000000 -gt 0000012000007 ']'
++++++ nvm_version_dir new
++++++ local NVM_WHICH_DIR
++++++ NVM_WHICH_DIR=new
++++++ '[' -z new ']'
++++++ '[' _new = _new ']'
++++++ echo /usr/local/src/nvm/versions/node
+++++ echo /usr/local/src/nvm/versions/node/v0.12.7
++++ NVM_VERSION_DIR=/usr/local/src/nvm/versions/node/v0.12.7
++++ '[' _0 '!=' _0 ']'
++++ '[' '!' -d /usr/local/src/nvm/versions/node/v0.12.7 ']'
++++ EXIT_CODE=0
++++ '[' 0 '!=' 0 ']'
++++ local NVM_VERSION_DIR
+++++ nvm_version_path v0.12.7
+++++ local VERSION
+++++ VERSION=v0.12.7
+++++ '[' -z v0.12.7 ']'
+++++ nvm_is_iojs_version v0.12.7
+++++ case "$1" in
+++++ return 1
+++++ nvm_version_greater 0.12.0 v0.12.7
+++++ local LHS
++++++ nvm_normalize_version 0.12.0
++++++ echo 0.12.0
++++++ command awk -F. '{ printf("%d%06d%06d\n", $1,$2,$3); }'
++++++ awk -F. '{ printf("%d%06d%06d\n", $1,$2,$3); }'
+++++ LHS=0000012000000
+++++ local RHS
++++++ nvm_normalize_version v0.12.7
++++++ echo 0.12.7
++++++ command awk -F. '{ printf("%d%06d%06d\n", $1,$2,$3); }'
++++++ awk -F. '{ printf("%d%06d%06d\n", $1,$2,$3); }'
+++++ RHS=0000012000007
+++++ '[' 0000012000000 -gt 0000012000007 ']'
++++++ nvm_version_dir new
++++++ local NVM_WHICH_DIR
++++++ NVM_WHICH_DIR=new
++++++ '[' -z new ']'
++++++ '[' _new = _new ']'
++++++ echo /usr/local/src/nvm/versions/node
+++++ echo /usr/local/src/nvm/versions/node/v0.12.7
++++ NVM_VERSION_DIR=/usr/local/src/nvm/versions/node/v0.12.7
+++++ nvm_strip_path /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin /bin
+++++ echo /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+++++ command sed -e 's#/usr/local/src/nvm/[^/]*/bin[^:]*:##g' -e 's#:/usr/local/src/nvm/[^/]*/bin[^:]*##g' -e 's#/usr/local/src/nvm/[^/]*/bin[^:]*##g' -e 's#/usr/local/src/nvm/versions/[^/]*/[^/]*/bin[^:]*:##g' -e 's#:/usr/local/src/nvm/versions/[^/]*/[^/]*/bin[^:]*##g' -e 's#/usr/local/src/nvm/versions/[^/]*/[^/]*/bin[^:]*##g'
+++++ sed -e 's#/usr/local/src/nvm/[^/]*/bin[^:]*:##g' -e 's#:/usr/local/src/nvm/[^/]*/bin[^:]*##g' -e 's#/usr/local/src/nvm/[^/]*/bin[^:]*##g' -e 's#/usr/local/src/nvm/versions/[^/]*/[^/]*/bin[^:]*:##g' -e 's#:/usr/local/src/nvm/versions/[^/]*/[^/]*/bin[^:]*##g' -e 's#/usr/local/src/nvm/versions/[^/]*/[^/]*/bin[^:]*##g'
++++ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
+++++ nvm_prepend_path /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin /usr/local/src/nvm/versions/node/v0.12.7/bin
+++++ '[' -z /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin ']'
+++++ echo /usr/local/src/nvm/versions/node/v0.12.7/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
++++ PATH=/usr/local/src/nvm/versions/node/v0.12.7/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
++++ nvm_has manpath
++++ type manpath
++++ '[' -z '' ']'
+++++ manpath
++++ MANPATH=/usr/local/src/nvm/versions/node/v0.12.7/share/man:/usr/local/man:/usr/local/share/man:/usr/share/man
+++++ nvm_strip_path /usr/local/src/nvm/versions/node/v0.12.7/share/man:/usr/local/man:/usr/local/share/man:/usr/share/man /share/man
+++++ echo /usr/local/src/nvm/versions/node/v0.12.7/share/man:/usr/local/man:/usr/local/share/man:/usr/share/man
+++++ command sed -e 's#/usr/local/src/nvm/[^/]*/share/man[^:]*:##g' -e 's#:/usr/local/src/nvm/[^/]*/share/man[^:]*##g' -e 's#/usr/local/src/nvm/[^/]*/share/man[^:]*##g' -e 's#/usr/local/src/nvm/versions/[^/]*/[^/]*/share/man[^:]*:##g' -e 's#:/usr/local/src/nvm/versions/[^/]*/[^/]*/share/man[^:]*##g' -e 's#/usr/local/src/nvm/versions/[^/]*/[^/]*/share/man[^:]*##g'
+++++ sed -e 's#/usr/local/src/nvm/[^/]*/share/man[^:]*:##g' -e 's#:/usr/local/src/nvm/[^/]*/share/man[^:]*##g' -e 's#/usr/local/src/nvm/[^/]*/share/man[^:]*##g' -e 's#/usr/local/src/nvm/versions/[^/]*/[^/]*/share/man[^:]*:##g' -e 's#:/usr/local/src/nvm/versions/[^/]*/[^/]*/share/man[^:]*##g' -e 's#/usr/local/src/nvm/versions/[^/]*/[^/]*/share/man[^:]*##g'
++++ MANPATH=/usr/local/man:/usr/local/share/man:/usr/share/man
+++++ nvm_prepend_path /usr/local/man:/usr/local/share/man:/usr/share/man /usr/local/src/nvm/versions/node/v0.12.7/share/man
+++++ '[' -z /usr/local/man:/usr/local/share/man:/usr/share/man ']'
+++++ echo /usr/local/src/nvm/versions/node/v0.12.7/share/man:/usr/local/man:/usr/local/share/man:/usr/share/man
++++ MANPATH=/usr/local/src/nvm/versions/node/v0.12.7/share/man:/usr/local/man:/usr/local/share/man:/usr/share/man
++++ export MANPATH
++++ export PATH
++++ hash -r
++++ export NVM_PATH=/usr/local/src/nvm/versions/node/v0.12.7/lib/node
++++ NVM_PATH=/usr/local/src/nvm/versions/node/v0.12.7/lib/node
++++ export NVM_BIN=/usr/local/src/nvm/versions/node/v0.12.7/bin
++++ NVM_BIN=/usr/local/src/nvm/versions/node/v0.12.7/bin
++++ '[' '' = true ']'
++++ local NVM_USE_OUTPUT
++++ '[' 1 -ne 1 ']'
++++ '[' _v0.12.7 '!=' _system ']'
++++ local NVM_USE_CMD
++++ NVM_USE_CMD='nvm use --delete-prefix'
++++ '[' -n v0.12.7 ']'
++++ NVM_USE_CMD='nvm use --delete-prefix v0.12.7'
++++ '[' 1 -eq 1 ']'
++++ NVM_USE_CMD='nvm use --delete-prefix v0.12.7 --silent'
++++ nvm_die_on_prefix 0 'nvm use --delete-prefix v0.12.7 --silent'
++++ local NVM_DELETE_PREFIX
++++ NVM_DELETE_PREFIX=0
++++ case "$NVM_DELETE_PREFIX" in
++++ local NVM_COMMAND
++++ NVM_COMMAND='nvm use --delete-prefix v0.12.7 --silent'
++++ '[' -z 'nvm use --delete-prefix v0.12.7 --silent' ']'
++++ '[' -n '' ']'
++++ '[' -n '' ']'
++++ nvm_has npm
++++ type npm
++++ local NVM_NPM_PREFIX
+++++ NPM_CONFIG_LOGLEVEL=warn
+++++ npm config get prefix
++++ NVM_NPM_PREFIX=/usr/local/src/nvm/versions/node/v0.12.7
++++ nvm_tree_contains_path /usr/local/src/nvm /usr/local/src/nvm/versions/node/v0.12.7
++++ '[' -n '' ']'
++ for i in '/etc/profile.d/*.sh'
++ '[' -r /etc/profile.d/vte.sh ']'
++ . /etc/profile.d/vte.sh
+++ '[' -n '4.3.11(1)-release' -o -n '' ']'
+++ [[ ehxB == *i* ]]
+++ return 0
++ for i in '/etc/profile.d/*.sh'
++ '[' -r /etc/profile.d/Z97-byobu.sh ']'
++ . /etc/profile.d/Z97-byobu.sh
+++ '[' -n '' ']'
+++ '[' '' = byobu ']'
+++ '[' '' = byobu-screen ']'
+++ '[' '' = byobu-tmux ']'
++ for i in '/etc/profile.d/*.sh'
++ '[' -r /etc/profile.d/Z99-cloud-locale-test.sh ']'
++ . /etc/profile.d/Z99-cloud-locale-test.sh
+++ '[' -f /root/.cloud-locale-test.skip -o -f /var/lib/cloud/instance/locale-check.skip ']'
+++ locale
+++ locale_warn
+++ local bad_names= bad_lcs= key= val= var= vars=
+++ local w1 w2 w3 w4 remain
+++ '[' '' = zsh ']'
+++ read -r w1 w2 w3 w4 remain
+++ case "$w1" in
+++ key=LANG
+++ val=en_US.UTF-8
+++ val=en_US.UTF-8
+++ val=en_US.UTF-8
+++ vars=' LANG=en_US.UTF-8'
+++ read -r w1 w2 w3 w4 remain
+++ case "$w1" in
+++ key=LANGUAGE
+++ val=
+++ val=
+++ val=
+++ vars=' LANG=en_US.UTF-8 LANGUAGE='
+++ read -r w1 w2 w3 w4 remain
+++ case "$w1" in
+++ key=LC_CTYPE
+++ val='"en_US.UTF-8"'
+++ val='en_US.UTF-8"'
+++ val=en_US.UTF-8
+++ vars=' LANG=en_US.UTF-8 LANGUAGE= LC_CTYPE=en_US.UTF-8'
+++ read -r w1 w2 w3 w4 remain
+++ case "$w1" in
+++ key=LC_NUMERIC
+++ val='"en_US.UTF-8"'
+++ val='en_US.UTF-8"'
+++ val=en_US.UTF-8
+++ vars=' LANG=en_US.UTF-8 LANGUAGE= LC_CTYPE=en_US.UTF-8 LC_NUMERIC=en_US.UTF-8'
+++ read -r w1 w2 w3 w4 remain
+++ case "$w1" in
+++ key=LC_TIME
+++ val='"en_US.UTF-8"'
+++ val='en_US.UTF-8"'
+++ val=en_US.UTF-8
+++ vars=' LANG=en_US.UTF-8 LANGUAGE= LC_CTYPE=en_US.UTF-8 LC_NUMERIC=en_US.UTF-8 LC_TIME=en_US.UTF-8'
+++ read -r w1 w2 w3 w4 remain
+++ case "$w1" in
+++ key=LC_COLLATE
+++ val='"en_US.UTF-8"'
+++ val='en_US.UTF-8"'
+++ val=en_US.UTF-8
+++ vars=' LANG=en_US.UTF-8 LANGUAGE= LC_CTYPE=en_US.UTF-8 LC_NUMERIC=en_US.UTF-8 LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8'
+++ read -r w1 w2 w3 w4 remain
+++ case "$w1" in
+++ key=LC_MONETARY
+++ val='"en_US.UTF-8"'
+++ val='en_US.UTF-8"'
+++ val=en_US.UTF-8
+++ vars=' LANG=en_US.UTF-8 LANGUAGE= LC_CTYPE=en_US.UTF-8 LC_NUMERIC=en_US.UTF-8 LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 LC_MONETARY=en_US.UTF-8'
+++ read -r w1 w2 w3 w4 remain
+++ case "$w1" in
+++ key=LC_MESSAGES
+++ val='"en_US.UTF-8"'
+++ val='en_US.UTF-8"'
+++ val=en_US.UTF-8
+++ vars=' LANG=en_US.UTF-8 LANGUAGE= LC_CTYPE=en_US.UTF-8 LC_NUMERIC=en_US.UTF-8 LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8'
+++ read -r w1 w2 w3 w4 remain
+++ case "$w1" in
+++ key=LC_PAPER
+++ val='"en_US.UTF-8"'
+++ val='en_US.UTF-8"'
+++ val=en_US.UTF-8
+++ vars=' LANG=en_US.UTF-8 LANGUAGE= LC_CTYPE=en_US.UTF-8 LC_NUMERIC=en_US.UTF-8 LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 LC_PAPER=en_US.UTF-8'
+++ read -r w1 w2 w3 w4 remain
+++ case "$w1" in
+++ key=LC_NAME
+++ val='"en_US.UTF-8"'
+++ val='en_US.UTF-8"'
+++ val=en_US.UTF-8
+++ vars=' LANG=en_US.UTF-8 LANGUAGE= LC_CTYPE=en_US.UTF-8 LC_NUMERIC=en_US.UTF-8 LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 LC_PAPER=en_US.UTF-8 LC_NAME=en_US.UTF-8'
+++ read -r w1 w2 w3 w4 remain
+++ case "$w1" in
+++ key=LC_ADDRESS
+++ val='"en_US.UTF-8"'
+++ val='en_US.UTF-8"'
+++ val=en_US.UTF-8
+++ vars=' LANG=en_US.UTF-8 LANGUAGE= LC_CTYPE=en_US.UTF-8 LC_NUMERIC=en_US.UTF-8 LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 LC_PAPER=en_US.UTF-8 LC_NAME=en_US.UTF-8 LC_ADDRESS=en_US.UTF-8'
+++ read -r w1 w2 w3 w4 remain
+++ case "$w1" in
+++ key=LC_TELEPHONE
+++ val='"en_US.UTF-8"'
+++ val='en_US.UTF-8"'
+++ val=en_US.UTF-8
+++ vars=' LANG=en_US.UTF-8 LANGUAGE= LC_CTYPE=en_US.UTF-8 LC_NUMERIC=en_US.UTF-8 LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 LC_PAPER=en_US.UTF-8 LC_NAME=en_US.UTF-8 LC_ADDRESS=en_US.UTF-8 LC_TELEPHONE=en_US.UTF-8'
+++ read -r w1 w2 w3 w4 remain
+++ case "$w1" in
+++ key=LC_MEASUREMENT
+++ val='"en_US.UTF-8"'
+++ val='en_US.UTF-8"'
+++ val=en_US.UTF-8
+++ vars=' LANG=en_US.UTF-8 LANGUAGE= LC_CTYPE=en_US.UTF-8 LC_NUMERIC=en_US.UTF-8 LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 LC_PAPER=en_US.UTF-8 LC_NAME=en_US.UTF-8 LC_ADDRESS=en_US.UTF-8 LC_TELEPHONE=en_US.UTF-8 LC_MEASUREMENT=en_US.UTF-8'
+++ read -r w1 w2 w3 w4 remain
+++ case "$w1" in
+++ key=LC_IDENTIFICATION
+++ val='"en_US.UTF-8"'
+++ val='en_US.UTF-8"'
+++ val=en_US.UTF-8
+++ vars=' LANG=en_US.UTF-8 LANGUAGE= LC_CTYPE=en_US.UTF-8 LC_NUMERIC=en_US.UTF-8 LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 LC_PAPER=en_US.UTF-8 LC_NAME=en_US.UTF-8 LC_ADDRESS=en_US.UTF-8 LC_TELEPHONE=en_US.UTF-8 LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=en_US.UTF-8'
+++ read -r w1 w2 w3 w4 remain
+++ case "$w1" in
+++ key=LC_ALL
+++ val=
+++ val=
+++ val=
+++ vars=' LANG=en_US.UTF-8 LANGUAGE= LC_CTYPE=en_US.UTF-8 LC_NUMERIC=en_US.UTF-8 LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 LC_PAPER=en_US.UTF-8 LC_NAME=en_US.UTF-8 LC_ADDRESS=en_US.UTF-8 LC_TELEPHONE=en_US.UTF-8 LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=en_US.UTF-8 LC_ALL='
+++ read -r w1 w2 w3 w4 remain
+++ bad_lcs=
+++ '[' -n '' ']'
+++ return 0
+++ unset locale_warn
++ unset i
+ prog=codedeploy-agent
+ AGENT_ROOT=/opt/codedeploy-agent/
+ INSTALLER=/opt/codedeploy-agent/bin/install
+ BIN=/opt/codedeploy-agent/bin/codedeploy-agent
+ case "$1" in
+ echo 'Usage: /etc/init.d/codedeploy-agent {start|stop|status|restart}'
Usage: /etc/init.d/codedeploy-agent {start|stop|status|restart}
prod-app-1 i-XXXXXXX ubuntu ~ $

Add Support for "Overwrite" instruction in appspec.yml "Files" section

Feature Request:

Would like the ability to have an "overwrite" instruction in the appspec.yml "Files" section.

Use:

In my initial testing, I wanted to clobber all files in /var/www/html with new files. This resulted in a failure because the files already existed. Specifically, the following failure: 2015-06-13 20:58:40 ERROR [codedeploy-agent(7589)]: InstanceAgent::Plugins::CodeDeployPlugin::CommandPoller: Error during perform: RuntimeError - File already exists at location /var/www/html/index.html - /opt/codedeploy-agent/lib/instance_agent/plugins/codedeploy/installer.rb:113:ingenerate_normal_copy'`

Desired Behavior:

I'd like to be able to create an appspec.yml file with the following section:
files:
- source: web
destination: /var/www/html/
overwrite: true
Notice I've added the "overwrite" instruction, which is currently not offered.

Current Workaround:

I've been working around by utilizing the hook section to do file copies. The hooks/shell script workaround is sufficient, rendering this a lower priority feature request.

Rewrite AWS CodeDeploy Agent.

TL;DR - this thing is a steaming pile.

Allow me to count the ways:

  1. Bizarre inclusion of gems inside of vendor/* breaks convention with basically every other gem out there.
  2. Tests do not run.
  3. No continuous integration setup. TravisCI or similar would be a great help here.
  4. No code climate setup.
  5. Indecipherable jumps of logic to simply poll the codedeploy service and execute new deployments.
  6. No documentation.
    • log files
    • config files
    • environment variables
    • configurable options (e.g. proxy, error handling, log levels, etc)

In addition, this "issues" board is a ghost town. Unresolved issues have lingered far too long without comment.

In need of a working CodeDeploy agent with actual tests, documentation and support, I propose the following:

  1. Scrap what's here. There's nothing documented and therefore no public interface to continue to support.
  2. Document the new interface and behavior.
  3. Write tests which would prove the new interface and behavior.
  4. Write code to make those tests pass.
  5. Release the new agent as a gem.
  6. ???
  7. PROFIT!!!

Who's with me?

Add Support for Ubuntu 15.10 (wily) / Ruby 2.1

It would be nice to be able to run AWS CodeDeploy on Ubuntu 15.10 (wily) which does not ship with Ruby version 2.0.

There are two workarounds I've listed below:

  • add trusty repository to Ubuntu and install package Ruby2.0
  • use RVM

In the case of Ubuntu, I have a preference for being able to run under the system provided, current version of Ruby.

Log actions during a deployment

I use Codedeploy to kick off a few things, one of which is a Chef solo run.

Tailing /var/log/aws/codedeploy-agent/codedeploy-agent.log reveals almost nothing of value, certainly none of the copious logs from performing the Chef run.

Suggestion: Make it very clear where the log for each Codedeploy deployment goes, and have that log include all output from its child tasks (such as Chef runs, in this case).

If there was some reason why providing visibility into what Codedeploy is doing was intentionally left out, and it will take a significant effort to add it back in, please make it known.

Thanks.

retry(wait) options for ValidateService hook

It can take a while before processes are ready to respond requests, but there's no retry(wait) concept for ValidateService hook of appspec.yml. So you need to write your own poll-until-apps-are-ready logics.

So it would be great if you can write something like ::

  ValidateService:
    - location: Scripts/MonitorService.sh
      timeout: 3600
      retry: 5
      retry_interval: 30
      runas: codedeployuser

and put only the core logic to ValidateService scripts

SSL Error On-Premises Windows

I am getting the following SSL certificate error with an on-premises Windows machine:

2015-11-06 07:47:57 ERROR [codedeploy-agent(21272)]: InstanceAgent::Plugins::CodeDeployPlugin::CodeDeployControl: Error during certificate verification on codedeploy endpoint https://codedeploy-commands.eu-west-1.amazonaws.com
2015-11-06 07:47:57 DEBUG [codedeploy-agent(21272)]: InstanceAgent::Plugins::CodeDeployPlugin::CodeDeployControl: #<OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed>
2015-11-06 07:47:57 ERROR [codedeploy-agent(21272)]: Error validating the SSL configuration: Invalid server certificate
2015-11-06 07:47:57 ERROR [codedeploy-agent(21272)]: CodeDeploy Instance Agent Service: CodeDeploy Instance Agent Service: error during start or run: SystemExit - Stopping CodeDeploy agent due to SSL validation error. - c:/temp/ocr7A98.tmp/src/lib/instance_agent/plugins/codedeploy/command_poller.rb:44:in `abort'
c:/temp/ocr7A98.tmp/src/lib/instance_agent/plugins/codedeploy/command_poller.rb:44:in `validate'

To install the CodeDeploy agent, I installed the AWS CLI, copied conf.onpremises.yml to C:\ProgramData\Amazon\CodeDeploy, downloaded codedeploy-agent.msi, and ran the MSI installation.

What am I missing?

codedeploy-agent keeps a default of 11 and a minimum of 5 copies of my application on disk

I have a few related issues here that are about how many copies of my application codedeploy-agent keeps around on disk.

With the default settings, codedeploy-agent will keep 11 copies of my application on disk after enough deployments happen:

  • One actual installed, deployed application
  • For each of the previous 5 revisions:
    • One copy of the .tar application revision from s3
    • One unpacked directory of that same application revision in the deployment-archive directory

This seems excessive. I'm deploying a 160MB jar file to an instance with 8GB of disk space, and codedeploy-agent is consuming 1.6GB of disk just to keep old revisions around.

I can moderate this somewhat by changing the max_revisions setting in /etc/codedeploy-agent/conf/codedeployagent.yml (although this feature is not documented anywhere, as far as I can tell). But thanks to #57, the lowest value I can set this to is 1, which winds up keeping 5 copies of my application on disk:

  • One deployed copy of the application
  • For the current and previous deployments, one bundle file and one unzipped directory

Some suggestions for how this could be improved:

  • codedeploy-agent should keep either the unpacked deployment-archive or the application revision archive file file around, but not both - it should delete one or the other after a successful deployment.
  • The default value of max_revisions should be set to 1 (which actually means two previous deployments)
  • #57 should be fixed. ;)

Allow to configure ARCHIVES_TO_RETAIN

Hi,

It'll be nice to add an option to the configuration file to set ARCHIVES_TO_RETAIN

On some project I have 20 applications, so I can have potentially 20_5_ size of the app (100MB) on the filesystem

Best regards

ScriptMissing and absolute paths

Happy Thursday, All!

Running into a peculiar error: I'm getting notified that a script in my appspec.yml file doesn't exist even though it does.

Error Code ScriptMissing
Script Name /usr/local/codedeploy-scripts/deregister_from_elb.sh
Message Script does not exist at specified location: /usr/local/codedeploy-scripts/deregister_from_elb.sh
Log Tail LifecycleEvent - BeforeInstall

Are absolute paths to scripts allowed or does it have to be relative to the deployment-archive path?

Windows: Archives with large paths fail to expand properly

I have a pre-packaged Windows application that has very long file paths (ie. vendor/Website/blahblah/shell/client/Applications/ContentTesting/Components/DataSource/MyVeryBigFilenameThatForSomeReasonIsHuge/MyVeryBigFilenameThatForSomeReasonIsHuge.cshtml). When combined with the default CodeDeploy Agent working directory (ie. C:\ProgramData/Amazon/CodeDeploy/af1d3bc9-b218-4209-bcea-2e2be521f1d7/d-4LZ8QQKED/deployment-archive) I end up with a file path that is greater than 260 characters. In order to work with file paths that large you have to do some things differently[0].

Can you give me any guidance as to who I might get around this issue?

[0]https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx#maxpath

Init scripts fail with RVM installed system-wide

If RVM is installed in the system-wide mode, with rvm.sh in the default /etc/profile.d/rvm.sh, the init scripts will not work properly due to this line.

Commenting it out seems to work fine in my case. Is it necessary to load /etc/profile?

OS: Ubuntu 14.04 LTS

Core Dump:

# service codedeploy-agent status
/usr/lib/ruby/2.0.0/rubygems/specification.rb:1395: [BUG] Segmentation fault
ruby 2.0.0p384 (2014-01-12) [x86_64-linux-gnu]

-- Control frame information -----------------------------------------------
c:0020 p:0019 s:0087 e:000081 BLOCK  /usr/lib/ruby/2.0.0/rubygems/specification.rb:1395 [FINISH]
c:0019 p:---- s:0078 e:000077 IFUNC
c:0018 p:---- s:0076 e:000075 CFUNC  :each
c:0017 p:---- s:0074 e:000073 CFUNC  :any?
c:0016 p:0029 s:0071 e:000070 METHOD /usr/lib/ruby/2.0.0/rubygems/specification.rb:1394
c:0015 p:0018 s:0065 e:000064 BLOCK  /usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:63 [FINISH]
c:0014 p:---- s:0062 e:000061 IFUNC
c:0013 p:0008 s:0060 e:000058 BLOCK  /usr/lib/ruby/2.0.0/rubygems/specification.rb:823 [FINISH]
c:0012 p:---- s:0056 e:000055 CFUNC  :each
c:0011 p:0026 s:0053 e:000052 METHOD /usr/lib/ruby/2.0.0/rubygems/specification.rb:822 [FINISH]
c:0010 p:---- s:0050 e:000049 CFUNC  :find
c:0009 p:0129 s:0047 e:000046 METHOD /usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:62
c:0008 p:0055 s:0037 e:000036 TOP    /opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli/commands/help.rb:7 [FINISH]
c:0007 p:---- s:0035 e:000034 CFUNC  :require
c:0006 p:0144 s:0031 e:000030 METHOD /usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:66
c:0005 p:0127 s:0021 e:000020 TOP    /opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli.rb:16 [FINISH]
c:0004 p:---- s:0019 e:000018 CFUNC  :require
c:0003 p:0144 s:0015 e:000014 METHOD /usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:66
c:0002 p:0060 s:0005 E:0002d0 EVAL   /opt/codedeploy-agent/bin/codedeploy-agent:23 [FINISH]
c:0001 p:0000 s:0002 E:000a58 TOP    [FINISH]

-- Ruby level backtrace information ----------------------------------------
/opt/codedeploy-agent/bin/codedeploy-agent:23:in `<main>'
/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:66:in `require'
/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:66:in `require'
/opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli.rb:16:in `<top (required)>'
/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:66:in `require'
/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:66:in `require'
/opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli/commands/help.rb:7:in `<top (required)>'
/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:62:in `require'
/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:62:in `find'
/usr/lib/ruby/2.0.0/rubygems/specification.rb:822:in `each'
/usr/lib/ruby/2.0.0/rubygems/specification.rb:822:in `each'
/usr/lib/ruby/2.0.0/rubygems/specification.rb:823:in `block in each'
/usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:63:in `block in require'
/usr/lib/ruby/2.0.0/rubygems/specification.rb:1394:in `contains_requirable_file?'
/usr/lib/ruby/2.0.0/rubygems/specification.rb:1394:in `any?'
/usr/lib/ruby/2.0.0/rubygems/specification.rb:1394:in `each'
/usr/lib/ruby/2.0.0/rubygems/specification.rb:1395:in `block in contains_requirable_file?'

-- C level backtrace information -------------------------------------------
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x177bbb) [0x7f81b02abbbb]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x64afa) [0x7f81b0198afa]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(rb_bug+0xb3) [0x7f81b0199203]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x112196) [0x7f81b0246196]
/lib/x86_64-linux-gnu/libc.so.6(+0x36d40) [0x7f81afda5d40]
/lib/x86_64-linux-gnu/libc.so.6(cfree+0x3c) [0x7f81afdf1e2c]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x7d17e) [0x7f81b01b117e]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x7da07) [0x7f81b01b1a07]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x7e368) [0x7f81b01b2368]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x11df66) [0x7f81b0251f66]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(rb_str_modify+0x81) [0x7f81b02592d1]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x12540c) [0x7f81b025940c]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x12b73a) [0x7f81b025f73a]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(rb_str_buf_append+0x5a) [0x7f81b025fc3a]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(rb_str_append+0x78) [0x7f81b025fd48]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x1635d8) [0x7f81b02975d8]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x169a87) [0x7f81b029da87]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(rb_yield_values2+0x204) [0x7f81b02a6784]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x5ce1e) [0x7f81b0190e1e]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(rb_yield+0x9a2) [0x7f81b02a6262]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(rb_ary_each+0x52) [0x7f81b0162f02]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x16a69f) [0x7f81b029e69f]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x16ffa7) [0x7f81b02a3fa7]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(rb_iterate+0xd4) [0x7f81b02962d4]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(rb_block_call+0x2b) [0x7f81b02964fb]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x5cbe9) [0x7f81b0190be9]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x161784) [0x7f81b0295784]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x16e29e) [0x7f81b02a229e]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x164c35) [0x7f81b0298c35]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x169a87) [0x7f81b029da87]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(rb_yield+0x204) [0x7f81b02a5ac4]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x5fbbe) [0x7f81b0193bbe]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x167617) [0x7f81b029b617]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x169a87) [0x7f81b029da87]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(rb_yield+0x204) [0x7f81b02a5ac4]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(rb_ary_each+0x52) [0x7f81b0162f02]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x161784) [0x7f81b0295784]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x16e29e) [0x7f81b02a229e]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x164c35) [0x7f81b0298c35]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x169a87) [0x7f81b029da87]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x16a5b4) [0x7f81b029e5b4]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x16ffa7) [0x7f81b02a3fa7]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(rb_iterate+0xd4) [0x7f81b02962d4]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(rb_block_call+0x2b) [0x7f81b02964fb]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x5ccbd) [0x7f81b0190cbd]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x161784) [0x7f81b0295784]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x16e29e) [0x7f81b02a229e]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x164c35) [0x7f81b0298c35]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x169a87) [0x7f81b029da87]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(rb_iseq_eval+0x129) [0x7f81b02a7ae9]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x6c3ea) [0x7f81b01a03ea]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(rb_require_safe+0x554) [0x7f81b01a1a84]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x161784) [0x7f81b0295784]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x16e29e) [0x7f81b02a229e]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x164cac) [0x7f81b0298cac]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x169a87) [0x7f81b029da87]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(rb_iseq_eval+0x129) [0x7f81b02a7ae9]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x6c3ea) [0x7f81b01a03ea]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(rb_require_safe+0x554) [0x7f81b01a1a84]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x161784) [0x7f81b0295784]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x16e29e) [0x7f81b02a229e]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x164cac) [0x7f81b0298cac]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x169a87) [0x7f81b029da87]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(rb_iseq_eval_main+0x7f) [0x7f81b02a7b9f]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(+0x680fa) [0x7f81b019c0fa]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(ruby_exec_node+0x1d) [0x7f81b019d7fd]
/usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0(ruby_run_node+0x1e) [0x7f81b019f3fe]
/usr/bin/ruby2.0() [0x40086b]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) [0x7f81afd90ec5]
/usr/bin/ruby2.0() [0x400899]

-- Other runtime information -----------------------------------------------

* Loaded script: /opt/codedeploy-agent/bin/codedeploy-agent

* Loaded features:

    0 enumerator.so
    1 /usr/lib/x86_64-linux-gnu/ruby/2.0.0/enc/encdb.so
    2 /usr/lib/x86_64-linux-gnu/ruby/2.0.0/enc/trans/transdb.so
    3 /usr/lib/x86_64-linux-gnu/ruby/2.0.0/rbconfig.rb
    4 /usr/lib/ruby/2.0.0/rubygems/compatibility.rb
    5 /usr/lib/ruby/2.0.0/rubygems/defaults.rb
    6 /usr/lib/ruby/2.0.0/rubygems/deprecate.rb
    7 /usr/lib/ruby/2.0.0/rubygems/errors.rb
    8 /usr/lib/ruby/2.0.0/rubygems/version.rb
    9 /usr/lib/ruby/2.0.0/rubygems/requirement.rb
   10 /usr/lib/ruby/2.0.0/rubygems/platform.rb
   11 /usr/lib/ruby/2.0.0/rubygems/specification.rb
   12 /usr/lib/ruby/2.0.0/rubygems/exceptions.rb
   13 /usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb
   14 /usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_gem.rb
   15 /usr/lib/ruby/2.0.0/thread.rb
   16 /usr/lib/ruby/2.0.0/monitor.rb
   17 /usr/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb
   18 /usr/lib/ruby/2.0.0/rubygems.rb
   19 /usr/lib/ruby/2.0.0/rubygems/path_support.rb
   20 /opt/codedeploy-agent/lib/core_ext.rb
   21 /usr/lib/ruby/2.0.0/rubygems/dependency.rb
   22 /usr/lib/x86_64-linux-gnu/ruby/2.0.0/socket.so
   23 /usr/lib/ruby/2.0.0/socket.rb
   24 /usr/lib/x86_64-linux-gnu/ruby/2.0.0/etc.so
   25 /opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/config.rb
   26 /opt/codedeploy-agent/vendor/gems/logging-1.8.1/lib/logging/utils.rb
   27 /usr/lib/ruby/2.0.0/psych/syntax_error.rb
   28 /usr/lib/x86_64-linux-gnu/ruby/2.0.0/psych.so
   29 /usr/lib/x86_64-linux-gnu/ruby/2.0.0/stringio.so
   30 /usr/lib/ruby/2.0.0/psych/nodes/node.rb
   31 /usr/lib/ruby/2.0.0/psych/nodes/stream.rb
   32 /usr/lib/ruby/2.0.0/psych/nodes/document.rb
   33 /usr/lib/ruby/2.0.0/psych/nodes/sequence.rb
   34 /usr/lib/ruby/2.0.0/psych/nodes/scalar.rb
   35 /usr/lib/ruby/2.0.0/psych/nodes/mapping.rb
   36 /usr/lib/ruby/2.0.0/psych/nodes/alias.rb
   37 /usr/lib/ruby/2.0.0/psych/nodes.rb
   38 /usr/lib/ruby/2.0.0/psych/streaming.rb
   39 /usr/lib/ruby/2.0.0/psych/visitors/visitor.rb
   40 /usr/lib/x86_64-linux-gnu/ruby/2.0.0/strscan.so
   41 /usr/lib/ruby/2.0.0/psych/scalar_scanner.rb
   42 /usr/lib/ruby/2.0.0/psych/visitors/to_ruby.rb
   43 /usr/lib/ruby/2.0.0/psych/visitors/emitter.rb
   44 /usr/lib/ruby/2.0.0/psych/visitors/yaml_tree.rb
   45 /usr/lib/ruby/2.0.0/psych/json/ruby_events.rb
   46 /usr/lib/ruby/2.0.0/psych/visitors/json_tree.rb
   47 /usr/lib/ruby/2.0.0/psych/visitors/depth_first.rb
   48 /usr/lib/ruby/2.0.0/psych/visitors.rb
   49 /usr/lib/ruby/2.0.0/psych/handler.rb
   50 /usr/lib/ruby/2.0.0/psych/tree_builder.rb
   51 /usr/lib/ruby/2.0.0/psych/parser.rb
   52 /usr/lib/ruby/2.0.0/psych/omap.rb
   53 /usr/lib/ruby/2.0.0/psych/set.rb
   54 /usr/lib/ruby/2.0.0/psych/coder.rb
   55 /usr/lib/ruby/2.0.0/psych/core_ext.rb
   56 /usr/lib/x86_64-linux-gnu/ruby/2.0.0/date_core.so
   57 /usr/lib/ruby/2.0.0/date/format.rb
   58 /usr/lib/ruby/2.0.0/date.rb
   59 /usr/lib/ruby/2.0.0/psych/deprecated.rb
   60 /usr/lib/ruby/2.0.0/psych/stream.rb
   61 /usr/lib/ruby/2.0.0/psych/json/yaml_events.rb
   62 /usr/lib/ruby/2.0.0/psych/json/tree_builder.rb
   63 /usr/lib/ruby/2.0.0/psych/json/stream.rb
   64 /usr/lib/ruby/2.0.0/psych/handlers/document_stream.rb
   65 /usr/lib/ruby/2.0.0/psych.rb
   66 /usr/lib/ruby/2.0.0/yaml.rb
   67 /usr/lib/ruby/2.0.0/fileutils.rb
   68 /opt/codedeploy-agent/vendor/gems/little-plugger-1.1.3/lib/little-plugger.rb
   69 /usr/local/rvm/gems/ruby-2.2.2/gems/multi_json-1.11.2/lib/multi_json/options.rb
   70 /usr/local/rvm/gems/ruby-2.2.2/gems/multi_json-1.11.2/lib/multi_json/version.rb
   71 /usr/local/rvm/gems/ruby-2.2.2/gems/multi_json-1.11.2/lib/multi_json/adapter_error.rb
   72 /usr/local/rvm/gems/ruby-2.2.2/gems/multi_json-1.11.2/lib/multi_json/parse_error.rb
   73 /usr/local/rvm/gems/ruby-2.2.2/gems/multi_json-1.11.2/lib/multi_json.rb
   74 /usr/lib/x86_64-linux-gnu/ruby/2.0.0/syslog.so
   75 /opt/codedeploy-agent/vendor/gems/logging-1.8.1/lib/logging/appender.rb
   76 /opt/codedeploy-agent/vendor/gems/logging-1.8.1/lib/logging/layout.rb
   77 /opt/codedeploy-agent/vendor/gems/logging-1.8.1/lib/logging/log_event.rb
   78 /opt/codedeploy-agent/vendor/gems/logging-1.8.1/lib/logging/logger.rb
   79 /usr/lib/ruby/2.0.0/singleton.rb
   80 /opt/codedeploy-agent/vendor/gems/logging-1.8.1/lib/logging/repository.rb
   81 /opt/codedeploy-agent/vendor/gems/logging-1.8.1/lib/logging/root_logger.rb
   82 /opt/codedeploy-agent/vendor/gems/logging-1.8.1/lib/logging/stats.rb
   83 /opt/codedeploy-agent/vendor/gems/logging-1.8.1/lib/logging/color_scheme.rb
   84 /opt/codedeploy-agent/vendor/gems/logging-1.8.1/lib/logging/appenders/buffering.rb
   85 /opt/codedeploy-agent/vendor/gems/logging-1.8.1/lib/logging/appenders/io.rb
   86 /opt/codedeploy-agent/vendor/gems/logging-1.8.1/lib/logging/appenders/console.rb
   87 /usr/lib/ruby/2.0.0/timeout.rb
   88 /usr/lib/ruby/2.0.0/net/protocol.rb
   89 /usr/lib/x86_64-linux-gnu/ruby/2.0.0/digest.so
   90 /usr/lib/ruby/2.0.0/digest.rb
   91 /usr/lib/x86_64-linux-gnu/ruby/2.0.0/digest/md5.so
   92 /usr/lib/x86_64-linux-gnu/ruby/2.0.0/openssl.so
   93 /usr/lib/ruby/2.0.0/openssl/bn.rb
   94 /usr/lib/ruby/2.0.0/openssl/cipher.rb
   95 /usr/lib/ruby/2.0.0/openssl/config.rb
   96 /usr/lib/ruby/2.0.0/openssl/digest.rb
   97 /usr/lib/ruby/2.0.0/openssl/x509.rb
   98 /usr/lib/ruby/2.0.0/openssl/buffering.rb
   99 /usr/lib/x86_64-linux-gnu/ruby/2.0.0/fcntl.so
  100 /usr/lib/ruby/2.0.0/openssl/ssl.rb
  101 /usr/lib/ruby/2.0.0/openssl.rb
  102 /usr/lib/ruby/2.0.0/net/smtp.rb
  103 /usr/lib/ruby/2.0.0/time.rb
  104 /opt/codedeploy-agent/vendor/gems/logging-1.8.1/lib/logging/appenders/email.rb
  105 /opt/codedeploy-agent/vendor/gems/logging-1.8.1/lib/logging/appenders/file.rb
  106 /opt/codedeploy-agent/vendor/gems/logging-1.8.1/lib/logging/appenders/growl.rb
  107 /opt/codedeploy-agent/vendor/gems/logging-1.8.1/lib/logging/appenders/rolling_file.rb
  108 /opt/codedeploy-agent/vendor/gems/logging-1.8.1/lib/logging/appenders/string_io.rb
  109 /opt/codedeploy-agent/vendor/gems/logging-1.8.1/lib/logging/appenders/syslog.rb
  110 /opt/codedeploy-agent/vendor/gems/logging-1.8.1/lib/logging/appenders.rb
  111 /opt/codedeploy-agent/vendor/gems/logging-1.8.1/lib/logging/layouts/basic.rb
  112 /opt/codedeploy-agent/vendor/gems/logging-1.8.1/lib/logging/layouts/parseable.rb
  113 /opt/codedeploy-agent/vendor/gems/logging-1.8.1/lib/logging/layouts/pattern.rb
  114 /opt/codedeploy-agent/vendor/gems/logging-1.8.1/lib/logging/layouts.rb
  115 /opt/codedeploy-agent/vendor/gems/logging-1.8.1/lib/logging/proxy.rb
  116 /opt/codedeploy-agent/vendor/gems/logging-1.8.1/lib/logging/diagnostic_context.rb
  117 /opt/codedeploy-agent/vendor/gems/logging-1.8.1/lib/logging/config/configurator.rb
  118 /opt/codedeploy-agent/vendor/gems/logging-1.8.1/lib/logging/config/yaml_configurator.rb
  119 /opt/codedeploy-agent/vendor/gems/logging-1.8.1/lib/logging/rails_compat.rb
  120 /opt/codedeploy-agent/vendor/gems/logging-1.8.1/lib/logging.rb
  121 /usr/lib/ruby/2.0.0/logger.rb
  122 /opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/log.rb
  123 /usr/lib/x86_64-linux-gnu/ruby/2.0.0/pathname.so
  124 /usr/lib/ruby/2.0.0/pathname.rb
  125 /opt/codedeploy-agent/vendor/gems/simple_pid-0.2.1/lib/core_ext/string.rb
  126 /opt/codedeploy-agent/vendor/gems/simple_pid-0.2.1/lib/core_ext.rb
  127 /opt/codedeploy-agent/vendor/gems/simple_pid-0.2.1/lib/simple_pid.rb
  128 /opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/blank.rb
  129 /opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/master.rb
  130 /opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager/child.rb
  131 /opt/codedeploy-agent/vendor/gems/process_manager-0.0.13/lib/process_manager.rb
  132 /opt/codedeploy-agent/lib/instance_agent/config.rb
  133 /opt/codedeploy-agent/lib/instance_agent/log.rb
  134 /opt/codedeploy-agent/lib/instance_agent/platform.rb
  135 /opt/codedeploy-agent/lib/instance_agent/platform/linux_util.rb
  136 /usr/lib/ruby/2.0.0/set.rb
  137 /opt/codedeploy-agent/lib/instance_agent/agent/plugin.rb
  138 /opt/codedeploy-agent/lib/instance_agent/agent/base.rb
  139 /usr/lib/ruby/2.0.0/uri/common.rb
  140 /usr/lib/ruby/2.0.0/uri/generic.rb
  141 /usr/lib/ruby/2.0.0/uri/ftp.rb
  142 /usr/lib/ruby/2.0.0/uri/http.rb
  143 /usr/lib/ruby/2.0.0/uri/https.rb
  144 /usr/lib/ruby/2.0.0/uri/ldap.rb
  145 /usr/lib/ruby/2.0.0/uri/ldaps.rb
  146 /usr/lib/ruby/2.0.0/uri/mailto.rb
  147 /usr/lib/ruby/2.0.0/uri.rb
  148 /usr/lib/x86_64-linux-gnu/ruby/2.0.0/zlib.so
  149 /usr/lib/ruby/2.0.0/net/http/exceptions.rb
  150 /usr/lib/ruby/2.0.0/net/http/header.rb
  151 /usr/lib/ruby/2.0.0/net/http/generic_request.rb
  152 /usr/lib/ruby/2.0.0/net/http/request.rb
  153 /usr/lib/ruby/2.0.0/net/http/requests.rb
  154 /usr/lib/ruby/2.0.0/net/http/response.rb
  155 /usr/lib/ruby/2.0.0/net/http/responses.rb
  156 /usr/lib/ruby/2.0.0/net/http/proxy_delta.rb
  157 /usr/lib/ruby/2.0.0/net/http/backward.rb
  158 /usr/lib/ruby/2.0.0/net/http.rb
  159 /usr/local/rvm/gems/ruby-2.2.2/gems/json-1.8.3/lib/json/version.rb
  160 /usr/lib/ruby/2.0.0/ostruct.rb
  161 /usr/local/rvm/gems/ruby-2.2.2/gems/json-1.8.3/lib/json/generic_object.rb
  162 /usr/local/rvm/gems/ruby-2.2.2/gems/json-1.8.3/lib/json/common.rb
  163 /usr/lib/x86_64-linux-gnu/ruby/2.0.0/enc/utf_16be.so
  164 /usr/lib/x86_64-linux-gnu/ruby/2.0.0/enc/utf_16le.so
  165 /usr/lib/x86_64-linux-gnu/ruby/2.0.0/enc/utf_32be.so
  166 /usr/lib/x86_64-linux-gnu/ruby/2.0.0/enc/utf_32le.so
  167 /usr/local/rvm/gems/ruby-2.2.2/gems/json-1.8.3/lib/json/ext/parser.so
  168 /usr/local/rvm/gems/ruby-2.2.2/gems/json-1.8.3/lib/json/ext/generator.so
  169 /usr/local/rvm/gems/ruby-2.2.2/gems/json-1.8.3/lib/json/ext.rb
  170 /usr/local/rvm/gems/ruby-2.2.2/gems/json-1.8.3/lib/json.rb
  171 /opt/codedeploy-agent/lib/instance_metadata.rb
  172 /opt/codedeploy-agent/lib/instance_agent/runner/master.rb
  173 /opt/codedeploy-agent/lib/instance_agent/runner/child.rb
  174 /opt/codedeploy-agent/lib/instance_agent.rb
  175 /opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli/option_parser_factory.rb
  176 /opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli/gli_option_parser.rb
  177 /opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli/app_support.rb
  178 /usr/lib/ruby/2.0.0/optparse.rb
  179 /opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli/copy_options_to_aliases.rb
  180 /opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli/dsl.rb
  181 /opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli/app.rb
  182 /opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli/command_support.rb
  183 /opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli/command_line_token.rb
  184 /opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli/command.rb
  185 /opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli/command_line_option.rb
  186 /opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli/exceptions.rb
  187 /opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli/flag.rb
  188 /opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli/options.rb
  189 /opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli/switch.rb
  190 /opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli/version.rb
  191 /usr/lib/ruby/2.0.0/cgi/util.rb
  192 /usr/lib/ruby/2.0.0/erb.rb
  193 /opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli/terminal.rb
  194 /opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli/commands/help_modules/list_formatter.rb
  195 /opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli/commands/help_modules/text_wrapper.rb
  196 /opt/codedeploy-agent/vendor/gems/gli-2.5.6/lib/gli/commands/help_modules/one_line_wrapper.rb

* Process memory map:

00400000-00401000 r-xp 00000000 ca:01 31337                              /usr/bin/ruby2.0
00600000-00601000 r--p 00000000 ca:01 31337                              /usr/bin/ruby2.0
00601000-00602000 rw-p 00001000 ca:01 31337                              /usr/bin/ruby2.0
00a85000-01aa1000 rw-p 00000000 00:00 0                                  [heap]
7f81ab229000-7f81ab23f000 r-xp 00000000 ca:01 396054                     /lib/x86_64-linux-gnu/libgcc_s.so.1
7f81ab23f000-7f81ab43e000 ---p 00016000 ca:01 396054                     /lib/x86_64-linux-gnu/libgcc_s.so.1
7f81ab43e000-7f81ab43f000 rw-p 00015000 ca:01 396054                     /lib/x86_64-linux-gnu/libgcc_s.so.1
7f81ab43f000-7f81ab449000 r-xp 00000000 ca:01 171041                     /usr/local/rvm/gems/ruby-2.2.2/gems/json-1.8.3/lib/json/ext/generator.so
7f81ab449000-7f81ab648000 ---p 0000a000 ca:01 171041                     /usr/local/rvm/gems/ruby-2.2.2/gems/json-1.8.3/lib/json/ext/generator.so
7f81ab648000-7f81ab649000 r--p 00009000 ca:01 171041                     /usr/local/rvm/gems/ruby-2.2.2/gems/json-1.8.3/lib/json/ext/generator.so
7f81ab649000-7f81ab64a000 rw-p 0000a000 ca:01 171041                     /usr/local/rvm/gems/ruby-2.2.2/gems/json-1.8.3/lib/json/ext/generator.so
7f81ab64a000-7f81ab64b000 r-xp 00000000 ca:01 31412                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/enc/utf_32le.so
7f81ab64b000-7f81ab84a000 ---p 00001000 ca:01 31412                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/enc/utf_32le.so
7f81ab84a000-7f81ab84b000 r--p 00000000 ca:01 31412                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/enc/utf_32le.so
7f81ab84b000-7f81ab84c000 rw-p 00001000 ca:01 31412                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/enc/utf_32le.so
7f81ab84c000-7f81ab84d000 r-xp 00000000 ca:01 31382                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/enc/utf_32be.so
7f81ab84d000-7f81aba4c000 ---p 00001000 ca:01 31382                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/enc/utf_32be.so
7f81aba4c000-7f81aba4d000 r--p 00000000 ca:01 31382                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/enc/utf_32be.so
7f81aba4d000-7f81aba4e000 rw-p 00001000 ca:01 31382                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/enc/utf_32be.so
7f81aba4e000-7f81aba4f000 r-xp 00000000 ca:01 31410                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/enc/utf_16le.so
7f81aba4f000-7f81abc4f000 ---p 00001000 ca:01 31410                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/enc/utf_16le.so
7f81abc4f000-7f81abc50000 r--p 00001000 ca:01 31410                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/enc/utf_16le.so
7f81abc50000-7f81abc51000 rw-p 00002000 ca:01 31410                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/enc/utf_16le.so
7f81abc51000-7f81abc52000 r-xp 00000000 ca:01 31433                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/enc/utf_16be.so
7f81abc52000-7f81abe52000 ---p 00001000 ca:01 31433                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/enc/utf_16be.so
7f81abe52000-7f81abe53000 r--p 00001000 ca:01 31433                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/enc/utf_16be.so
7f81abe53000-7f81abe54000 rw-p 00002000 ca:01 31433                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/enc/utf_16be.so
7f81abe54000-7f81abec0000 r-xp 00000000 ca:01 26084                      /usr/lib/x86_64-linux-gnu/libgmp.so.10.1.3
7f81abec0000-7f81ac0bf000 ---p 0006c000 ca:01 26084                      /usr/lib/x86_64-linux-gnu/libgmp.so.10.1.3
7f81ac0bf000-7f81ac0c0000 r--p 0006b000 ca:01 26084                      /usr/lib/x86_64-linux-gnu/libgmp.so.10.1.3
7f81ac0c0000-7f81ac0c8000 rw-p 0006c000 ca:01 26084                      /usr/lib/x86_64-linux-gnu/libgmp.so.10.1.3
7f81ac0c8000-7f81ac38c000 r-xp 00000000 ca:01 420955                     /usr/local/rvm/rubies/ruby-2.2.2/lib/libruby.so.2.2.0
7f81ac38c000-7f81ac58c000 ---p 002c4000 ca:01 420955                     /usr/local/rvm/rubies/ruby-2.2.2/lib/libruby.so.2.2.0
7f81ac58c000-7f81ac591000 r--p 002c4000 ca:01 420955                     /usr/local/rvm/rubies/ruby-2.2.2/lib/libruby.so.2.2.0
7f81ac591000-7f81ac594000 rw-p 002c9000 ca:01 420955                     /usr/local/rvm/rubies/ruby-2.2.2/lib/libruby.so.2.2.0
7f81ac594000-7f81ac5a6000 rw-p 00000000 00:00 0
7f81ac5a6000-7f81ac5ac000 r-xp 00000000 ca:01 171050                     /usr/local/rvm/gems/ruby-2.2.2/gems/json-1.8.3/lib/json/ext/parser.so
7f81ac5ac000-7f81ac7ab000 ---p 00006000 ca:01 171050                     /usr/local/rvm/gems/ruby-2.2.2/gems/json-1.8.3/lib/json/ext/parser.so
7f81ac7ab000-7f81ac7ac000 r--p 00005000 ca:01 171050                     /usr/local/rvm/gems/ruby-2.2.2/gems/json-1.8.3/lib/json/ext/parser.so
7f81ac7ac000-7f81ac7ad000 rw-p 00006000 ca:01 171050                     /usr/local/rvm/gems/ruby-2.2.2/gems/json-1.8.3/lib/json/ext/parser.so
7f81ac7ad000-7f81ac7c5000 r-xp 00000000 ca:01 396113                     /lib/x86_64-linux-gnu/libz.so.1.2.8
7f81ac7c5000-7f81ac9c4000 ---p 00018000 ca:01 396113                     /lib/x86_64-linux-gnu/libz.so.1.2.8
7f81ac9c4000-7f81ac9c5000 r--p 00017000 ca:01 396113                     /lib/x86_64-linux-gnu/libz.so.1.2.8
7f81ac9c5000-7f81ac9c6000 rw-p 00018000 ca:01 396113                     /lib/x86_64-linux-gnu/libz.so.1.2.8
7f81ac9c6000-7f81ac9d3000 r-xp 00000000 ca:01 31443                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/zlib.so
7f81ac9d3000-7f81acbd2000 ---p 0000d000 ca:01 31443                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/zlib.so
7f81acbd2000-7f81acbd3000 r--p 0000c000 ca:01 31443                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/zlib.so
7f81acbd3000-7f81acbd4000 rw-p 0000d000 ca:01 31443                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/zlib.so
7f81acbd4000-7f81acbda000 r-xp 00000000 ca:01 31360                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/pathname.so
7f81acbda000-7f81acdd9000 ---p 00006000 ca:01 31360                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/pathname.so
7f81acdd9000-7f81acdda000 r--p 00005000 ca:01 31360                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/pathname.so
7f81acdda000-7f81acddb000 rw-p 00006000 ca:01 31360                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/pathname.so
7f81acddb000-7f81acddc000 r-xp 00000000 ca:01 31451                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/fcntl.so
7f81acddc000-7f81acfdb000 ---p 00001000 ca:01 31451                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/fcntl.so
7f81acfdb000-7f81acfdc000 r--p 00000000 ca:01 31451                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/fcntl.so
7f81acfdc000-7f81acfdd000 rw-p 00001000 ca:01 31451                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/fcntl.so
7f81acfdd000-7f81ad032000 r-xp 00000000 ca:01 404249                     /lib/x86_64-linux-gnu/libssl.so.1.0.0
7f81ad032000-7f81ad232000 ---p 00055000 ca:01 404249                     /lib/x86_64-linux-gnu/libssl.so.1.0.0
7f81ad232000-7f81ad235000 r--p 00055000 ca:01 404249                     /lib/x86_64-linux-gnu/libssl.so.1.0.0
7f81ad235000-7f81ad23c000 rw-p 00058000 ca:01 404249                     /lib/x86_64-linux-gnu/libssl.so.1.0.0
7f81ad23c000-7f81ad288000 r-xp 00000000 ca:01 31345                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/openssl.so
7f81ad288000-7f81ad488000 ---p 0004c000 ca:01 31345                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/openssl.so
7f81ad488000-7f81ad489000 r--p 0004c000 ca:01 31345                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/openssl.so
7f81ad489000-7f81ad48b000 rw-p 0004d000 ca:01 31345                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/openssl.so
7f81ad48b000-7f81ad48c000 rw-p 00000000 00:00 0
7f81ad48c000-7f81ad48f000 r-xp 00000000 ca:01 31344                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/digest.so
7f81ad48f000-7f81ad68e000 ---p 00003000 ca:01 31344                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/digest.so
7f81ad68e000-7f81ad68f000 r--p 00002000 ca:01 31344                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/digest.so
7f81ad68f000-7f81ad690000 rw-p 00003000 ca:01 31344                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/digest.so
7f81ad690000-7f81ad842000 r-xp 00000000 ca:01 404248                     /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
7f81ad842000-7f81ada41000 ---p 001b2000 ca:01 404248                     /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
7f81ada41000-7f81ada5c000 r--p 001b1000 ca:01 404248                     /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
7f81ada5c000-7f81ada67000 rw-p 001cc000 ca:01 404248                     /lib/x86_64-linux-gnu/libcrypto.so.1.0.0
7f81ada67000-7f81ada6b000 rw-p 00000000 00:00 0
7f81ada6b000-7f81ada6c000 r-xp 00000000 ca:01 31441                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/digest/md5.so
7f81ada6c000-7f81adc6b000 ---p 00001000 ca:01 31441                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/digest/md5.so
7f81adc6b000-7f81adc6c000 r--p 00000000 ca:01 31441                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/digest/md5.so
7f81adc6c000-7f81adc6d000 rw-p 00001000 ca:01 31441                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/digest/md5.so
7f81adc6d000-7f81adc70000 r-xp 00000000 ca:01 31351                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/syslog.so
7f81adc70000-7f81ade6f000 ---p 00003000 ca:01 31351                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/syslog.so
7f81ade6f000-7f81ade70000 r--p 00002000 ca:01 31351                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/syslog.so
7f81ade70000-7f81ade71000 rw-p 00003000 ca:01 31351                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/syslog.so
7f81ade71000-7f81ade9f000 r-xp 00000000 ca:01 31452                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/date_core.so
7f81ade9f000-7f81ae09f000 ---p 0002e000 ca:01 31452                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/date_core.so
7f81ae09f000-7f81ae0a0000 r--p 0002e000 ca:01 31452                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/date_core.so
7f81ae0a0000-7f81ae0a1000 rw-p 0002f000 ca:01 31452                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/date_core.so
7f81ae0a1000-7f81ae0a2000 rw-p 00000000 00:00 0
7f81ae0a2000-7f81ae0a7000 r-xp 00000000 ca:01 31355                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/strscan.so
7f81ae0a7000-7f81ae2a6000 ---p 00005000 ca:01 31355                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/strscan.so
7f81ae2a6000-7f81ae2a7000 r--p 00004000 ca:01 31355                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/strscan.so
7f81ae2a7000-7f81ae2a8000 rw-p 00005000 ca:01 31355                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/strscan.so
7f81ae2a8000-7f81ae2af000 r-xp 00000000 ca:01 31347                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/stringio.so
7f81ae2af000-7f81ae4ae000 ---p 00007000 ca:01 31347                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/stringio.so
7f81ae4ae000-7f81ae4af000 r--p 00006000 ca:01 31347                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/stringio.so
7f81ae4af000-7f81ae4b0000 rw-p 00007000 ca:01 31347                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/stringio.so
7f81ae4b0000-7f81ae4cf000 r-xp 00000000 ca:01 8138                       /usr/lib/x86_64-linux-gnu/libyaml-0.so.2.0.2
7f81ae4cf000-7f81ae6ce000 ---p 0001f000 ca:01 8138                       /usr/lib/x86_64-linux-gnu/libyaml-0.so.2.0.2
7f81ae6ce000-7f81ae6cf000 r--p 0001e000 ca:01 8138                       /usr/lib/x86_64-linux-gnu/libyaml-0.so.2.0.2
7f81ae6cf000-7f81ae6d0000 rw-p 0001f000 ca:01 8138                       /usr/lib/x86_64-linux-gnu/libyaml-0.so.2.0.2
7f81ae6d0000-7f81ae6d6000 r-xp 00000000 ca:01 31348                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/psych.so
7f81ae6d6000-7f81ae8d5000 ---p 00006000 ca:01 31348                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/psych.so
7f81ae8d5000-7f81ae8d6000 r--p 00005000 ca:01 31348                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/psych.so
7f81ae8d6000-7f81ae8d7000 rw-p 00006000 ca:01 31348                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/psych.so
7f81ae8d7000-7f81ae8da000 r-xp 00000000 ca:01 31444                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/etc.so
7f81ae8da000-7f81aead9000 ---p 00003000 ca:01 31444                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/etc.so
7f81aead9000-7f81aeada000 r--p 00002000 ca:01 31444                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/etc.so
7f81aeada000-7f81aeadb000 rw-p 00003000 ca:01 31444                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/etc.so
7f81aeadb000-7f81aeafd000 r-xp 00000000 ca:01 31375                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/socket.so

▽
7f81aeafd000-7f81aecfc000 ---p 00022000 ca:01 31375                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/socket.so

▽
7f81aecfc000-7f81aecfd000 r--p 00021000 ca:01 31375                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/socket.so
7f81aecfd000-7f81aecfe000 rw-p 00022000 ca:01 31375                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/socket.so
7f81aecfe000-7f81aed00000 r-xp 00000000 ca:01 31401                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/enc/trans/transdb.so
7f81aed00000-7f81aef00000 ---p 00002000 ca:01 31401                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/enc/trans/transdb.so
7f81aef00000-7f81aef01000 r--p 00002000 ca:01 31401                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/enc/trans/transdb.so
7f81aef01000-7f81aef02000 rw-p 00003000 ca:01 31401                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/enc/trans/transdb.so
7f81aef02000-7f81aef04000 r-xp 00000000 ca:01 31426                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/enc/encdb.so
7f81aef04000-7f81af103000 ---p 00002000 ca:01 31426                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/enc/encdb.so
7f81af103000-7f81af104000 r--p 00001000 ca:01 31426                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/enc/encdb.so
7f81af104000-7f81af105000 rw-p 00002000 ca:01 31426                      /usr/lib/x86_64-linux-gnu/ruby/2.0.0/enc/encdb.so
7f81af105000-7f81af206000 rw-p 00000000 00:00 0
7f81af206000-7f81af30b000 r-xp 00000000 ca:01 396063                     /lib/x86_64-linux-gnu/libm-2.19.so
7f81af30b000-7f81af50a000 ---p 00105000 ca:01 396063                     /lib/x86_64-linux-gnu/libm-2.19.so
7f81af50a000-7f81af50b000 r--p 00104000 ca:01 396063                     /lib/x86_64-linux-gnu/libm-2.19.so
7f81af50b000-7f81af50c000 rw-p 00105000 ca:01 396063                     /lib/x86_64-linux-gnu/libm-2.19.so
7f81af50c000-7f81af515000 r-xp 00000000 ca:01 396045                     /lib/x86_64-linux-gnu/libcrypt-2.19.so
7f81af515000-7f81af715000 ---p 00009000 ca:01 396045                     /lib/x86_64-linux-gnu/libcrypt-2.19.so
7f81af715000-7f81af716000 r--p 00009000 ca:01 396045                     /lib/x86_64-linux-gnu/libcrypt-2.19.so
7f81af716000-7f81af717000 rw-p 0000a000 ca:01 396045                     /lib/x86_64-linux-gnu/libcrypt-2.19.so
7f81af717000-7f81af745000 rw-p 00000000 00:00 0
7f81af745000-7f81af748000 r-xp 00000000 ca:01 396049                     /lib/x86_64-linux-gnu/libdl-2.19.so
7f81af748000-7f81af947000 ---p 00003000 ca:01 396049                     /lib/x86_64-linux-gnu/libdl-2.19.so
7f81af947000-7f81af948000 r--p 00002000 ca:01 396049                     /lib/x86_64-linux-gnu/libdl-2.19.so
7f81af948000-7f81af949000 rw-p 00003000 ca:01 396049                     /lib/x86_64-linux-gnu/libdl-2.19.so
7f81af949000-7f81af950000 r-xp 00000000 ca:01 396096                     /lib/x86_64-linux-gnu/librt-2.19.so
7f81af950000-7f81afb4f000 ---p 00007000 ca:01 396096                     /lib/x86_64-linux-gnu/librt-2.19.so
7f81afb4f000-7f81afb50000 r--p 00006000 ca:01 396096                     /lib/x86_64-linux-gnu/librt-2.19.so
7f81afb50000-7f81afb51000 rw-p 00007000 ca:01 396096                     /lib/x86_64-linux-gnu/librt-2.19.so
7f81afb51000-7f81afb6a000 r-xp 00000000 ca:01 396093                     /lib/x86_64-linux-gnu/libpthread-2.19.so
7f81afb6a000-7f81afd69000 ---p 00019000 ca:01 396093                     /lib/x86_64-linux-gnu/libpthread-2.19.so
7f81afd69000-7f81afd6a000 r--p 00018000 ca:01 396093                     /lib/x86_64-linux-gnu/libpthread-2.19.so
7f81afd6a000-7f81afd6b000 rw-p 00019000 ca:01 396093                     /lib/x86_64-linux-gnu/libpthread-2.19.so
7f81afd6b000-7f81afd6f000 rw-p 00000000 00:00 0
7f81afd6f000-7f81aff2a000 r-xp 00000000 ca:01 396040                     /lib/x86_64-linux-gnu/libc-2.19.so
7f81aff2a000-7f81b0129000 ---p 001bb000 ca:01 396040                     /lib/x86_64-linux-gnu/libc-2.19.so
7f81b0129000-7f81b012d000 r--p 001ba000 ca:01 396040                     /lib/x86_64-linux-gnu/libc-2.19.so
7f81b012d000-7f81b012f000 rw-p 001be000 ca:01 396040                     /lib/x86_64-linux-gnu/libc-2.19.so
7f81b012f000-7f81b0134000 rw-p 00000000 00:00 0
7f81b0134000-7f81b0366000 r-xp 00000000 ca:01 31342                      /usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0.0
7f81b0366000-7f81b0566000 ---p 00232000 ca:01 31342                      /usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0.0
7f81b0566000-7f81b056b000 r--p 00232000 ca:01 31342                      /usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0.0
7f81b056b000-7f81b056e000 rw-p 00237000 ca:01 31342                      /usr/lib/x86_64-linux-gnu/libruby-2.0.so.2.0.0
7f81b056e000-7f81b058e000 rw-p 00000000 00:00 0
7f81b058e000-7f81b05b1000 r-xp 00000000 ca:01 396030                     /lib/x86_64-linux-gnu/ld-2.19.so
7f81b0617000-7f81b07a0000 r--p 00000000 ca:01 1578                       /usr/lib/locale/locale-archive
7f81b07a0000-7f81b07a5000 rw-p 00000000 00:00 0
7f81b07a9000-7f81b07aa000 rw-p 00000000 00:00 0
7f81b07aa000-7f81b07ab000 ---p 00000000 00:00 0
7f81b07ab000-7f81b07b0000 rw-p 00000000 00:00 0                          [stack:26720]
7f81b07b0000-7f81b07b1000 r--p 00022000 ca:01 396030                     /lib/x86_64-linux-gnu/ld-2.19.so
7f81b07b1000-7f81b07b2000 rw-p 00023000 ca:01 396030                     /lib/x86_64-linux-gnu/ld-2.19.so
7f81b07b2000-7f81b07b3000 rw-p 00000000 00:00 0
7ffc1775e000-7ffc1777f000 rw-p 00000000 00:00 0
7ffc177c5000-7ffc177c7000 r-xp 00000000 00:00 0                          [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]


[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

/etc/init.d/codedeploy-agent: line 50: 26719 Aborted                 (core dumped) $BIN status

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.