Nova evacuate instance fails as port tries to bind to dead host
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Expired
|
Undecided
|
Unassigned |
Bug Description
Description
===========
Running Nova evacuate (instance ID) (compute) works once, but then fails for the second instance. Logs show that Nova tells Neutron to bind the port on the dead compute node. This issue has happened twice to us in production, but we haven't been able to reproduce outside of production.
Steps to reproduce
==================
1. Have a dead compute node (shutdown may be fine?)
2. Execute "nova evacuate EVACUATED_
3. Execute "nova evacuate EVACUATED_
4. Watch in horror as neutron tries to bind the port to the dead host
Expected result
===============
A working VM evacuated to a working compute host.
Actual result
=============
A failed evacuate, a VM in error status on a dead compute host.
Environment
===========
CentOS 7.8.2003
Openstack Rocky
openstack-
openstack-
openstack-
openstack-
openstack-
python-
openstack-
python2-
openstack-
Libvirt + KVM
libvirt-
qemu-kvm-
Ceph 14.2.11
Neutron-Openvswitch
Logs & Configs
==============
*These logs are from production which wasn't in Debug mode when the issue happened. Since this is production, I can't really force reproduction of this issue while debug is on*
f3839ca64f58ac7
2021-01-06 13:31:31.750 2858 INFO nova.osapi_
2021-01-06 13:31:40.145 2863 INFO nova.osapi_
2021-01-06 13:31:40.156 2863 INFO nova.osapi_
2021-01-06 13:31:43.289 2865 INFO nova.osapi_
2021-01-06 13:31:43.413 2863 INFO nova.osapi_
2021-01-06 13:31:43.883 2865 INFO nova.osapi_
2021-01-06 13:31:47.194 2864 INFO nova.api.
*I was asked to use the event list to find further logs. However, the event list did not return anything when I queried it. Could this be because the problematic instance was deleted and recreated?*
Changed in nova: | |
status: | New → Incomplete |
Use the following cli to found the req_id of the evacuation. action- list $instance_uuid
#nova instance-
Then show the request information.
#nova instance-action $instance_uuid $req_id
More information is also needed by grep the request-id in all nova-api/scheduler and dest nova-compute log files.