FWIW I can reproduce the bug as outlined using the local provider.
Doing the following:
$ juju bootstrap -e local
$ juju add-machine -e local
# Wait for the machine to finish starting up
$ juju status
machines:
"0":
agent-state: started
agent-version: 1.16.4.1
dns-name: 10.0.3.1
instance-id: localhost
series: precise
"1":
agent-state: started
agent-version: 1.16.4.1
instance-id: jameinel-local-machine-1
instance-state: missing
series: precise
$ sudo lxc-ls --fancy # to get the IP address
$ ssh ubuntu@10.0.3.37 # depends on IP
lxc$ sudo ifdown eth0
# exit the SSH session which is now dead
$ juju status
machines:
"0":
agent-state: started
agent-version: 1.16.4.1
dns-name: 10.0.3.1
instance-id: localhost
series: precise
"1":
agent-state: started
agent-version: 1.16.4.1
instance-id: jameinel-local-machine-1
instance-state: missing
series: precise
# it stays at 'started' for an unknown length of time
# when I do:
$ sudo lxc-stop -n jameinel-local-machine-1
# Then the instance still shows up as started
# Interestingly only when I do:
$ sudo lxc-start --daemon -n jameinel-local-machine-1
# then within a second or two I see:
machines:
"0":
agent-state: started
agent-version: 1.16.4.1
dns-name: 10.0.3.1
instance-id: localhost
series: precise
"1":
agent-state: down
agent-state-info: (started)
agent-version: 1.16.4.1
instance-id: jameinel-local-machine-1
instance-state: missing
series: precise
# And then once the machine finishes starting back up I can see:
2013-12-11 13:35:33 INFO juju.worker.machiner machiner.go:52 "machine-2" started
# And after almost exactly 1 minute it shows up as back up and running.
Now, if I don't stop eth0 before stopping the LXC, I see the machine show up as stopped immediately (and it comes back up as started just as quickly).
Note that even after upgrading to trunk (r2131) if I do sudo ifstop eth0, the agent still shows as 'started' 2 minutes later.
FWIW I can reproduce the bug as outlined using the local provider.
Doing the following: local-machine- 1 local-machine- 1 local-machine- 1 local-machine- 1 state-info: (started) local-machine- 1
$ juju bootstrap -e local
$ juju add-machine -e local
# Wait for the machine to finish starting up
$ juju status
machines:
"0":
agent-state: started
agent-version: 1.16.4.1
dns-name: 10.0.3.1
instance-id: localhost
series: precise
"1":
agent-state: started
agent-version: 1.16.4.1
instance-id: jameinel-
instance-state: missing
series: precise
$ sudo lxc-ls --fancy # to get the IP address
$ ssh ubuntu@10.0.3.37 # depends on IP
lxc$ sudo ifdown eth0
# exit the SSH session which is now dead
$ juju status
machines:
"0":
agent-state: started
agent-version: 1.16.4.1
dns-name: 10.0.3.1
instance-id: localhost
series: precise
"1":
agent-state: started
agent-version: 1.16.4.1
instance-id: jameinel-
instance-state: missing
series: precise
# it stays at 'started' for an unknown length of time
# when I do:
$ sudo lxc-stop -n jameinel-
# Then the instance still shows up as started
# Interestingly only when I do:
$ sudo lxc-start --daemon -n jameinel-
# then within a second or two I see:
machines:
"0":
agent-state: started
agent-version: 1.16.4.1
dns-name: 10.0.3.1
instance-id: localhost
series: precise
"1":
agent-state: down
agent-
agent-version: 1.16.4.1
instance-id: jameinel-
instance-state: missing
series: precise
# And then once the machine finishes starting back up I can see: machiner machiner.go:52 "machine-2" started
2013-12-11 13:35:33 INFO juju.worker.
# And after almost exactly 1 minute it shows up as back up and running.
Now, if I don't stop eth0 before stopping the LXC, I see the machine show up as stopped immediately (and it comes back up as started just as quickly).
Note that even after upgrading to trunk (r2131) if I do sudo ifstop eth0, the agent still shows as 'started' 2 minutes later.
So I'm not sure if we've actually fixed the bug.
machines: local-machine- 2
"0":
agent-state: started
agent-version: 1.17.0.1
dns-name: 10.0.3.1
instance-id: localhost
series: precise
"2":
agent-state: started
agent-version: 1.17.0.1
instance-id: jameinel-
instance-state: missing
series: precise
services: {}