Bug 1948619
Summary: | Undefine guest with --snapshots-metadata failed after blockpull | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux Advanced Virtualization | Reporter: | Peter Krempa <pkrempa> |
Component: | libvirt | Assignee: | Peter Krempa <pkrempa> |
Status: | CLOSED ERRATA | QA Contact: | Meina Li <meili> |
Severity: | unspecified | Docs Contact: | |
Priority: | unspecified | ||
Version: | 8.5 | CC: | aliang, coli, jdenemar, lmen, meili, ngu, pkrempa, virt-maint, xuzhang |
Target Milestone: | rc | Keywords: | Automation, Triaged |
Target Release: | 8.4 | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | libvirt-7.3.0-1.el8 | Doc Type: | If docs needed, set a value |
Doc Text: | Story Points: | --- | |
Clone Of: | 1946918 | Environment: | |
Last Closed: | 2021-11-16 07:52:31 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: | 7.3.0 |
Embargoed: | |||
Bug Depends On: | 1946918 | ||
Bug Blocks: |
Description
Peter Krempa
2021-04-12 15:56:03 UTC
Fixed upstream: commit b4d020790642fa4d7b8a6783b81d5d9d73cbe3d9 Author: Peter Krempa <pkrempa> Date: Mon Apr 12 17:42:23 2021 +0200 qemuBlockJobProcessEventCompletedPull: Add backingStore terminators if base is NULL When doing a blockpull with NULL base the full contents of the disk are pulled into the topmost image which then becomes fully self-contained. qemuBlockJobProcessEventCompletedPull doesn't install the backing chain terminators though, although it's guaranteed that there will be no backing chain behind disk->src. Add the terminators for completness and for disabling backing chain detection on further boots. Signed-off-by: Peter Krempa <pkrempa> Reviewed-by: Pavel Hrdina <phrdina> commit 46e748aa02cbd5923fa4b500352f528de35dc665 Author: Peter Krempa <pkrempa> Date: Mon Apr 12 17:24:22 2021 +0200 qemuBlockJobProcessEventCompletedPull: Avoid dangling pointer after blockpull When doing a full block pull job (base == NULL) and the config XML contains a compatible disk, the completer function would leave a dangling pointer in 'cfgdisk->src->backingStore' as cfgdisk->src would be set to the value of 'cfgbase' which was always set to 'cfgdisk->src->backingStore'. This is wrong though since for the live definition XML we set the respective counterpart to 'job->data.pull.base' which is NULL in the above scenario. This leads to a invalid pointer read when saving the config XML and may end up in a crash. Resolve it by setting 'cfgbase' only when 'job->data.pull.base' is non-NULL. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1946918 Signed-off-by: Peter Krempa <pkrempa> Reviewed-by: Pavel Hrdina <phrdina> Verified Version: libvirt-7.3.0-1.module+el8.5.0+11004+f4810536.x86_64 qemu-kvm-6.0.0-16.module+el8.5.0+10848+2dccc46d.x86_64 Verified Steps: 1. Prepare a running guest. # virsh domstate lmn running # virsh dumpxml lmn --inactive | grep /disk -B6 <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/var/lib/avocado/data/avocado-vt/images/jeos-27-x86_64.qcow2'/> <backingStore/> <target dev='vda' bus='virtio'/> <address type='pci' domain='0x0000' bus='0x04' slot='0x00' function='0x0'/> </disk> 2. Create snapshots for the guest. # for i in {1..4}; do virsh snapshot-create-as lmn s$i --disk-only; done Domain snapshot s1 created Domain snapshot s2 created Domain snapshot s3 created Domain snapshot s4 created 3. Do blockpull for the virtual disk. # virsh blockpull lmn vda --wait --verbose --async Block Pull: [100 %] Pull complete 4. Destroy the guest and undefine it with --snapshots-metadata. # virsh destroy lmn Domain 'lmn' destroyed # virsh undefine lmn --snapshots-metadata Domain 'lmn' has been undefined 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:4684 |