When REBUILDING from UEFI to non-UEFI instance ends up in ERROR state
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
Undecided
|
Unassigned | ||
2024.1 |
Fix Committed
|
Undecided
|
Unassigned |
Bug Description
If an UEFI instance is REBUILDED using a non-UEFI image as a replacement via e.g.:
# openstack server create --flavor c4.2xlarge --image ubuntu-
# openstack server rebuild --image ubuntu-22.04-x86_64 ubuntu-uefi-test
The instance ends up in an error state:
```
Traceback (most recent call last):
File "/usr/lib/
self.
File "/usr/lib/
result = proxy_call(
File "/usr/lib/
rv = execute(f, *args, **kwargs)
File "/usr/lib/
six.reraise(c, e, tb)
File "/usr/lib/
raise value
File "/usr/lib/
rv = meth(*args, **kwargs)
File "/usr/lib/
if ret == -1: raise libvirtError (\'virDomainUnd
libvirt.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/lib/
return function(self, context, *args, **kwargs)
File "/usr/lib/
do_
File "/usr/lib/
return f(*args, **kwargs)
File "/usr/lib/
self.
File "/usr/lib/
self.
File "/usr/lib/
raise self.value
File "/usr/lib/
self.
File "/usr/lib/
self.
File "/usr/lib/
self.
File "/usr/lib/
self.
File "/usr/lib/
raise self.value
File "/usr/lib/
self.
File "/usr/lib/
self.
File "/usr/lib/
return self._cleanup(
File "/usr/lib/
self.
File "/usr/lib/
LOG.
File "/usr/lib/
self.
File "/usr/lib/
raise self.value
File "/usr/lib/
guest.
File "/usr/lib/
self.
File "/usr/lib/
result = proxy_call(
File "/usr/lib/
rv = execute(f, *args, **kwargs)
File "/usr/lib/
six.reraise(c, e, tb)
File "/usr/lib/
raise value
File "/usr/lib/
rv = meth(*args, **kwargs)
File "/usr/lib/
if ret == -1: raise libvirtError (\'virDomainUnd
libvirt.
```
Additionally the instance cannot be deleted. Only manually by issuing a ``virsh undefine [instance_uuid] --nvram``
I am pretty certain this is related to https:/
I am wondering why this flag is not send to libvirt by default to always be able to delete instances UEFI or not?
Changed in nova: | |
status: | Expired → Incomplete |
Changed in nova: | |
status: | Incomplete → Expired |
Changed in nova: | |
status: | Expired → Confirmed |
There was couple of changes on the uefi support check since https:/ /github. com/openstack/ nova/commit/ 539d381434ccadc dc3f5d58c2705c3 5558a3a065 . What version of OpenStack causing the above error? Is it reproducible on recent master?
Looking through the current code on master the deletion of the nvram does not depend on the guest it only depends on the host capabilities. So simply changing the guest image to non uefi should not mean we are not trying the remove the nvram during delete.
Setting this to INCOMPLETE until exact openstack version / master reproducibility is determined.