Bug 1941600
| Summary: | libvirtd crashes when deleting checkpoint which was redefined with incomplete XML | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux Advanced Virtualization | Reporter: | Peter Krempa <pkrempa> |
| Component: | libvirt | Assignee: | Peter Krempa <pkrempa> |
| Status: | CLOSED ERRATA | QA Contact: | yisun |
| Severity: | unspecified | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 8.4 | CC: | jdenemar, jean-louis, jsuchane, virt-maint, yafu, ymankad |
| Target Milestone: | rc | Keywords: | Triaged |
| Target Release: | 8.4 | Flags: | pm-rhel:
mirror+
|
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | libvirt-7.0.0-11.el8 | Doc Type: | If docs needed, set a value |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2021-05-25 06:48:26 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 1941597 has been marked as a duplicate of this bug. *** Fixed upstream:
commit 8fdc37711b42cd8cd75f2903629f990c74d67ad0
Author: Peter Krempa <pkrempa>
Date: Mon Mar 22 14:44:55 2021 +0100
virDomainCheckpointRedefinePrep: Assign default bitmap names when domain XML is missing
Previously we'd assign the default checkpoint bitmap names in
virDomainCheckpointAlignDisks. In cases when the checkpoint is redefined
without a domain XML virDomainCheckpointAlignDisks is not called.
Add an explicit call to virDomainCheckpointDefAssignBitmapNames to
restore functionality.
Signed-off-by: Peter Krempa <pkrempa>
Reviewed-by: Ján Tomko <jtomko>
commit 3a340872f8792f35094f0ae6df10163a9ba99f12
Author: Peter Krempa <pkrempa>
Date: Mon Mar 22 14:43:17 2021 +0100
qemuCheckpointDiscardBitmaps: Refuse to delete checkpoint with NULL bitmap name
When a checkpoint is redefined without providing the domain XML, we
might end up with a definition where the per-disk bitmap name is not
set. Trying to delete such checkpoint would lead to a crash.
Refuse such deletion.
Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1941600
Signed-off-by: Peter Krempa <pkrempa>
Reviewed-by: Ján Tomko <jtomko>
Reproduced with libvirt-7.0.0-10.module+el8.4.0+10417+37f6984d.x86_64 (.libvirt-ci-venv-ci-runtest-XptyQO) [root@dell-per740-08 bz1941600]# cat ck.xml <domaincheckpoint> <name>testchk</name> <creationTime>1615950082</creationTime> <disks> <disk name='vda' checkpoint='bitmap'/> </disks> </domaincheckpoint> (.libvirt-ci-venv-ci-runtest-XptyQO) [root@dell-per740-08 bz1941600]# virsh checkpoint-create vm1 ck.xml Domain checkpoint testchk created from 'ck.xml' (.libvirt-ci-venv-ci-runtest-XptyQO) [root@dell-per740-08 bz1941600]# virsh checkpoint-delete vm1 testchk --metadata Domain checkpoint testchk deleted (.libvirt-ci-venv-ci-runtest-XptyQO) [root@dell-per740-08 bz1941600]# virsh checkpoint-create --redefine vm1 ck.xml Domain checkpoint testchk created from 'ck.xml' (.libvirt-ci-venv-ci-runtest-XptyQO) [root@dell-per740-08 bz1941600]# virsh checkpoint-delete vm1 testchk error: Disconnected from qemu:///system due to end of file error: Failed to delete checkpoint testchk error: End of file while reading data: Input/output error Test with libvirt-7.0.0-11.el8_rc.a1f06033ee.x86_64, result is PASS (.libvirt-ci-venv-ci-runtest-XptyQO) [root@dell-per740-08 bz1941600]# cat ck.xml <domaincheckpoint> <name>testchk</name> <creationTime>1615950082</creationTime> <disks> <disk name='vda' checkpoint='bitmap'/> </disks> </domaincheckpoint> (.libvirt-ci-venv-ci-runtest-XptyQO) [root@dell-per740-08 bz1941600]# virsh checkpoint-create vm1 ck.xml Domain checkpoint testchk created from 'ck.xml' (.libvirt-ci-venv-ci-runtest-XptyQO) [root@dell-per740-08 bz1941600]# virsh checkpoint-delete vm1 testchk --metadata Domain checkpoint testchk deleted (.libvirt-ci-venv-ci-runtest-XptyQO) [root@dell-per740-08 bz1941600]# virsh checkpoint-create --redefine vm1 ck.xml Domain checkpoint testchk created from 'ck.xml' (.libvirt-ci-venv-ci-runtest-XptyQO) [root@dell-per740-08 bz1941600]# virsh checkpoint-delete vm1 testchk Domain checkpoint testchk deleted (.libvirt-ci-venv-ci-runtest-XptyQO) [root@dell-per740-08 bz1941600]# virsh destroy vm1 Domain 'vm1' destroyed (.libvirt-ci-venv-ci-runtest-XptyQO) [root@dell-per740-08 bz1941600]# qemu-img info /var/lib/libvirt/images/jeos-27-x86_64.qcow2 image: /var/lib/libvirt/images/jeos-27-x86_64.qcow2 file format: qcow2 virtual size: 10 GiB (10737418240 bytes) disk size: 1 GiB cluster_size: 65536 Format specific information: compat: 1.1 compression type: zlib lazy refcounts: false refcount bits: 16 corrupt: false extended l2: false (.libvirt-ci-venv-ci-runtest-XptyQO) [root@dell-per740-08 bz1941600]# virsh checkpoint-list vm1 Name Creation Time ----------------------- a similar test was covered in https://bugzilla.redhat.com/show_bug.cgi?id=1901830#c8 Same steps as https://bugzilla.redhat.com/show_bug.cgi?id=1941600#c9 PASSED with latest build:libvirt-7.0.0-11.module+el8.4.0+10505+3a8d753f.x86_64 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 (virt:av bug fix and enhancement update), 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/RHBA-2021:2098 |
Description of problem: libvirtd crashes when deleting checkpoint which was redefined with incomplete XML Version-Release number of selected component (if applicable): How reproducible: Steps to Reproduce: 1. define a checkpoint: # cat chkdef.xml <domaincheckpoint> <name>testchk</name> <creationTime>1615950082</creationTime> <disks> <disk name='vda' checkpoint='bitmap'/> </disks> </domaincheckpoint> # virsh checkpoint-create --redefine $VMNAME chkdef.xml 2. # virsh checkpoint-delete $VMNAME testchk Actual results: libvirtd crashes