Repository: Azure/WALinuxAgent

Issue:
[2.1.5.rc6] recycles indefinitely when child process crashes
When I use 2.1.5rc6 code (9930df6600a061bcc5618b427ffa23cff5943f46) and pull in update for 2.1.5rc6 , it starts just fine and stops just fine. (so #297 is resolved)

However when I kill the child process with SIGSEGV signal (pid 9215 below)

```
# pstree -ap|grep py
  |-python3,9211 -u /usr/sbin/waagent -daemon
  |   `-python3,9215 -u bin/WALinuxAgent-2.1.5.rc6-py2.7.egg -run-exthandlers
  |       |-{python3},9234
  |       `-{python3},9237
```

the parent process remains alive, blacklists the rc6, tries to bring the original (on disk) agent back but it exits with code 0 immediately. Then it keeps restarting this original agent every second because it exits immediately.

<details>
<summary>waagent.log just after `kill -SEGV 9215`</summary>
```
2016/07/13 17:06:59.276675 INFO Agent WALinuxAgent-2.1.5.rc6 forwarding signal 15 to WALinuxAgent-2.1.5.6
2016/07/13 17:07:20.107186 INFO Azure Linux Agent Version:2.1.5.rc6
2016/07/13 17:07:20.119216 INFO OS: ubuntu 16.04
2016/07/13 17:07:20.143949 INFO Python: 3.5.1
2016/07/13 17:07:20.150224 INFO Run daemon
2016/07/13 17:07:20.155990 INFO No RDMA handler exists for distro='Ubuntu' version='16.04'
2016/07/13 17:07:20.170232 INFO Clean protocol
2016/07/13 17:07:20.176382 INFO run Ubuntu provision handler
2016/07/13 17:07:20.183917 INFO RDMA capabilities are not enabled, skipping
2016/07/13 17:07:20.196958 INFO Instantiating Agent WALinuxAgent-2.1.5.6 from disk
2016/07/13 17:07:20.207621 INFO Agent WALinuxAgent-2.1.5.6 error state: Last Failure: 0.0, Total Failures: 0, Fatal: False
2016/07/13 17:07:20.231936 INFO Ensuring Agent WALinuxAgent-2.1.5.6 is downloaded
2016/07/13 17:07:20.254939 INFO Agent WALinuxAgent-2.1.5.6 was previously downloaded - skipping download
2016/07/13 17:07:20.267972 INFO Agent WALinuxAgent-2.1.5.6 loaded manifest from /var/lib/waagent/WALinuxAgent-2.1.5.6/HandlerManifest.json
2016/07/13 17:07:20.292037 INFO Determined Agent WALinuxAgent-2.1.5.6 to be the latest agent
2016/07/13 17:07:20.312122 INFO Agent WALinuxAgent-2.1.5.6 launched with command 'python3 -u bin/WALinuxAgent-2.1.5.rc6-py2.7.egg -run-exthandlers'
2016/07/13 17:07:20.825810 INFO Agent WALinuxAgent-2.1.5.6 is running as the goal state agent
2016/07/13 17:07:20.850573 INFO Detect protocol endpoints
2016/07/13 17:07:20.860236 INFO Clean protocol
2016/07/13 17:07:20.861832 INFO WireServer endpoint is not found. Rerun dhcp handler
2016/07/13 17:07:20.863408 INFO test for route to 168.63.129.16
2016/07/13 17:07:20.865187 INFO route to 168.63.129.16 exists
2016/07/13 17:07:20.871366 INFO Wire server endpoint:168.63.129.16
2016/07/13 17:07:20.887742 INFO Fabric preferred wire protocol version:2015-04-05
2016/07/13 17:07:20.890022 INFO Wire protocol version:2012-11-30
2016/07/13 17:07:20.897740 WARNING Server prefered version:2015-04-05
2016/07/13 17:07:25.435991 INFO Event: name=WALA, op=HeartBeat, message=
2016/07/13 17:07:25.438363 INFO Start env monitor service.
2016/07/13 17:07:25.490944 INFO Configure routes
2016/07/13 17:07:25.498195 INFO Gateway:None
2016/07/13 17:07:25.512737 INFO Routes:None
2016/07/13 17:07:25.544071 INFO Checking for agent family Test updates
2016/07/13 17:07:25.554014 INFO Wire server endpoint:168.63.129.16
2016/07/13 17:07:25.627459 WARNING Running Agent 2.1.5.6 was not found in the agent manifest - adding to list
2016/07/13 17:07:25.653260 INFO Wire server endpoint:168.63.129.16
2016/07/13 17:07:25.692572 INFO Handle extensions updates for incarnation 7
2016/07/13 17:07:25.704451 INFO [Microsoft.OSTCExtensions.CustomScriptForLinux-1.5.2.0] Expected handler state: uninstall
2016/07/13 17:07:25.711403 INFO [Microsoft.OSTCExtensions.CustomScriptForLinux-1.5.2.0] Current handler state is: NotInstalled


2016/07/13 17:08:07.532646 INFO Event: name=WALinuxAgent, op=Enable, message=Agent WALinuxAgent-2.1.5.6 launched with command 'python3 -u bin/WALinuxAgent-2.1.5.rc6-py2.7.egg -run-exthandlers' returned code: -11
2016/07/13 17:08:07.536272 INFO Agent WALinuxAgent-2.1.5.6 launched with command 'python3 -u bin/WALinuxAgent-2.1.5.rc6-py2.7.egg -run-exthandlers' returned code: -11
2016/07/13 17:08:07.537055 INFO Determined Agent WALinuxAgent-2.1.5.6 to be the latest agent
2016/07/13 17:08:07.708001 INFO Agent WALinuxAgent-2.1.5.6 launched with command 'python3 -u bin/WALinuxAgent-2.1.5.rc6-py2.7.egg -run-exthandlers'
2016/07/13 17:08:08.279361 INFO Agent WALinuxAgent-2.1.5.6 is running as the goal state agent
2016/07/13 17:08:08.309054 INFO Wire server endpoint:168.63.129.16
2016/07/13 17:08:08.325240 INFO Event: name=WALA, op=HeartBeat, message=
2016/07/13 17:08:08.328355 INFO Start env monitor service.
2016/07/13 17:08:08.343749 INFO Configure routes
2016/07/13 17:08:08.348599 INFO Gateway:None
2016/07/13 17:08:08.350375 INFO Routes:None
2016/07/13 17:08:08.372374 INFO Checking for agent family Test updates
2016/07/13 17:08:08.376769 INFO Wire server endpoint:168.63.129.16
2016/07/13 17:08:08.434136 WARNING Running Agent 2.1.5.6 was not found in the agent manifest - adding to list
2016/07/13 17:08:08.439013 INFO Wire server endpoint:168.63.129.16
2016/07/13 17:08:08.454443 INFO Handle extensions updates for incarnation 7
2016/07/13 17:08:08.464798 INFO [Microsoft.OSTCExtensions.CustomScriptForLinux-1.5.2.0] Expected handler state: uninstall
2016/07/13 17:08:08.470012 INFO [Microsoft.OSTCExtensions.CustomScriptForLinux-1.5.2.0] Current handler state is: NotInstalled
2016/07/13 17:08:20.249774 INFO Event: name=WALinuxAgent, op=Enable, message=Agent WALinuxAgent-2.1.5.6 launched with command 'python3 -u bin/WALinuxAgent-2.1.5.rc6-py2.7.egg -run-exthandlers' returned code: -11
2016/07/13 17:08:20.260353 INFO Agent WALinuxAgent-2.1.5.6 launched with command 'python3 -u bin/WALinuxAgent-2.1.5.rc6-py2.7.egg -run-exthandlers' returned code: -11
2016/07/13 17:08:20.261798 INFO Determined Agent WALinuxAgent-2.1.5.6 to be the latest agent
2016/07/13 17:08:20.263587 WARNING Agent WALinuxAgent-2.1.5.6 launched with command 'python3 -u bin/WALinuxAgent-2.1.5.rc6-py2.7.egg -run-exthandlers' failed with exception: Agent WALinuxAgent-2.1.5.6 restarted more than 3 times in 300 seconds
2016/07/13 17:08:20.264827 ERROR Event: name=WALinuxAgent, op=Enable, message=Agent WALinuxAgent-2.1.5.6 launched with command 'python3 -u bin/WALinuxAgent-2.1.5.rc6-py2.7.egg -run-exthandlers' failed with exception: Agent WALinuxAgent-2.1.5.6 restarted more than 3 times in 300 seconds
2016/07/13 17:08:20.273802 WARNING Agent WALinuxAgent-2.1.5.6 is permanently blacklisted
2016/07/13 17:08:20.274808 INFO Installed Agent WALinuxAgent-2.1.5.rc6 is the most current agent
2016/07/13 17:08:20.380124 INFO Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers'
2016/07/13 17:08:20.663884 INFO Agent WALinuxAgent-2.1.5.rc6 is running as the goal state agent
2016/07/13 17:08:20.680595 INFO Wire server endpoint:168.63.129.16
2016/07/13 17:08:20.695598 INFO Start env monitor service.
2016/07/13 17:08:20.695137 INFO Event: name=WALA, op=HeartBeat, message=
2016/07/13 17:08:20.702653 INFO Configure routes
2016/07/13 17:08:20.716589 INFO Gateway:None
2016/07/13 17:08:20.723530 INFO Routes:None
2016/07/13 17:08:20.733594 INFO Checking for agent family Test updates
2016/07/13 17:08:20.746173 INFO Wire server endpoint:168.63.129.16
2016/07/13 17:08:20.787213 INFO Instantiating Agent WALinuxAgent-2.1.5.4 from package
2016/07/13 17:08:20.798081 INFO Agent WALinuxAgent-2.1.5.4 error state: Last Failure: 0.0, Total Failures: 0, Fatal: False
2016/07/13 17:08:20.812881 INFO Ensuring Agent WALinuxAgent-2.1.5.4 is downloaded
2016/07/13 17:08:20.853544 INFO Agent WALinuxAgent-2.1.5.4 downloaded from https://rdfepirv2sg1prdstr03.blob.core.windows.net/7d89d439b79f4452950452399add2c90/Microsoft.OSTCLinuxAgent__Test__2.1.5.4
2016/07/13 17:08:20.879837 INFO Agent WALinuxAgent-2.1.5.4 unpacked successfully to /var/lib/waagent/WALinuxAgent-2.1.5.4
2016/07/13 17:08:20.894670 INFO Agent WALinuxAgent-2.1.5.4 loaded manifest from /var/lib/waagent/WALinuxAgent-2.1.5.4/HandlerManifest.json
2016/07/13 17:08:20.910666 INFO Agent WALinuxAgent-2.1.5.4 error state: Last Failure: 0.0, Total Failures: 0, Fatal: False
2016/07/13 17:08:20.924276 INFO Agent WALinuxAgent-2.1.5.4 downloaded successfully
2016/07/13 17:08:20.934040 INFO Event: name=WALinuxAgent, op=Install, message=Agent WALinuxAgent-2.1.5.4 downloaded successfully
2016/07/13 17:08:20.949440 INFO Instantiating Agent WALinuxAgent-2.1.5.5 from package
2016/07/13 17:08:20.959615 INFO Agent WALinuxAgent-2.1.5.5 error state: Last Failure: 0.0, Total Failures: 0, Fatal: False
2016/07/13 17:08:20.974076 INFO Ensuring Agent WALinuxAgent-2.1.5.5 is downloaded
2016/07/13 17:08:21.063149 INFO Agent WALinuxAgent-2.1.5.5 downloaded from https://rdfepirv2sg1prdstr03.blob.core.windows.net/7d89d439b79f4452950452399add2c90/Microsoft.OSTCLinuxAgent__Test__2.1.5.5
2016/07/13 17:08:21.090715 INFO Agent WALinuxAgent-2.1.5.5 unpacked successfully to /var/lib/waagent/WALinuxAgent-2.1.5.5
2016/07/13 17:08:21.105711 INFO Agent WALinuxAgent-2.1.5.5 loaded manifest from /var/lib/waagent/WALinuxAgent-2.1.5.5/HandlerManifest.json
2016/07/13 17:08:21.121287 INFO Agent WALinuxAgent-2.1.5.5 error state: Last Failure: 0.0, Total Failures: 0, Fatal: False
2016/07/13 17:08:21.134870 INFO Agent WALinuxAgent-2.1.5.5 downloaded successfully
2016/07/13 17:08:21.144520 INFO Event: name=WALinuxAgent, op=Install, message=Agent WALinuxAgent-2.1.5.5 downloaded successfully
2016/07/13 17:08:21.159014 INFO Instantiating Agent WALinuxAgent-2.1.5.6 from package
2016/07/13 17:08:21.169173 INFO Agent WALinuxAgent-2.1.5.6 error state: Last Failure: 1468429700.2734947, Total Failures: 1, Fatal: True
2016/07/13 17:08:21.184254 INFO Ensuring Agent WALinuxAgent-2.1.5.6 is downloaded
2016/07/13 17:08:21.194376 INFO Agent WALinuxAgent-2.1.5.6 is blacklisted - skipping download
2016/07/13 17:08:21.206521 INFO Agent WALinuxAgent-2.1.5.rc6 discovered WALinuxAgent-2.1.5.5 as an update and will exit
2016/07/13 17:08:21.254857 INFO Event: name=WALinuxAgent, op=Enable, message=Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers' returned code: 0
2016/07/13 17:08:21.259406 INFO Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers' returned code: 0
2016/07/13 17:08:21.269854 INFO Installed Agent WALinuxAgent-2.1.5.rc6 is the most current agent
2016/07/13 17:08:21.312086 INFO Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers'
2016/07/13 17:08:21.571364 INFO Agent WALinuxAgent-2.1.5.rc6 is running as the goal state agent
2016/07/13 17:08:21.588498 INFO Wire server endpoint:168.63.129.16
2016/07/13 17:08:21.601277 INFO Event: name=WALA, op=HeartBeat, message=
2016/07/13 17:08:21.601958 INFO Start env monitor service.
2016/07/13 17:08:21.620125 INFO Configure routes
2016/07/13 17:08:21.627243 INFO Gateway:None
2016/07/13 17:08:21.638921 INFO Routes:None
2016/07/13 17:08:21.656949 INFO Checking for agent family Test updates
2016/07/13 17:08:21.661214 INFO Wire server endpoint:168.63.129.16
2016/07/13 17:08:21.699835 INFO Instantiating Agent WALinuxAgent-2.1.5.4 from package
2016/07/13 17:08:21.704155 INFO Agent WALinuxAgent-2.1.5.4 error state: Last Failure: 0.0, Total Failures: 0, Fatal: False
2016/07/13 17:08:21.706388 INFO Ensuring Agent WALinuxAgent-2.1.5.4 is downloaded
2016/07/13 17:08:21.715997 INFO Agent WALinuxAgent-2.1.5.4 was previously downloaded - skipping download
2016/07/13 17:08:21.718021 INFO Agent WALinuxAgent-2.1.5.4 loaded manifest from /var/lib/waagent/WALinuxAgent-2.1.5.4/HandlerManifest.json
2016/07/13 17:08:21.727165 INFO Instantiating Agent WALinuxAgent-2.1.5.5 from package
2016/07/13 17:08:21.736498 INFO Agent WALinuxAgent-2.1.5.5 error state: Last Failure: 0.0, Total Failures: 0, Fatal: False
2016/07/13 17:08:21.738249 INFO Ensuring Agent WALinuxAgent-2.1.5.5 is downloaded
2016/07/13 17:08:21.747362 INFO Agent WALinuxAgent-2.1.5.5 was previously downloaded - skipping download
2016/07/13 17:08:21.756687 INFO Agent WALinuxAgent-2.1.5.5 loaded manifest from /var/lib/waagent/WALinuxAgent-2.1.5.5/HandlerManifest.json
2016/07/13 17:08:21.765777 INFO Instantiating Agent WALinuxAgent-2.1.5.6 from package
2016/07/13 17:08:21.772285 INFO Agent WALinuxAgent-2.1.5.6 error state: Last Failure: 1468429700.2734947, Total Failures: 1, Fatal: True
2016/07/13 17:08:21.774713 INFO Ensuring Agent WALinuxAgent-2.1.5.6 is downloaded
2016/07/13 17:08:21.782079 INFO Agent WALinuxAgent-2.1.5.6 is blacklisted - skipping download
2016/07/13 17:08:21.784885 INFO Agent WALinuxAgent-2.1.5.rc6 discovered WALinuxAgent-2.1.5.5 as an update and will exit
2016/07/13 17:08:21.882052 INFO Event: name=WALinuxAgent, op=Enable, message=Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers' returned code: 0
2016/07/13 17:08:21.886683 INFO Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers' returned code: 0
2016/07/13 17:08:21.887854 INFO Installed Agent WALinuxAgent-2.1.5.rc6 is the most current agent
2016/07/13 17:08:21.932144 INFO Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers'
2016/07/13 17:08:22.277177 INFO Agent WALinuxAgent-2.1.5.rc6 is running as the goal state agent
2016/07/13 17:08:22.295077 INFO Wire server endpoint:168.63.129.16
2016/07/13 17:08:22.316850 INFO Event: name=WALA, op=HeartBeat, message=
2016/07/13 17:08:22.317995 INFO Start env monitor service.
2016/07/13 17:08:22.341761 INFO Configure routes
2016/07/13 17:08:22.350760 INFO Gateway:None
2016/07/13 17:08:22.357306 INFO Routes:None
2016/07/13 17:08:22.375500 INFO Checking for agent family Test updates
2016/07/13 17:08:22.380437 INFO Wire server endpoint:168.63.129.16
2016/07/13 17:08:22.447193 INFO Instantiating Agent WALinuxAgent-2.1.5.4 from package
2016/07/13 17:08:22.460857 INFO Agent WALinuxAgent-2.1.5.4 error state: Last Failure: 0.0, Total Failures: 0, Fatal: False
2016/07/13 17:08:22.464918 INFO Ensuring Agent WALinuxAgent-2.1.5.4 is downloaded
2016/07/13 17:08:22.473861 INFO Agent WALinuxAgent-2.1.5.4 was previously downloaded - skipping download
2016/07/13 17:08:22.475868 INFO Agent WALinuxAgent-2.1.5.4 loaded manifest from /var/lib/waagent/WALinuxAgent-2.1.5.4/HandlerManifest.json
2016/07/13 17:08:22.477640 INFO Instantiating Agent WALinuxAgent-2.1.5.5 from package
2016/07/13 17:08:22.491694 INFO Agent WALinuxAgent-2.1.5.5 error state: Last Failure: 0.0, Total Failures: 0, Fatal: False
2016/07/13 17:08:22.502931 INFO Ensuring Agent WALinuxAgent-2.1.5.5 is downloaded
2016/07/13 17:08:22.513748 INFO Agent WALinuxAgent-2.1.5.5 was previously downloaded - skipping download
2016/07/13 17:08:22.518634 INFO Agent WALinuxAgent-2.1.5.5 loaded manifest from /var/lib/waagent/WALinuxAgent-2.1.5.5/HandlerManifest.json
2016/07/13 17:08:22.535001 INFO Instantiating Agent WALinuxAgent-2.1.5.6 from package
2016/07/13 17:08:22.538571 INFO Agent WALinuxAgent-2.1.5.6 error state: Last Failure: 1468429700.2734947, Total Failures: 1, Fatal: True
2016/07/13 17:08:22.543338 INFO Ensuring Agent WALinuxAgent-2.1.5.6 is downloaded
2016/07/13 17:08:22.545155 INFO Agent WALinuxAgent-2.1.5.6 is blacklisted - skipping download
2016/07/13 17:08:22.556719 INFO Agent WALinuxAgent-2.1.5.rc6 discovered WALinuxAgent-2.1.5.5 as an update and will exit
2016/07/13 17:08:22.671230 INFO Event: name=WALinuxAgent, op=Enable, message=Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers' returned code: 0
2016/07/13 17:08:22.676133 INFO Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers' returned code: 0
2016/07/13 17:08:22.677285 INFO Installed Agent WALinuxAgent-2.1.5.rc6 is the most current agent
2016/07/13 17:08:22.720118 INFO Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers'
2016/07/13 17:08:23.062667 INFO Agent WALinuxAgent-2.1.5.rc6 is running as the goal state agent
2016/07/13 17:08:23.089944 INFO Wire server endpoint:168.63.129.16
2016/07/13 17:08:23.102678 INFO Start env monitor service.
2016/07/13 17:08:23.102181 INFO Event: name=WALA, op=HeartBeat, message=
2016/07/13 17:08:23.120768 INFO Configure routes
2016/07/13 17:08:23.129639 INFO Gateway:None
2016/07/13 17:08:23.137087 INFO Routes:None
2016/07/13 17:08:23.153507 INFO Checking for agent family Test updates
2016/07/13 17:08:23.166021 INFO Wire server endpoint:168.63.129.16
2016/07/13 17:08:23.214892 INFO Instantiating Agent WALinuxAgent-2.1.5.4 from package
2016/07/13 17:08:23.226747 INFO Agent WALinuxAgent-2.1.5.4 error state: Last Failure: 0.0, Total Failures: 0, Fatal: False
2016/07/13 17:08:23.241805 INFO Ensuring Agent WALinuxAgent-2.1.5.4 is downloaded
2016/07/13 17:08:23.260478 INFO Agent WALinuxAgent-2.1.5.4 was previously downloaded - skipping download
2016/07/13 17:08:23.281062 INFO Agent WALinuxAgent-2.1.5.4 loaded manifest from /var/lib/waagent/WALinuxAgent-2.1.5.4/HandlerManifest.json
2016/07/13 17:08:23.297542 INFO Instantiating Agent WALinuxAgent-2.1.5.5 from package
2016/07/13 17:08:23.311880 INFO Agent WALinuxAgent-2.1.5.5 error state: Last Failure: 0.0, Total Failures: 0, Fatal: False
2016/07/13 17:08:23.325597 INFO Ensuring Agent WALinuxAgent-2.1.5.5 is downloaded
2016/07/13 17:08:23.336594 INFO Agent WALinuxAgent-2.1.5.5 was previously downloaded - skipping download
2016/07/13 17:08:23.350936 INFO Agent WALinuxAgent-2.1.5.5 loaded manifest from /var/lib/waagent/WALinuxAgent-2.1.5.5/HandlerManifest.json
2016/07/13 17:08:23.366611 INFO Instantiating Agent WALinuxAgent-2.1.5.6 from package
2016/07/13 17:08:23.376730 INFO Agent WALinuxAgent-2.1.5.6 error state: Last Failure: 1468429700.2734947, Total Failures: 1, Fatal: True
2016/07/13 17:08:23.392365 INFO Ensuring Agent WALinuxAgent-2.1.5.6 is downloaded
2016/07/13 17:08:23.401889 INFO Agent WALinuxAgent-2.1.5.6 is blacklisted - skipping download
2016/07/13 17:08:23.412972 INFO Agent WALinuxAgent-2.1.5.rc6 discovered WALinuxAgent-2.1.5.5 as an update and will exit
2016/07/13 17:08:23.468398 INFO Event: name=WALinuxAgent, op=Enable, message=Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers' returned code: 0
2016/07/13 17:08:23.512282 INFO Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers' returned code: 0
2016/07/13 17:08:23.535350 INFO Installed Agent WALinuxAgent-2.1.5.rc6 is the most current agent
2016/07/13 17:08:23.556142 INFO Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers'
2016/07/13 17:08:23.872827 INFO Agent WALinuxAgent-2.1.5.rc6 is running as the goal state agent
2016/07/13 17:08:23.898366 INFO Wire server endpoint:168.63.129.16
2016/07/13 17:08:23.910665 INFO Start env monitor service.
2016/07/13 17:08:23.910156 INFO Event: name=WALA, op=HeartBeat, message=
2016/07/13 17:08:23.917967 INFO Configure routes
2016/07/13 17:08:23.934350 INFO Gateway:None
2016/07/13 17:08:23.940358 INFO Routes:None
2016/07/13 17:08:23.955267 INFO Checking for agent family Test updates
2016/07/13 17:08:23.965374 INFO Wire server endpoint:168.63.129.16
2016/07/13 17:08:24.014087 INFO Instantiating Agent WALinuxAgent-2.1.5.4 from package
2016/07/13 17:08:24.024226 INFO Agent WALinuxAgent-2.1.5.4 error state: Last Failure: 0.0, Total Failures: 0, Fatal: False
2016/07/13 17:08:24.038005 INFO Ensuring Agent WALinuxAgent-2.1.5.4 is downloaded
2016/07/13 17:08:24.048005 INFO Agent WALinuxAgent-2.1.5.4 was previously downloaded - skipping download
2016/07/13 17:08:24.060269 INFO Agent WALinuxAgent-2.1.5.4 loaded manifest from /var/lib/waagent/WALinuxAgent-2.1.5.4/HandlerManifest.json
2016/07/13 17:08:24.075785 INFO Instantiating Agent WALinuxAgent-2.1.5.5 from package
2016/07/13 17:08:24.085725 INFO Agent WALinuxAgent-2.1.5.5 error state: Last Failure: 0.0, Total Failures: 0, Fatal: False
2016/07/13 17:08:24.105973 INFO Ensuring Agent WALinuxAgent-2.1.5.5 is downloaded
2016/07/13 17:08:24.116596 INFO Agent WALinuxAgent-2.1.5.5 was previously downloaded - skipping download
2016/07/13 17:08:24.129973 INFO Agent WALinuxAgent-2.1.5.5 loaded manifest from /var/lib/waagent/WALinuxAgent-2.1.5.5/HandlerManifest.json
2016/07/13 17:08:24.153601 INFO Instantiating Agent WALinuxAgent-2.1.5.6 from package
2016/07/13 17:08:24.163916 INFO Agent WALinuxAgent-2.1.5.6 error state: Last Failure: 1468429700.2734947, Total Failures: 1, Fatal: True
2016/07/13 17:08:24.179486 INFO Ensuring Agent WALinuxAgent-2.1.5.6 is downloaded
2016/07/13 17:08:24.189392 INFO Agent WALinuxAgent-2.1.5.6 is blacklisted - skipping download
2016/07/13 17:08:24.200856 INFO Agent WALinuxAgent-2.1.5.rc6 discovered WALinuxAgent-2.1.5.5 as an update and will exit
2016/07/13 17:08:24.253308 INFO Event: name=WALinuxAgent, op=Enable, message=Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers' returned code: 0
2016/07/13 17:08:24.257751 INFO Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers' returned code: 0
2016/07/13 17:08:24.259005 INFO Installed Agent WALinuxAgent-2.1.5.rc6 is the most current agent
2016/07/13 17:08:24.300801 INFO Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers'
2016/07/13 17:08:24.594689 INFO Agent WALinuxAgent-2.1.5.rc6 is running as the goal state agent
2016/07/13 17:08:24.611077 INFO Wire server endpoint:168.63.129.16
2016/07/13 17:08:24.623003 INFO Start env monitor service.
2016/07/13 17:08:24.622590 INFO Event: name=WALA, op=HeartBeat, message=
2016/07/13 17:08:24.630357 INFO Configure routes
2016/07/13 17:08:24.644496 INFO Gateway:None
2016/07/13 17:08:24.650533 INFO Routes:None
2016/07/13 17:08:24.661371 INFO Checking for agent family Test updates
2016/07/13 17:08:24.670163 INFO Wire server endpoint:168.63.129.16
2016/07/13 17:08:24.713716 INFO Instantiating Agent WALinuxAgent-2.1.5.4 from package
2016/07/13 17:08:24.724061 INFO Agent WALinuxAgent-2.1.5.4 error state: Last Failure: 0.0, Total Failures: 0, Fatal: False
2016/07/13 17:08:24.738570 INFO Ensuring Agent WALinuxAgent-2.1.5.4 is downloaded
2016/07/13 17:08:24.748783 INFO Agent WALinuxAgent-2.1.5.4 was previously downloaded - skipping download
2016/07/13 17:08:24.762225 INFO Agent WALinuxAgent-2.1.5.4 loaded manifest from /var/lib/waagent/WALinuxAgent-2.1.5.4/HandlerManifest.json
2016/07/13 17:08:24.779150 INFO Instantiating Agent WALinuxAgent-2.1.5.5 from package
2016/07/13 17:08:24.789941 INFO Agent WALinuxAgent-2.1.5.5 error state: Last Failure: 0.0, Total Failures: 0, Fatal: False
2016/07/13 17:08:24.804309 INFO Ensuring Agent WALinuxAgent-2.1.5.5 is downloaded
2016/07/13 17:08:24.814366 INFO Agent WALinuxAgent-2.1.5.5 was previously downloaded - skipping download
2016/07/13 17:08:24.828414 INFO Agent WALinuxAgent-2.1.5.5 loaded manifest from /var/lib/waagent/WALinuxAgent-2.1.5.5/HandlerManifest.json
2016/07/13 17:08:24.845148 INFO Instantiating Agent WALinuxAgent-2.1.5.6 from package
2016/07/13 17:08:24.856241 INFO Agent WALinuxAgent-2.1.5.6 error state: Last Failure: 1468429700.2734947, Total Failures: 1, Fatal: True
2016/07/13 17:08:24.872751 INFO Ensuring Agent WALinuxAgent-2.1.5.6 is downloaded
2016/07/13 17:08:24.882343 INFO Agent WALinuxAgent-2.1.5.6 is blacklisted - skipping download
2016/07/13 17:08:24.893729 INFO Agent WALinuxAgent-2.1.5.rc6 discovered WALinuxAgent-2.1.5.5 as an update and will exit
2016/07/13 17:08:24.946472 INFO Event: name=WALinuxAgent, op=Enable, message=Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers' returned code: 0
2016/07/13 17:08:24.949020 INFO Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers' returned code: 0
2016/07/13 17:08:24.949469 INFO Installed Agent WALinuxAgent-2.1.5.rc6 is the most current agent
2016/07/13 17:08:25.000107 INFO Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers'
2016/07/13 17:08:25.325422 INFO Agent WALinuxAgent-2.1.5.rc6 is running as the goal state agent
2016/07/13 17:08:25.354466 INFO Wire server endpoint:168.63.129.16
2016/07/13 17:08:25.376228 INFO Event: name=WALA, op=HeartBeat, message=
2016/07/13 17:08:25.376987 INFO Start env monitor service.
2016/07/13 17:08:25.393857 INFO Configure routes
2016/07/13 17:08:25.401321 INFO Gateway:None
2016/07/13 17:08:25.406316 INFO Routes:None
2016/07/13 17:08:25.428909 INFO Checking for agent family Test updates
2016/07/13 17:08:25.437865 INFO Wire server endpoint:168.63.129.16
2016/07/13 17:08:25.490074 INFO Instantiating Agent WALinuxAgent-2.1.5.4 from package
2016/07/13 17:08:25.494039 INFO Agent WALinuxAgent-2.1.5.4 error state: Last Failure: 0.0, Total Failures: 0, Fatal: False
2016/07/13 17:08:25.495666 INFO Ensuring Agent WALinuxAgent-2.1.5.4 is downloaded
2016/07/13 17:08:25.505548 INFO Agent WALinuxAgent-2.1.5.4 was previously downloaded - skipping download
2016/07/13 17:08:25.507342 INFO Agent WALinuxAgent-2.1.5.4 loaded manifest from /var/lib/waagent/WALinuxAgent-2.1.5.4/HandlerManifest.json
2016/07/13 17:08:25.509272 INFO Instantiating Agent WALinuxAgent-2.1.5.5 from package
2016/07/13 17:08:25.518613 INFO Agent WALinuxAgent-2.1.5.5 error state: Last Failure: 0.0, Total Failures: 0, Fatal: False
2016/07/13 17:08:25.529950 INFO Ensuring Agent WALinuxAgent-2.1.5.5 is downloaded
2016/07/13 17:08:25.531617 INFO Agent WALinuxAgent-2.1.5.5 was previously downloaded - skipping download
2016/07/13 17:08:25.533388 INFO Agent WALinuxAgent-2.1.5.5 loaded manifest from /var/lib/waagent/WALinuxAgent-2.1.5.5/HandlerManifest.json
2016/07/13 17:08:25.543227 INFO Instantiating Agent WALinuxAgent-2.1.5.6 from package
2016/07/13 17:08:25.552956 INFO Agent WALinuxAgent-2.1.5.6 error state: Last Failure: 1468429700.2734947, Total Failures: 1, Fatal: True
2016/07/13 17:08:25.554213 INFO Ensuring Agent WALinuxAgent-2.1.5.6 is downloaded
2016/07/13 17:08:25.555822 INFO Agent WALinuxAgent-2.1.5.6 is blacklisted - skipping download
2016/07/13 17:08:25.564277 INFO Agent WALinuxAgent-2.1.5.rc6 discovered WALinuxAgent-2.1.5.5 as an update and will exit
2016/07/13 17:08:25.661233 INFO Event: name=WALinuxAgent, op=Enable, message=Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers' returned code: 0
2016/07/13 17:08:25.665709 INFO Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers' returned code: 0
2016/07/13 17:08:25.668489 INFO Installed Agent WALinuxAgent-2.1.5.rc6 is the most current agent
2016/07/13 17:08:25.708122 INFO Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers'
2016/07/13 17:08:26.010050 INFO Agent WALinuxAgent-2.1.5.rc6 is running as the goal state agent
2016/07/13 17:08:26.025969 INFO Wire server endpoint:168.63.129.16
2016/07/13 17:08:26.039163 INFO Event: name=WALA, op=HeartBeat, message=
2016/07/13 17:08:26.039857 INFO Start env monitor service.
2016/07/13 17:08:26.055563 INFO Configure routes
2016/07/13 17:08:26.062943 INFO Gateway:None
2016/07/13 17:08:26.067482 INFO Routes:None
2016/07/13 17:08:26.085504 INFO Checking for agent family Test updates
2016/07/13 17:08:26.089342 INFO Wire server endpoint:168.63.129.16
2016/07/13 17:08:26.127742 INFO Instantiating Agent WALinuxAgent-2.1.5.4 from package
2016/07/13 17:08:26.131606 INFO Agent WALinuxAgent-2.1.5.4 error state: Last Failure: 0.0, Total Failures: 0, Fatal: False
2016/07/13 17:08:26.133318 INFO Ensuring Agent WALinuxAgent-2.1.5.4 is downloaded
2016/07/13 17:08:26.135016 INFO Agent WALinuxAgent-2.1.5.4 was previously downloaded - skipping download
2016/07/13 17:08:26.136908 INFO Agent WALinuxAgent-2.1.5.4 loaded manifest from /var/lib/waagent/WALinuxAgent-2.1.5.4/HandlerManifest.json
2016/07/13 17:08:26.138496 INFO Instantiating Agent WALinuxAgent-2.1.5.5 from package
2016/07/13 17:08:26.145185 INFO Agent WALinuxAgent-2.1.5.5 error state: Last Failure: 0.0, Total Failures: 0, Fatal: False
2016/07/13 17:08:26.146747 INFO Ensuring Agent WALinuxAgent-2.1.5.5 is downloaded
2016/07/13 17:08:26.148457 INFO Agent WALinuxAgent-2.1.5.5 was previously downloaded - skipping download
2016/07/13 17:08:26.150265 INFO Agent WALinuxAgent-2.1.5.5 loaded manifest from /var/lib/waagent/WALinuxAgent-2.1.5.5/HandlerManifest.json
2016/07/13 17:08:26.156888 INFO Instantiating Agent WALinuxAgent-2.1.5.6 from package
2016/07/13 17:08:26.158582 INFO Agent WALinuxAgent-2.1.5.6 error state: Last Failure: 1468429700.2734947, Total Failures: 1, Fatal: True
2016/07/13 17:08:26.161523 INFO Ensuring Agent WALinuxAgent-2.1.5.6 is downloaded
2016/07/13 17:08:26.171334 INFO Agent WALinuxAgent-2.1.5.6 is blacklisted - skipping download
2016/07/13 17:08:26.174023 INFO Agent WALinuxAgent-2.1.5.rc6 discovered WALinuxAgent-2.1.5.5 as an update and will exit
2016/07/13 17:08:26.297190 INFO Event: name=WALinuxAgent, op=Enable, message=Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers' returned code: 0
2016/07/13 17:08:26.301479 INFO Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers' returned code: 0
2016/07/13 17:08:26.302630 INFO Installed Agent WALinuxAgent-2.1.5.rc6 is the most current agent
2016/07/13 17:08:26.348110 INFO Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers'
2016/07/13 17:08:26.611096 INFO Agent WALinuxAgent-2.1.5.rc6 is running as the goal state agent
2016/07/13 17:08:26.645899 INFO Wire server endpoint:168.63.129.16
2016/07/13 17:08:26.659962 INFO Event: name=WALA, op=HeartBeat, message=
2016/07/13 17:08:26.660695 INFO Start env monitor service.
2016/07/13 17:08:26.681616 INFO Configure routes
2016/07/13 17:08:26.688067 INFO Gateway:None
2016/07/13 17:08:26.696180 INFO Routes:None
2016/07/13 17:08:26.720086 INFO Checking for agent family Test updates
2016/07/13 17:08:26.728702 INFO Wire server endpoint:168.63.129.16
2016/07/13 17:08:26.767986 INFO Instantiating Agent WALinuxAgent-2.1.5.4 from package
2016/07/13 17:08:26.771816 INFO Agent WALinuxAgent-2.1.5.4 error state: Last Failure: 0.0, Total Failures: 0, Fatal: False
2016/07/13 17:08:26.773444 INFO Ensuring Agent WALinuxAgent-2.1.5.4 is downloaded
2016/07/13 17:08:26.778469 INFO Agent WALinuxAgent-2.1.5.4 was previously downloaded - skipping download
2016/07/13 17:08:26.780407 INFO Agent WALinuxAgent-2.1.5.4 loaded manifest from /var/lib/waagent/WALinuxAgent-2.1.5.4/HandlerManifest.json
2016/07/13 17:08:26.785876 INFO Instantiating Agent WALinuxAgent-2.1.5.5 from package
2016/07/13 17:08:26.788006 INFO Agent WALinuxAgent-2.1.5.5 error state: Last Failure: 0.0, Total Failures: 0, Fatal: False
2016/07/13 17:08:26.795651 INFO Ensuring Agent WALinuxAgent-2.1.5.5 is downloaded
2016/07/13 17:08:26.807868 INFO Agent WALinuxAgent-2.1.5.5 was previously downloaded - skipping download
2016/07/13 17:08:26.809602 INFO Agent WALinuxAgent-2.1.5.5 loaded manifest from /var/lib/waagent/WALinuxAgent-2.1.5.5/HandlerManifest.json
2016/07/13 17:08:26.811438 INFO Instantiating Agent WALinuxAgent-2.1.5.6 from package
2016/07/13 17:08:26.814694 INFO Agent WALinuxAgent-2.1.5.6 error state: Last Failure: 1468429700.2734947, Total Failures: 1, Fatal: True
2016/07/13 17:08:26.821667 INFO Ensuring Agent WALinuxAgent-2.1.5.6 is downloaded
2016/07/13 17:08:26.823266 INFO Agent WALinuxAgent-2.1.5.6 is blacklisted - skipping download
2016/07/13 17:08:26.826265 INFO Agent WALinuxAgent-2.1.5.rc6 discovered WALinuxAgent-2.1.5.5 as an update and will exit
2016/07/13 17:08:26.958434 INFO Event: name=WALinuxAgent, op=Enable, message=Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers' returned code: 0
2016/07/13 17:08:26.980759 INFO Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers' returned code: 0
2016/07/13 17:08:26.998089 INFO Installed Agent WALinuxAgent-2.1.5.rc6 is the most current agent
2016/07/13 17:08:27.026593 INFO Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers'
2016/07/13 17:08:27.371625 INFO Agent WALinuxAgent-2.1.5.rc6 is running as the goal state agent
2016/07/13 17:08:27.389267 INFO Wire server endpoint:168.63.129.16
2016/07/13 17:08:27.409599 INFO Start env monitor service.
2016/07/13 17:08:27.408979 INFO Event: name=WALA, op=HeartBeat, message=
2016/07/13 17:08:27.417052 INFO Configure routes
2016/07/13 17:08:27.431692 INFO Gateway:None
2016/07/13 17:08:27.440122 INFO Routes:None
2016/07/13 17:08:27.456165 INFO Checking for agent family Test updates
2016/07/13 17:08:27.464784 INFO Wire server endpoint:168.63.129.16
2016/07/13 17:08:27.507617 INFO Instantiating Agent WALinuxAgent-2.1.5.4 from package
2016/07/13 17:08:27.518134 INFO Agent WALinuxAgent-2.1.5.4 error state: Last Failure: 0.0, Total Failures: 0, Fatal: False
2016/07/13 17:08:27.533211 INFO Ensuring Agent WALinuxAgent-2.1.5.4 is downloaded
2016/07/13 17:08:27.544631 INFO Agent WALinuxAgent-2.1.5.4 was previously downloaded - skipping download
2016/07/13 17:08:27.556706 INFO Agent WALinuxAgent-2.1.5.4 loaded manifest from /var/lib/waagent/WALinuxAgent-2.1.5.4/HandlerManifest.json
2016/07/13 17:08:27.572246 INFO Instantiating Agent WALinuxAgent-2.1.5.5 from package
2016/07/13 17:08:27.582146 INFO Agent WALinuxAgent-2.1.5.5 error state: Last Failure: 0.0, Total Failures: 0, Fatal: False
2016/07/13 17:08:27.595782 INFO Ensuring Agent WALinuxAgent-2.1.5.5 is downloaded
2016/07/13 17:08:27.606187 INFO Agent WALinuxAgent-2.1.5.5 was previously downloaded - skipping download
2016/07/13 17:08:27.621114 INFO Agent WALinuxAgent-2.1.5.5 loaded manifest from /var/lib/waagent/WALinuxAgent-2.1.5.5/HandlerManifest.json
2016/07/13 17:08:27.637114 INFO Instantiating Agent WALinuxAgent-2.1.5.6 from package
2016/07/13 17:08:27.647934 INFO Agent WALinuxAgent-2.1.5.6 error state: Last Failure: 1468429700.2734947, Total Failures: 1, Fatal: True
2016/07/13 17:08:27.665323 INFO Ensuring Agent WALinuxAgent-2.1.5.6 is downloaded
2016/07/13 17:08:27.675803 INFO Agent WALinuxAgent-2.1.5.6 is blacklisted - skipping download
2016/07/13 17:08:27.686985 INFO Agent WALinuxAgent-2.1.5.rc6 discovered WALinuxAgent-2.1.5.5 as an update and will exit
2016/07/13 17:08:27.732140 INFO Event: name=WALinuxAgent, op=Enable, message=Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers' returned code: 0
2016/07/13 17:08:27.736414 INFO Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers' returned code: 0
2016/07/13 17:08:27.737599 INFO Installed Agent WALinuxAgent-2.1.5.rc6 is the most current agent
2016/07/13 17:08:27.777746 INFO Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers'
2016/07/13 17:08:28.063376 INFO Agent WALinuxAgent-2.1.5.rc6 is running as the goal state agent
2016/07/13 17:08:28.091640 INFO Wire server endpoint:168.63.129.16
2016/07/13 17:08:28.106084 INFO Event: name=WALA, op=HeartBeat, message=
2016/07/13 17:08:28.106876 INFO Start env monitor service.
2016/07/13 17:08:28.125474 INFO Configure routes
2016/07/13 17:08:28.133395 INFO Gateway:None
2016/07/13 17:08:28.136495 INFO Routes:None
2016/07/13 17:08:28.154338 INFO Checking for agent family Test updates
2016/07/13 17:08:28.164489 INFO Wire server endpoint:168.63.129.16
2016/07/13 17:08:28.206145 INFO Instantiating Agent WALinuxAgent-2.1.5.4 from package
2016/07/13 17:08:28.209980 INFO Agent WALinuxAgent-2.1.5.4 error state: Last Failure: 0.0, Total Failures: 0, Fatal: False
2016/07/13 17:08:28.211570 INFO Ensuring Agent WALinuxAgent-2.1.5.4 is downloaded
2016/07/13 17:08:28.213487 INFO Agent WALinuxAgent-2.1.5.4 was previously downloaded - skipping download
2016/07/13 17:08:28.227965 INFO Agent WALinuxAgent-2.1.5.4 loaded manifest from /var/lib/waagent/WALinuxAgent-2.1.5.4/HandlerManifest.json
2016/07/13 17:08:28.235582 INFO Instantiating Agent WALinuxAgent-2.1.5.5 from package
2016/07/13 17:08:28.236946 INFO Agent WALinuxAgent-2.1.5.5 error state: Last Failure: 0.0, Total Failures: 0, Fatal: False
2016/07/13 17:08:28.238379 INFO Ensuring Agent WALinuxAgent-2.1.5.5 is downloaded
2016/07/13 17:08:28.239922 INFO Agent WALinuxAgent-2.1.5.5 was previously downloaded - skipping download
2016/07/13 17:08:28.247765 INFO Agent WALinuxAgent-2.1.5.5 loaded manifest from /var/lib/waagent/WALinuxAgent-2.1.5.5/HandlerManifest.json
2016/07/13 17:08:28.249302 INFO Instantiating Agent WALinuxAgent-2.1.5.6 from package
2016/07/13 17:08:28.251059 INFO Agent WALinuxAgent-2.1.5.6 error state: Last Failure: 1468429700.2734947, Total Failures: 1, Fatal: True
2016/07/13 17:08:28.259128 INFO Ensuring Agent WALinuxAgent-2.1.5.6 is downloaded
2016/07/13 17:08:28.262239 INFO Agent WALinuxAgent-2.1.5.6 is blacklisted - skipping download
2016/07/13 17:08:28.270685 INFO Agent WALinuxAgent-2.1.5.rc6 discovered WALinuxAgent-2.1.5.5 as an update and will exit
2016/07/13 17:08:28.377386 INFO Event: name=WALinuxAgent, op=Enable, message=Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers' returned code: 0
2016/07/13 17:08:28.381594 INFO Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers' returned code: 0
2016/07/13 17:08:28.382586 INFO Installed Agent WALinuxAgent-2.1.5.rc6 is the most current agent
2016/07/13 17:08:28.420102 INFO Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers'
2016/07/13 17:08:28.737361 INFO Agent WALinuxAgent-2.1.5.rc6 is running as the goal state agent
2016/07/13 17:08:28.764614 INFO Wire server endpoint:168.63.129.16
2016/07/13 17:08:28.775831 INFO Start env monitor service.
2016/07/13 17:08:28.775419 INFO Event: name=WALA, op=HeartBeat, message=
2016/07/13 17:08:28.782866 INFO Configure routes
2016/07/13 17:08:28.796378 INFO Gateway:None
2016/07/13 17:08:28.801914 INFO Routes:None
2016/07/13 17:08:28.811874 INFO Checking for agent family Test updates
2016/07/13 17:08:28.820192 INFO Wire server endpoint:168.63.129.16
2016/07/13 17:08:28.867350 INFO Instantiating Agent WALinuxAgent-2.1.5.4 from package
2016/07/13 17:08:28.877139 INFO Agent WALinuxAgent-2.1.5.4 error state: Last Failure: 0.0, Total Failures: 0, Fatal: False
2016/07/13 17:08:28.890430 INFO Ensuring Agent WALinuxAgent-2.1.5.4 is downloaded
2016/07/13 17:08:28.899898 INFO Agent WALinuxAgent-2.1.5.4 was previously downloaded - skipping download
2016/07/13 17:08:28.911583 INFO Agent WALinuxAgent-2.1.5.4 loaded manifest from /var/lib/waagent/WALinuxAgent-2.1.5.4/HandlerManifest.json
2016/07/13 17:08:28.926866 INFO Instantiating Agent WALinuxAgent-2.1.5.5 from package
2016/07/13 17:08:28.937393 INFO Agent WALinuxAgent-2.1.5.5 error state: Last Failure: 0.0, Total Failures: 0, Fatal: False
2016/07/13 17:08:28.950660 INFO Ensuring Agent WALinuxAgent-2.1.5.5 is downloaded
2016/07/13 17:08:28.960036 INFO Agent WALinuxAgent-2.1.5.5 was previously downloaded - skipping download
2016/07/13 17:08:28.971698 INFO Agent WALinuxAgent-2.1.5.5 loaded manifest from /var/lib/waagent/WALinuxAgent-2.1.5.5/HandlerManifest.json
2016/07/13 17:08:28.987109 INFO Instantiating Agent WALinuxAgent-2.1.5.6 from package
2016/07/13 17:08:28.997675 INFO Agent WALinuxAgent-2.1.5.6 error state: Last Failure: 1468429700.2734947, Total Failures: 1, Fatal: True
2016/07/13 17:08:29.013517 INFO Ensuring Agent WALinuxAgent-2.1.5.6 is downloaded
2016/07/13 17:08:29.023435 INFO Agent WALinuxAgent-2.1.5.6 is blacklisted - skipping download
2016/07/13 17:08:29.035427 INFO Agent WALinuxAgent-2.1.5.rc6 discovered WALinuxAgent-2.1.5.5 as an update and will exit
2016/07/13 17:08:29.082719 INFO Event: name=WALinuxAgent, op=Enable, message=Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers' returned code: 0
2016/07/13 17:08:29.086942 INFO Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers' returned code: 0
2016/07/13 17:08:29.089727 INFO Installed Agent WALinuxAgent-2.1.5.rc6 is the most current agent
2016/07/13 17:08:29.132150 INFO Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers'
2016/07/13 17:08:29.429758 INFO Agent WALinuxAgent-2.1.5.rc6 is running as the goal state agent
2016/07/13 17:08:29.446503 INFO Wire server endpoint:168.63.129.16
2016/07/13 17:08:29.455656 INFO Event: name=WALA, op=HeartBeat, message=
2016/07/13 17:08:29.468931 INFO Start env monitor service.
2016/07/13 17:08:29.476813 INFO Configure routes
2016/07/13 17:08:29.483019 INFO Gateway:None
2016/07/13 17:08:29.488580 INFO Routes:None
2016/07/13 17:08:29.498159 INFO Checking for agent family Test updates
2016/07/13 17:08:29.506566 INFO Wire server endpoint:168.63.129.16
2016/07/13 17:08:29.553213 INFO Instantiating Agent WALinuxAgent-2.1.5.4 from package
2016/07/13 17:08:29.563338 INFO Agent WALinuxAgent-2.1.5.4 error state: Last Failure: 0.0, Total Failures: 0, Fatal: False
2016/07/13 17:08:29.576955 INFO Ensuring Agent WALinuxAgent-2.1.5.4 is downloaded
2016/07/13 17:08:29.586403 INFO Agent WALinuxAgent-2.1.5.4 was previously downloaded - skipping download
2016/07/13 17:08:29.598085 INFO Agent WALinuxAgent-2.1.5.4 loaded manifest from /var/lib/waagent/WALinuxAgent-2.1.5.4/HandlerManifest.json
2016/07/13 17:08:29.613466 INFO Instantiating Agent WALinuxAgent-2.1.5.5 from package
2016/07/13 17:08:29.623208 INFO Agent WALinuxAgent-2.1.5.5 error state: Last Failure: 0.0, Total Failures: 0, Fatal: False
2016/07/13 17:08:29.636602 INFO Ensuring Agent WALinuxAgent-2.1.5.5 is downloaded
2016/07/13 17:08:29.646913 INFO Agent WALinuxAgent-2.1.5.5 was previously downloaded - skipping download
2016/07/13 17:08:29.658556 INFO Agent WALinuxAgent-2.1.5.5 loaded manifest from /var/lib/waagent/WALinuxAgent-2.1.5.5/HandlerManifest.json
2016/07/13 17:08:29.673663 INFO Instantiating Agent WALinuxAgent-2.1.5.6 from package
2016/07/13 17:08:29.683525 INFO Agent WALinuxAgent-2.1.5.6 error state: Last Failure: 1468429700.2734947, Total Failures: 1, Fatal: True
2016/07/13 17:08:29.698301 INFO Ensuring Agent WALinuxAgent-2.1.5.6 is downloaded
2016/07/13 17:08:29.707543 INFO Agent WALinuxAgent-2.1.5.6 is blacklisted - skipping download
2016/07/13 17:08:29.718347 INFO Agent WALinuxAgent-2.1.5.rc6 discovered WALinuxAgent-2.1.5.5 as an update and will exit
2016/07/13 17:08:29.764137 INFO Event: name=WALinuxAgent, op=Enable, message=Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers' returned code: 0
2016/07/13 17:08:29.768504 INFO Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers' returned code: 0
2016/07/13 17:08:29.780034 INFO Installed Agent WALinuxAgent-2.1.5.rc6 is the most current agent
2016/07/13 17:08:29.816108 INFO Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers'
2016/07/13 17:08:30.099138 INFO Agent WALinuxAgent-2.1.5.rc6 is running as the goal state agent
2016/07/13 17:08:30.115475 INFO Wire server endpoint:168.63.129.16
2016/07/13 17:08:30.129022 INFO Event: name=WALA, op=HeartBeat, message=
2016/07/13 17:08:30.129776 INFO Start env monitor service.
2016/07/13 17:08:30.147169 INFO Configure routes
2016/07/13 17:08:30.154849 INFO Gateway:None
2016/07/13 17:08:30.165703 INFO Routes:None
2016/07/13 17:08:30.182106 INFO Checking for agent family Test updates
2016/07/13 17:08:30.191902 INFO Wire server endpoint:168.63.129.16
2016/07/13 17:08:30.238534 INFO Instantiating Agent WALinuxAgent-2.1.5.4 from package
2016/07/13 17:08:30.242457 INFO Agent WALinuxAgent-2.1.5.4 error state: Last Failure: 0.0, Total Failures: 0, Fatal: False
2016/07/13 17:08:30.243988 INFO Ensuring Agent WALinuxAgent-2.1.5.4 is downloaded
2016/07/13 17:08:30.245624 INFO Agent WALinuxAgent-2.1.5.4 was previously downloaded - skipping download
2016/07/13 17:08:30.247389 INFO Agent WALinuxAgent-2.1.5.4 loaded manifest from /var/lib/waagent/WALinuxAgent-2.1.5.4/HandlerManifest.json
2016/07/13 17:08:30.257769 INFO Instantiating Agent WALinuxAgent-2.1.5.5 from package
2016/07/13 17:08:30.259229 INFO Agent WALinuxAgent-2.1.5.5 error state: Last Failure: 0.0, Total Failures: 0, Fatal: False
2016/07/13 17:08:30.267368 INFO Ensuring Agent WALinuxAgent-2.1.5.5 is downloaded
2016/07/13 17:08:30.270568 INFO Agent WALinuxAgent-2.1.5.5 was previously downloaded - skipping download
2016/07/13 17:08:30.280087 INFO Agent WALinuxAgent-2.1.5.5 loaded manifest from /var/lib/waagent/WALinuxAgent-2.1.5.5/HandlerManifest.json
2016/07/13 17:08:30.281507 INFO Instantiating Agent WALinuxAgent-2.1.5.6 from package
2016/07/13 17:08:30.283152 INFO Agent WALinuxAgent-2.1.5.6 error state: Last Failure: 1468429700.2734947, Total Failures: 1, Fatal: True
2016/07/13 17:08:30.290922 INFO Ensuring Agent WALinuxAgent-2.1.5.6 is downloaded
2016/07/13 17:08:30.294040 INFO Agent WALinuxAgent-2.1.5.6 is blacklisted - skipping download
2016/07/13 17:08:30.296987 INFO Agent WALinuxAgent-2.1.5.rc6 discovered WALinuxAgent-2.1.5.5 as an update and will exit
2016/07/13 17:08:30.412728 INFO Event: name=WALinuxAgent, op=Enable, message=Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers' returned code: 0
2016/07/13 17:08:30.417260 INFO Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers' returned code: 0
2016/07/13 17:08:30.418371 INFO Installed Agent WALinuxAgent-2.1.5.rc6 is the most current agent
2016/07/13 17:08:30.460099 INFO Agent WALinuxAgent-2.1.5.rc6 launched with command 'python3 -u /usr/sbin/waagent -run-exthandlers'
2016/07/13 17:08:30.747794 INFO Agent WALinuxAgent-2.1.5.rc6 is running as the goal state agent
2016/07/13 17:08:30.769584 INFO Wire server endpoint:168.63.129.16
2016/07/13 17:08:30.781105 INFO Start env monitor service.
2016/07/13 17:08:30.780693 INFO Event: name=WALA, op=HeartBeat, message=
2016/07/13 17:08:30.788185 INFO Configure routes
2016/07/13 17:08:30.803017 INFO Gateway:None
2016/07/13 17:08:30.808497 INFO Routes:None
2016/07/13 17:08:30.820408 INFO Checking for agent family Test updates
2016/07/13 17:08:30.829696 INFO Wire server endpoint:168.63.129.16
2016/07/13 17:08:30.878817 INFO Instantiating Agent WALinuxAgent-2.1.5.4 from package
2016/07/13 17:08:30.889227 INFO Agent WALinuxAgent-2.1.5.4 error state: Last Failure: 0.0, Total Failures: 0, Fatal: False
2016/07/13 17:08:30.903395 INFO Ensuring Agent WALinuxAgent-2.1.5.4 is downloaded
...
keeps going
```
</details>

Discussion:
msftclas: Hi __@brendandixon__, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!
    <span>You've already signed the contribution license agreement. Thanks!</span>
        <p>The agreement was validated by Microsoft and real humans are currently evaluating your PR.</p>

TTYL, MSBOT;

brendandixon: @ahmetalpbalkan As we discussed, what you saw was caused by both of us actively issuing commands on the same VM.
hglkrijger: lgtm

Patch:
diff --git a/azurelinuxagent/common/version.py b/azurelinuxagent/common/version.py
index 222a7208..357d30ff 100644
--- a/azurelinuxagent/common/version.py
+++ b/azurelinuxagent/common/version.py
@@ -50,7 +50,7 @@ def get_distro():
 
 AGENT_NAME = "WALinuxAgent"
 AGENT_LONG_NAME = "Azure Linux Agent"
-AGENT_VERSION = '2.1.5.rc6'
+AGENT_VERSION = '2.1.5.rc7'
 AGENT_LONG_VERSION = "{0}-{1}".format(AGENT_NAME, AGENT_VERSION)
 AGENT_DESCRIPTION = """\
 The Azure Linux Agent supports the provisioning and running of Linux
diff --git a/azurelinuxagent/ga/update.py b/azurelinuxagent/ga/update.py
index 6dae7aff..e89608a0 100644
--- a/azurelinuxagent/ga/update.py
+++ b/azurelinuxagent/ga/update.py
@@ -53,8 +53,10 @@ from azurelinuxagent.ga.exthandlers import HandlerManifest
 AGENT_ERROR_FILE = "error.json" # File name for agent error record
 AGENT_MANIFEST_FILE = "HandlerManifest.json"
 
+CHILD_HEALTH_INTERVAL = 15 * 60
 CHILD_LAUNCH_INTERVAL = 5 * 60
 CHILD_LAUNCH_RESTART_MAX = 3
+CHILD_POLL_INTERVAL = 60
 
 MAX_FAILURE = 3 # Max failure allowed for agent before blacklisted
 
@@ -139,27 +141,50 @@ class UpdateHandler(object):
 
             logger.info(u"Agent {0} launched with command '{1}'", agent_name, agent_cmd)
 
-            ret = self.child_process.wait()
-            if ret is None:
-                ret = 1
+            ret = None
+            start_time = time.time()
+            while (time.time() - start_time) < CHILD_HEALTH_INTERVAL:
+                time.sleep(CHILD_POLL_INTERVAL)
+                ret = self.child_process.poll()
+                if ret is not None:
+                    break
 
-            msg = u"Agent {0} launched with command '{1}' returned code: {2}".format(
-                agent_name,
-                agent_cmd,
-                ret)
-            add_event(
-                AGENT_NAME,
-                version=agent_version,
-                op=WALAEventOperation.Enable,
-                is_success=(ret <= 0),
-                message=msg)
+            if ret is None or ret <= 0:
+                msg = u"Agent {0} launched with command '{1}' is successfully running".format(
+                    agent_name,
+                    agent_cmd)
+                logger.info(msg)
+                add_event(
+                    AGENT_NAME,
+                    version=agent_version,
+                    op=WALAEventOperation.Enable,
+                    is_success=True,
+                    message=msg)
 
-            if ret > 0:
+                if ret is None:
+                    ret = self.child_process.wait()
+
+            else:
+                msg = u"Agent {0} launched with command '{1}' failed with return code: {2}".format(
+                    agent_name,
+                    agent_cmd,
+                    ret)
+                logger.warn(msg)
+                add_event(
+                    AGENT_NAME,
+                    version=agent_version,
+                    op=WALAEventOperation.Enable,
+                    is_success=False,
+                    message=msg)
+
+            if ret is not None and ret > 0:
+                msg = u"Agent {0} launched with command '{1}' returned code: {2}".format(
+                    agent_name,
+                    agent_cmd,
+                    ret)
                 logger.warn(msg)
                 if latest_agent is not None:
                     latest_agent.mark_failure()
-            else:
-                logger.info(msg)
 
         except Exception as e:
             msg = u"Agent {0} launched with command '{1}' failed with exception: {2}".format(
@@ -311,9 +336,7 @@ class UpdateHandler(object):
         # Note:
         #  The code leaves on disk available, but blacklisted, agents so as to preserve the state.
         #  Otherwise, those agents could be again downloaded and inappropriately retried.
-        self._set_agents([GuestAgent(pkg=pkg) for pkg in
-                            [pkg for pkg in pkg_list.versions
-                                if FlexibleVersion(pkg.version) > base_version]])
+        self._set_agents([GuestAgent(pkg=pkg) for pkg in pkg_list.versions])
         self._purge_agents()
         self._filter_blacklisted_agents()
 
@@ -469,7 +492,7 @@ class GuestAgent(object):
             if is_fatal:
                 logger.warn(u"Agent {0} is permanently blacklisted", self.name)
         except Exception as e:
-            logger.warn(u"Agent {0} failed recording error state: {1}", ustr(e))
+            logger.warn(u"Agent {0} failed recording error state: {1}", self.name, ustr(e))
         return
 
     def _ensure_downloaded(self):


Test patch:
diff --git a/tests/ga/test_update.py b/tests/ga/test_update.py
index 49006606..74804fb9 100644
--- a/tests/ga/test_update.py
+++ b/tests/ga/test_update.py
@@ -627,7 +627,6 @@ class TestUpdate(UpdateTestCase):
         if versions is None or len(versions) <= 0:
             versions = [latest_version]
 
-        self.update_handler.protocol_util = Mock(return_value=ProtocolMock)
         etag = self.update_handler.last_etag if self.update_handler.last_etag is not None else 42
         if protocol is None:
             protocol = ProtocolMock(etag=etag, versions=versions)
@@ -641,7 +640,7 @@ class TestUpdate(UpdateTestCase):
         self.assertTrue(self._test_ensure_latest_agent())
         return
 
-    def test_ensure_latest_agent_ignores_old_agents(self):
+    def test_ensure_latest_agent_includes_old_agents(self):
         self.prepare_agents()
 
         old_count = FlexibleVersion(AGENT_VERSION).version[-1]
@@ -651,7 +650,7 @@ class TestUpdate(UpdateTestCase):
         all_count = len(self.agent_versions())
 
         self.assertTrue(self._test_ensure_latest_agent(versions=self.agent_versions()))
-        self.assertEqual(all_count - old_count, len(self.update_handler.agents))
+        self.assertEqual(all_count, len(self.update_handler.agents))
         return
 
     def test_ensure_lastest_agent_purges_old_agents(self):
@@ -829,7 +828,7 @@ class TestUpdate(UpdateTestCase):
         kept_agents = self.update_handler.agents[1::2]
         purged_agents = self.update_handler.agents[::2]
 
-        # Reload and assert only the kept agents remain on disk        
+        # Reload and assert only the kept agents remain on disk
         self.update_handler.agents = kept_agents
         self.update_handler._purge_agents()
         self.update_handler._load_agents()
@@ -850,14 +849,19 @@ class TestUpdate(UpdateTestCase):
             self.assertTrue(os.path.exists(agent_path + ".zip"))
         return
 
-    def _test_run_latest(self, return_value=0, side_effect=None, child_calls=1):
-        mock_child = Mock()
-        mock_child.wait = Mock(return_value=return_value, side_effect=side_effect)
+    def _test_run_latest(self, mock_child=None, mock_time=None):
+        if mock_child is None:
+            mock_child = ChildMock()
+        if mock_time is None:
+            mock_time = TimeMock()
+
         with patch('subprocess.Popen', return_value=mock_child) as mock_popen:
-            self.update_handler.run_latest()
-            self.assertEqual(child_calls, mock_popen.call_count)
+            with patch('time.time', side_effect=mock_time.time):
+                with patch('time.sleep', return_value=mock_time.sleep):
+                    self.update_handler.run_latest()
+                    self.assertEqual(1, mock_popen.call_count)
 
-            return mock_popen.call_args
+                    return mock_popen.call_args
 
     def test_run_latest(self):
         self.prepare_agents()
@@ -873,6 +877,31 @@ class TestUpdate(UpdateTestCase):
         self.assertEqual(agent.get_agent_dir(), kwargs['cwd'])
         return
 
+    def test_run_latest_polls_and_waits_for_success(self):
+        mock_child = ChildMock(return_value=None)
+        mock_time = TimeMock(time_increment=CHILD_HEALTH_INTERVAL/3)
+        self._test_run_latest(mock_child=mock_child, mock_time=mock_time)
+        self.assertEqual(2, mock_child.poll.call_count)
+        self.assertEqual(1, mock_child.wait.call_count)
+        return
+
+    def test_run_latest_polling_stops_at_success(self):
+        mock_child = ChildMock(return_value=0)
+        mock_time = TimeMock(time_increment=CHILD_HEALTH_INTERVAL/3)
+        self._test_run_latest(mock_child=mock_child, mock_time=mock_time)
+        self.assertEqual(1, mock_child.poll.call_count)
+        self.assertEqual(0, mock_child.wait.call_count)
+        return
+
+    def test_run_latest_polling_stops_at_failure(self):
+        mock_child = ChildMock(return_value=42)
+        mock_time = TimeMock()
+        self._test_run_latest(mock_child=mock_child, mock_time=mock_time)
+        self.assertEqual(1, mock_child.poll.call_count)
+        self.assertEqual(0, mock_child.wait.call_count)
+        self.assertEqual(2, mock_time.time_call_count)
+        return
+
     def test_run_latest_defaults_to_current(self):
         self.assertEqual(None, self.update_handler.get_latest_agent())
 
@@ -894,7 +923,7 @@ class TestUpdate(UpdateTestCase):
                     saved_stdout, sys.stdout = sys.stdout, stdout
                     saved_stderr, sys.stderr = sys.stderr, stderr
                     try:
-                        self._test_run_latest(side_effect=faux_logger)
+                        self._test_run_latest(mock_child=ChildMock(side_effect=faux_logger))
                     finally:
                         sys.stdout = saved_stdout
                         sys.stderr = saved_stderr
@@ -916,23 +945,7 @@ class TestUpdate(UpdateTestCase):
         self.assertEqual(0.0, latest_agent.error.last_failure)
         self.assertEqual(0, latest_agent.error.failure_count)
 
-        self._test_run_latest(return_value=1)
-
-        self.assertTrue(latest_agent.is_available)
-        self.assertNotEqual(0.0, latest_agent.error.last_failure)
-        self.assertEqual(1, latest_agent.error.failure_count)
-        return
-
-    def test_run_latest_missing_code_marks_failures(self):
-        # logger.add_logger_appender(logger.AppenderType.STDOUT)
-        self.prepare_agents()
-
-        latest_agent = self.update_handler.get_latest_agent()
-        self.assertTrue(latest_agent.is_available)
-        self.assertEqual(0.0, latest_agent.error.last_failure)
-        self.assertEqual(0, latest_agent.error.failure_count)
-
-        self._test_run_latest(return_value=None)
+        self._test_run_latest(mock_child=ChildMock(return_value=1))
 
         self.assertTrue(latest_agent.is_available)
         self.assertNotEqual(0.0, latest_agent.error.last_failure)
@@ -948,7 +961,7 @@ class TestUpdate(UpdateTestCase):
         self.assertEqual(0.0, latest_agent.error.last_failure)
         self.assertEqual(0, latest_agent.error.failure_count)
 
-        self._test_run_latest(side_effect=Exception("Force blacklisting"))
+        self._test_run_latest(mock_child=ChildMock(side_effect=Exception("Force blacklisting")))
 
         self.assertFalse(latest_agent.is_available)
         self.assertTrue(latest_agent.error.is_blacklisted)
@@ -1016,11 +1029,18 @@ class TestUpdate(UpdateTestCase):
         self._test_run(invocations=0, calls=[], enable_updates=True)
         return
 
-    def test_set_agents(self):
+    def test_set_agents_sets_agents(self):
         self.prepare_agents()
 
         self.update_handler._set_agents([GuestAgent(path=path) for path in self.agent_dirs()])
+        self.assertTrue(len(self.update_handler.agents) > 0)
         self.assertEqual(len(self.agent_dirs()), len(self.update_handler.agents))
+        return
+
+    def test_set_agents_sorts_agents(self):
+        self.prepare_agents()
+
+        self.update_handler._set_agents([GuestAgent(path=path) for path in self.agent_dirs()])
 
         v = FlexibleVersion("100000")
         for a in self.update_handler.agents:
@@ -1029,6 +1049,15 @@ class TestUpdate(UpdateTestCase):
         return
 
 
+class ChildMock(Mock):
+    def __init__(self, return_value=0, side_effect=None):
+        Mock.__init__(self, return_value=return_value, side_effect=side_effect)
+
+        self.poll = Mock(return_value=return_value, side_effect=side_effect)
+        self.wait = Mock(return_value=return_value, side_effect=side_effect)
+        return
+
+
 class ProtocolMock(object):
     def __init__(self, family="TestAgent", etag=42, versions=None):
         self.family = family
@@ -1085,5 +1114,22 @@ class ResponseMock(Mock):
         return self.response
 
 
+class TimeMock(Mock):
+    def __init__(self, time_increment=1):
+        Mock.__init__(self)
+        self.next_time = time.time()
+        self.time_call_count = 0
+        self.time_increment = time_increment
+
+        self.sleep = Mock(return_value=0)
+        return
+
+    def time(self):
+        self.time_call_count += 1
+        current_time = self.next_time
+        self.next_time += self.time_increment
+        return current_time
+
+
 if __name__ == '__main__':
     unittest.main()