Nova assumes hw_firmware_type=uefi being set on UEFI instances
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
Low
|
Stephen Finucane |
Bug Description
During queens cycle we set hw_firmware_type to be uefi for aarch64 architecture (as it is the only sane way to boot an instance there).
Since then images do not need to have 'hw_firmware_type' property set to get instances working.
The problem starts when there are issues starting instance for other reasons:
│2020-03-21 19:35:04.451 6 ERROR nova.compute.
I went through code and found out that when machine starts on aarch64 then hw_firmware_
But when I start such image and it fails to start then it looks like nova does not set flag to remove nvram. I looked at libvirt/driver.py and it looks like it is assumed that instance/image will have hw_firmware_
When I added hw_firmware_
Something like this probably needs to be done in all places where it is checked:
diff --git nova/virt/
index 45af21c3bb.
--- nova/virt/
+++ nova/virt/
@@ -1270,11 +1270,7 @@ class LibvirtDriver(
try:
guest = self._host.
try:
- hw_firmware_type = instance.
- 'hw_firmware_type')
- support_uefi = (self._
- hw_firmware_type == fields.
- guest.delete_
+ guest.delete_
except libvirt.
Or maybe set NVRAM flag each time as 'hw_firmware_type' can not be assumed to be set.
Changed in nova: | |
assignee: | Marcin Juszkiewicz (hrw) → Kevin Zhao (kevin-zhao) |
Changed in nova: | |
assignee: | Kevin Zhao (kevin-zhao) → Stephen Finucane (stephenfinucane) |
Changed in nova: | |
importance: | Undecided → Low |
tags: | added: compute |
I am waiting for a day when x86 virtual world will finally move from i440fx/bios to q35/uefi and gets hit by all ignored issues.