Activity log for bug #1377099

Date Who What changed Old value New value Message
2014-10-03 10:55:56 Raphaël Badin bug added bug
2014-10-03 10:58:05 Raphaël Badin description I tested this in the UI but I think the same goes for the API: when performing a bulk operation, the operation only succeeds if all the sub operations succeed. This leads to: - poor user experience: if I perform 4 operations and one of them fails all the other operations will be rolled back - possibly leaving nodes in an inconsistent state: if only one in 4 operations fails, the power operations of the remaining 3 operations will still be performed although the DB side of things will be rolled back. (This is because the RPC operations —the power actions in this instance— are not part of the transaction and thus don't get rolled back). = How to reproduce = - Get two nodes 'READY' - Commission one node - Wait 20 seconds: enough so that the power operation is done (and the lock removed) but not enough to get the commissioning operation done - Commission the second node - Quickly after this (i.e. while the lock of the second node is still being held): abort the commissioning operation of the two nodes - The bulk operation will fail (because of the lock held on the second node) but the first node will also be powered down. I tested this in the UI but I think the same goes for the API: when performing a bulk operation, the operation only succeeds if all the sub operations succeed. This leads to: - poor user experience: if I perform 4 operations and one of them fails all the other operations will be rolled back - possibly leaving nodes in an inconsistent state: if only one in 4 operations fails, the power operations of the remaining 3 operations will still be performed although the DB side of things will be rolled back. (This is because the RPC operations —the power actions in this instance— are not part of the transaction and thus don't get rolled back). = How to reproduce = - Get two nodes 'READY' - Commission one node - Wait 20 seconds: enough so that the power operation is done (and the lock removed) but not enough to get the commissioning operation done - Commission the second node - Quickly after this (i.e. while the lock of the second node is still being held): abort the commissioning operation of the two nodes - The bulk operation will fail (because of the lock held on the second node) but the first node will also be powered down. => the second node is now in an inconsistent state: it's commissioning but it has been powered down.
2014-10-08 04:09:27 Julian Edwards maas: milestone next
2014-10-15 08:30:45 Graham Binns maas: status Triaged Fix Committed
2014-10-15 08:30:48 Graham Binns maas: assignee Graham Binns (gmb)
2014-10-15 08:30:51 Graham Binns maas: milestone next 1.7.0
2014-10-15 08:33:06 Graham Binns branch linked lp:~gmb/maas/catch-errors-in-power-callsites
2014-11-19 20:33:33 Julian Edwards maas: status Fix Committed Fix Released