Reboot host didn't restart instances due to libvirt lifecycle event change instance's power_stat as shutdown
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
Medium
|
Thomas Bechtold | ||
Juno |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
1. Libvirt driver can receive libvirt lifecycle events(registered in https:/
2. When reboot compute service , compute service is trying to reboot instance which were running before reboot.
https:/
3. When reboot the host, the code path like 1)libvirt-guests will shutdown all the domain, 2)then sendout lifecycle event , 3)nova compute receive it and 4)save power_state 'shutoff' in db , 5)then try to stop it. Compute service may be killed in any step, In my test enviroment, two running instances , only one instance was restarted succefully. another was set power_state with 'shutoff', task_state with 'power off' in step 4) . So it can't pass the check in https:/
Not sure this is a bug , wonder if there is solution for this .
tags: | added: libvirt |
Changed in nova: | |
assignee: | nobody → Thomas Bechtold (toabctl) |
Changed in nova: | |
status: | Incomplete → Confirmed |
tags: | added: icehouse-backport-potential |
Changed in nova: | |
milestone: | none → kilo-1 |
status: | Fix Committed → Fix Released |
tags: |
added: juno-backport-potential removed: icehouse-backport-potential |
tags: | removed: juno-backport-potential |
Changed in nova: | |
milestone: | kilo-1 → 2015.1.0 |
I'm not familar with the process of libvirt event detect/deliver , just think stop compute service before reboot host can avoid this .