Bug 1679018

Summary: RuntimeError: Path does not exist: /var/lib/libvirt/qemu/nvram/test_VARS.fd
Product: Red Hat Enterprise Linux 8 Reporter: Xiaodai Wang <xiaodwan>
Component: virt-managerAssignee: Pavel Hrdina <phrdina>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 8.0CC: juzhou, mxie, mzhan, tzheng, zili
Target Milestone: rcFlags: pm-rhel: mirror+
Target Release: 8.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: virt-manager-2.2.0-1.el8 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 1679021 (view as bug list) Environment:
Last Closed: 2019-11-05 21:19:40 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1679021    

Description Xiaodai Wang 2019-02-20 06:31:43 UTC
Description of problem:
RuntimeError: Path does not exist: /var/lib/libvirt/qemu/nvram/test_VARS.fd

Version-Release number of selected component (if applicable):
virt-install-2.0.0-4.el8.noarch

How reproducible:
100%

Steps to Reproduce:
1. Create a uefi guest by '--import' and '--noreboot'.
# virt-install --name test --memory 1024 --disk /var/lib/libvirt/images/test.img,size=1 --import --boot uefi --noreboot
2. Clone the guest.
# virt-clone -o test --auto-clone

Actual results:
RuntimeError: Path does not exist: /var/lib/libvirt/qemu/nvram/test_VARS.fd

Expected results:
virt-clone should success.

Additional info:
'/var/lib/libvirt/qemu/nvram/test_VARS.fd' is created automatically when vm first boots up, so if the file doesn't exist,
virt-clone should not fail.

Comment 1 Pavel Hrdina 2019-03-28 15:41:53 UTC
Upstream commit:

commit 986097d5f8e7a62d2aa6edd4596302d4e0af4175
Author: Pavel Hrdina <phrdina>
Date:   Thu Mar 28 14:27:04 2019 +0100

    cloner: don't fail to clone VM if nvram file doesn't exist

Comment 2 ysu@redhat.com 2019-04-29 09:21:04 UTC
I can reproduce this issue with package:
virt-manager-1.5.0-1.el7.noarch

Then try to verify this bug with new build:
virt-manager-1.5.0-3.el7.noarch
virt-install-1.5.0-3.el7.noarch
libvirt-4.5.0-12.el7.x86_64
qemu-kvm-rhev-2.12.0-26.el7.x86_64
libvirt-python-4.5.0-1.el7.x86_64

Steps:

1.Create a uefi guest but nvram file doesn't exist by '-import' and 'noreboot'
#virt-install --name test --memory 1024 --disk /var/lib/libvirt/images/test.img,size=1 --import --boot uefi --noreboot
Starting install...
Allocating 'test.img'                                       | 1.0 GB  00:01     
Domain creation completed.

1.1 The uefi guest can be created successfully with xml info:'<nvram>/var/lib/libvirt/qemu/nvram/test_VARS.fd</nvram>'.
1.2 Check path(/var/lib/libvirt/qemu/nvram/) without file(test_VARS.fd)
# ls /var/lib/libvirt/qemu/nvram/test_VARS.fd
ls: cannot access /var/lib/libvirt/qemu/nvram/test_VARS.fd: No such file or directory

Result:the file does not exist.

2.Check the guest can be cloned successfully.
# virt-clone -o test --auto-clone
Allocating 'test-clone.img' | 1.0 GB 00:00
Clone 'test-clone' created successfully.

#virsh dumpxml test-clone | grep nvram
<nvram>/var/lib/libvirt/qemu/nvram/test-clone_VARS.fd</nvram>

#ll  /var/lib/libvirt/qemu/nvram/test-clone_VARS.fd
ls: cannot access /var/lib/libvirt/qemu/nvram/test-clone_VARS.fd: No such file or directory

Result: virt-clone finishes successfully without flie 'test_VARS.fd' and the new guest can start successfully.

I move this bug from ON_QA to VERIFIED based on above testing.

Comment 3 ysu@redhat.com 2019-04-29 09:36:20 UTC
Please ignore the verified comment,it only verified on rhel7.
Sorry for my negligence.

I move this bug from VERIFIED to ASSIGNED.

Comment 5 zhoujunqin 2019-07-08 06:23:55 UTC
I can reproduce this issue with package:
virt-install-2.0.0-5.el8.noarch

Then try to verify this bug with new build:
virt-install-2.2.0-2.el8.noarch
virt-manager-2.2.0-2.el8.noarch
libvirt-4.5.0-24.module+el8.1.0+3205+41ff0a42.x86_64
qemu-kvm-2.12.0-77.module+el8.1.0+3382+49219945.x86_64

Steps:

1.Create a uefi guest but nvram file doesn't exist by '-import' and 'noreboot'
#virt-install --name test --memory 1024 --disk /var/lib/libvirt/images/test.img,size=1 --import --boot uefi --noreboot
...
Starting install...
Allocating 'test.img'                                       | 1.0 GB  00:01     
Domain creation completed.

1.1 The uefi guest can be created successfully with xml info:'<nvram>/var/lib/libvirt/qemu/nvram/test_VARS.fd</nvram>'.
1.2 Check file "/var/lib/libvirt/qemu/nvram/test_VARS.fd" is not existing.
# ls /var/lib/libvirt/qemu/nvram/test_VARS.fd
ls: cannot access /var/lib/libvirt/qemu/nvram/test_VARS.fd: No such file or directory

2.Check the guest can be cloned successfully.
# virt-clone -o test --auto-clone
Allocating 'test-clone.img' | 1.0 GB 00:00
Clone 'test-clone' created successfully.

#virsh dumpxml test-clone | grep nvram
<nvram>/var/lib/libvirt/qemu/nvram/test-clone_VARS.fd</nvram>

#ll  /var/lib/libvirt/qemu/nvram/test-clone_VARS.fd
ls: cannot access /var/lib/libvirt/qemu/nvram/test-clone_VARS.fd: No such file or directory

3. Start the newly cloned vm.
# virsh start test-clone
Domain test-clone started

# ll /var/lib/libvirt/qemu/nvram/test-clone_VARS.fd
-rw-------. 1 qemu qemu 540672 Jul  8 02:17 /var/lib/libvirt/qemu/nvram/test-clone_VARS.fd

Result: The newly clone vm can start successfully and the nvram file is created on the first start.

I move this bug from ON_QA to VERIFIED based on above testing.

Comment 7 errata-xmlrpc 2019-11-05 21:19:40 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHSA-2019:3464