Juju doesn't retry hard enough when destroying MAAS environments
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Go MAAS API Library |
Fix Released
|
Critical
|
Raphaël Badin | ||
MAAS |
Fix Released
|
Critical
|
Raphaël Badin | ||
juju-core |
Fix Released
|
Critical
|
Horacio Durán |
Bug Description
MAAS can return transient errors when destroying due to concurrent power operations being disallowed. Juju ends up with the error as below if you bootstrap and then ctrl-c a short time later.
Juju should retry a few times, it'll work eventually.
ubuntu@maas:~$ juju bootstrap Launching instance
WARNING picked arbitrary tools &{1.20.
- /MAAS/api/
Waiting for address
Attempting to connect to node7.maas:22
Attempting to connect to node7.maas:22
Attempting to connect to 10.0.0.200:22
^CInterrupt signalled: waiting for bootstrap to exit
ERROR bootstrap failed: interrupted
Stopping instance...
ERROR cannot stop failed bootstrap instance "/MAAS/
Bootstrap failed, destroying environment
ERROR Bootstrap failed, and the environment could not be destroyed: gomaasapi: got error back from server: 500 INTERNAL SERVER ERROR (Unable to change power state to 'off' for node node7.master: another action is already in progress for that node.)
ERROR interrupted
Related branches
- Gavin Panella (community): Approve
-
Diff: 56 lines (+19/-2)2 files modifiedsrc/maasserver/api/nodes.py (+8/-2)
src/maasserver/api/tests/test_node.py (+11/-0)
- Christian Reis (community): Approve
- Julian Edwards (community): Approve
- Graham Binns (community): Approve
-
Diff: 96 lines (+28/-12)3 files modifiedsrc/maasserver/api/nodes.py (+2/-8)
src/maasserver/middleware.py (+10/-2)
src/maasserver/tests/test_middleware.py (+16/-2)
- Gavin Panella (community): Approve
- Juju Engineering: Pending requested
-
Diff: 195 lines (+137/-3)3 files modifiedclient.go (+50/-3)
client_test.go (+50/-0)
testing.go (+37/-0)
- Gavin Panella (community): Approve
- Christian Reis (community): Approve
- Graham Binns (community): Approve
-
Diff: 49 lines (+20/-1)2 files modifiedsrc/maasserver/middleware.py (+7/-1)
src/maasserver/tests/test_middleware.py (+13/-0)
- Raphaël Badin (community): Approve
-
Diff: 101 lines (+45/-4)2 files modifiedsrc/maasserver/middleware.py (+16/-2)
src/maasserver/tests/test_middleware.py (+29/-2)
- Andres Rodriguez (community): Approve
-
Diff: 36 lines (+20/-2)1 file modifieddebian/changelog (+20/-2)
Changed in juju-core: | |
status: | New → Triaged |
importance: | Undecided → Medium |
tags: | added: maas-provider |
tags: | added: destroy-environment |
Changed in maas: | |
status: | Triaged → In Progress |
assignee: | nobody → Julian Edwards (julian-edwards) |
Changed in maas: | |
status: | In Progress → Fix Committed |
tags: | added: cloud-installer |
Changed in juju-core: | |
importance: | Medium → High |
milestone: | none → next-stable |
Changed in maas: | |
status: | Fix Committed → In Progress |
assignee: | Julian Edwards (julian-edwards) → Raphaël Badin (rvb) |
Changed in juju-core: | |
assignee: | nobody → Raphaël Badin (rvb) |
status: | Triaged → In Progress |
Changed in maas: | |
importance: | High → Critical |
milestone: | next → 1.7.0 |
Changed in juju-core: | |
milestone: | next-stable → 1.21-alpha3 |
importance: | High → Critical |
Changed in juju-core: | |
status: | In Progress → New |
Changed in juju-core: | |
status: | New → Triaged |
no longer affects: | juju-core/1.20 |
Changed in maas: | |
status: | In Progress → Fix Committed |
Changed in juju-core: | |
status: | Triaged → Opinion |
status: | Opinion → Triaged |
Changed in juju-core: | |
assignee: | nobody → Horacio Durán (hduran-8) |
status: | Triaged → In Progress |
Changed in juju-core: | |
status: | In Progress → Fix Committed |
Changed in juju-core: | |
status: | Fix Committed → In Progress |
assignee: | Horacio Durán (hduran-8) → Ian Booth (wallyworld) |
status: | In Progress → Fix Committed |
assignee: | Ian Booth (wallyworld) → Horacio Durán (hduran-8) |
Changed in juju-core: | |
status: | Fix Committed → Fix Released |
Changed in maas: | |
status: | Fix Committed → Fix Released |
Changed in gomaasapi: | |
status: | Fix Committed → Fix Released |
Adding a MAAS task because MAAS should not be returning a 500, but rather a retryable error code, e.g
503 Service Unavailable