My pleasure. Here's what I tried:
Part 1:
- Create a VM with the wrong firmware. Try to start it (fails). Abort using
the Cancel button.
- Verify that /var/lib/libvirt/qemu/nvram/TEST123_VARS.fd exists.
- Run virsh:
$ virsh undefine --nvram TEST123
error: failed to get domain 'TEST123'
error: Domain not found: no domain with matching name 'TEST123'
So the cancel does remove the domain. Move on to part 2.
Part 2:
Looking for ways to "abort it hard" in the GUI: Once the VM has started
with the wrong firmware there are three ways out of the customize
hardware window:
1. Begin Installation: Fails and takes you back where you started.
2. Cancel Installation: Causes the problem reported.
3. Swatting the window with the "X": Same as #2
So at this point it looks like there's no way to abort the leak of the
firmware file. So, I checked for a denial by AppArmor:
$ dmesg -T | tail -n 5
[Tue Jul 11 10:40:18 2017] audit: type=1400 audit(1499794771.816:77):
apparmor="STATUS" operation="profile_replace" profile="unconfined"
name="libvirt-239ba97a-d01b-4127-916c-0f07d7c66e0a" pid=2242
comm="apparmor_parser"
[Tue Jul 11 10:40:18 2017] audit: type=1400 audit(1499794771.844:78):
apparmor="STATUS" operation="profile_replace" profile="unconfined"
name="libvirt-239ba97a-d01b-4127-916c-0f07d7c66e0a//qemu_bridge_helper"
pid=2242 comm="apparmor_parser"
[Tue Jul 11 10:40:18 2017] br0: port 2(vnet0) entered disabled state
[Tue Jul 11 10:40:18 2017] device vnet0 left promiscuous mode
[Tue Jul 11 10:40:18 2017] br0: port 2(vnet0) entered disabled state
Those are not denials. They look like what happens when you create a VM,
but I'm not certain.
Next, I checked if using virsh from the command line leaks the NVRAM
file:
1. Create a VM, customize it to use UEFI with the correct arch.
2. Start the installer and force-off the VM.
3. Check for deletion:
# ls /var/lib/libvirt/qemu/nvram/
TEST1234_VARS.fd
# virsh undefine --nvram TEST1234
Domain TEST1234 has been undefined
# ls /var/lib/libvirt/qemu/nvram/
TEST1234_VARS.fd
virsh does not delete the file. So it's conclusively an issue with both
the command line and the GUI. So looking at the code you provided I went
to find the corresponding XML and I found this fragment:
<os>
<type arch='x86_64' machine='pc-i440fx-xenial'>hvm</type>
<loader readonly='yes' type='pflash'>/usr/share/OVMF/OVMF_CODE.fd</loader>
<boot dev='hd'/>
</os>
I've never used XML in Python, so I can't be certain, but it seems like
this line:
if (self.get_xmlobj().os.loader_ro is True and
Should look like this:
if (self.get_xmlobj().os.loader_readonly is True and
The second line matches the XML attribute exactly.
Hope this helps!
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1701344
Title:
virt-manager fails to delete
/var/lib/libvirt/qemu/nvram/VMName_VARS.fd after installation is
cancelled.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/virt-manager/+bug/1701344/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs