destroy-controller fails when an application has no machines
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Canonical Juju |
Fix Released
|
High
|
Anastasia | ||
2.1 |
Won't Fix
|
Undecided
|
Unassigned |
Bug Description
As seen at
http://
The assess_cloud.py test consistently fails to destroy a near empty model to destroy the controllers. The test generates clouds.yaml, bootstraps, deploys ubuntu, and lastly calls remove-unit. The test thinks is is successful and begins to teardown, but destroy-controller fails. We can see that the the controller reports it is removing the application (since the machine was already removed). we see the application removed, but we never see the model destroyed.
This is only seen with the maas and openstack providers.
Other tests do not see this because they do not call remove-unit. Some tests call remove-application and maybe destroy-machine, but non call remove-unit to leave an application with 0 units.
summary: |
- destroy-comtroller fails when an application has no machines + destroy-cobtroller fails when an application has no machines |
Changed in juju: | |
milestone: | none → 2.2-rc1 |
summary: |
- destroy-cobtroller fails when an application has no machines + destroy-controller fails when an application has no machines |
Changed in juju: | |
milestone: | 2.2-beta1 → 2.2-beta2 |
Changed in juju: | |
milestone: | 2.2-beta2 → 2.2-beta3 |
Changed in juju: | |
status: | In Progress → Fix Committed |
Changed in juju: | |
status: | Fix Committed → Fix Released |
I don't think this is related to bug #1668792 as that is more about "the controller is dead but I'm unable to 'kill-controller' it". This bug is more about 'incomplete teardown of one piece prevents further teardown of another'.
I believe we do have some other related bugs, things like:
juju add-machine lxd:0
can cause destroy-controller to fail, as it is waiting for the machine to die, but it never actually triggers tear-down to start.
And there is another bug about destroy-controller failing if there is an application with no actual units (failed to provision a machine) where there is a unit in 'dying' but nothing is actually cleaning it up.