evacuate is not possible if the instance has task_state
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
Medium
|
Amit Uniyal | ||
Train |
Fix Released
|
Medium
|
Amit Uniyal | ||
Ussuri |
Fix Released
|
Medium
|
Amit Uniyal | ||
Victoria |
Fix Released
|
Medium
|
Amit Uniyal | ||
Wallaby |
Fix Released
|
Medium
|
Amit Uniyal | ||
Xena |
Fix Released
|
Medium
|
Amit Uniyal | ||
Yoga |
Fix Released
|
Medium
|
Amit Uniyal |
Bug Description
Description
===========
A compute host dies but before anything notices it a VM that was running on that host is requested to be stopped by the user. The VM task_state is set to powering-off and the shutdown RPC is sent to the dead compute. A bit later the monitoring system detect that the compute is dead and fences the compute, set the compute to forced_down in nova and triggers the evacuation of the VM. However the evacuation is rejected by nova:
Cannot 'evacuate' instance 81451eb2-
Steps to reproduce
==================
0) deploy a multi node devstack
1) create a VM
$openstack --os-compute-
2) stop the nova-compute service of the host the VM is scheduled to:
$sudo systemctl stop devstack@n-cpu
3) stop the VM
$openstack server stop vm1
4) fence the host and force the host down in nova
5) try to evacuate the VM
$server evacuate vm1
See also [1]
Expected result
===============
The VM is evacuated successfully
Actual result
=============
Cannot 'evacuate' instance 81451eb2-
Environment
===========
devstack on recent master
Workaround
==========
The admin can reset the state of the VM with
$nova reset-state --active vm1
then retry the evacuation.
[1] https:/
[2] https:/
tags: | added: evacuate |
Changed in nova: | |
assignee: | nobody → Amit Uniyal (auniyal) |
given there is a workaround using reset state and this requires the host to already be dead when the stop happens but
not yet seen by nova i think this is a medium impornace issue.
there is a workaround that operators can use
and its a rare event so should not impact many.