Created attachment 1642673 [details] libvirtd log Description: [blockdev enablement] block pull failed when vm has multiple snapshots Versions: qemu-kvm-4.2.0-1.module+el8.2.0+4793+b09dd2fb.x86_64 libvirt-5.10.0-1.module+el8.2.0+5040+bd433686.x86_64 How reproducible: 100% Steps: 1. Have a running vm (.libvirt-ci-venv-ci-runtest-jUzTYn) [root@libvirt-rhel-8 ~]# virsh destroy avocado-vt-vm1; virsh start avocado-vt-vm1 Domain avocado-vt-vm1 destroyed Domain avocado-vt-vm1 started (.libvirt-ci-venv-ci-runtest-jUzTYn) [root@libvirt-rhel-8 ~]# ps -ef | grep avocado-vt-vm1 qemu 2960 1 91 12:08 ? 00:00:07 /usr/libexec/qemu-kvm -name guest=avocado-vt-vm1,debug-threads=on -S -object secret,id=masterKey0,format=raw,file=/var/lib/libvirt/qemu/domain-21-avocado-vt-vm1/master-key.aes -machine pc-q35-rhel8.1.0,accel=kvm,usb=off,dump-guest-core=off -cpu Skylake-Server-IBRS,ss=on,hypervisor=on,tsc-adjust=on,clflushopt=on,umip=on,pku=on,md-clear=on,stibp=on,arch-capabilities=on,ssbd=on,ibpb=on,amd-ssbd=on,skip-l1dfl-vmentry=on,vmx=off -m 1024 -overcommit mem-lock=off -smp 2,sockets=2,cores=1,threads=1 -uuid 9f672c02-487d-45df-965f-49b2870dd948 -no-user-config -nodefaults -chardev socket,id=charmonitor,fd=38,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=utc,driftfix=slew -global kvm-pit.lost_tick_policy=delay -no-hpet -no-shutdown -global ICH9-LPC.disable_s3=1 -global ICH9-LPC.disable_s4=1 -boot strict=on -device pcie-root-port,port=0x10,chassis=1,id=pci.1,bus=pcie.0,multifunction=on,addr=0x2 -device pcie-root-port,port=0x11,chassis=2,id=pci.2,bus=pcie.0,addr=0x2.0x1 -device pcie-root-port,port=0x12,chassis=3,id=pci.3,bus=pcie.0,addr=0x2.0x2 -device pcie-root-port,port=0x13,chassis=4,id=pci.4,bus=pcie.0,addr=0x2.0x3 -device pcie-root-port,port=0x14,chassis=5,id=pci.5,bus=pcie.0,addr=0x2.0x4 -device pcie-root-port,port=0x15,chassis=6,id=pci.6,bus=pcie.0,addr=0x2.0x5 -device pcie-root-port,port=0x16,chassis=7,id=pci.7,bus=pcie.0,addr=0x2.0x6 -device qemu-xhci,p2=15,p3=15,id=usb,bus=pci.2,addr=0x0 -device virtio-serial-pci,id=virtio-serial0,bus=pci.3,addr=0x0 -blockdev {"driver":"file","filename":"/var/lib/avocado/data/avocado-vt/images/jeos-27-x86_64.qcow2","node-name":"libvirt-1-storage","auto-read-only":true,"discard":"unmap"} -blockdev {"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2","file":"libvirt-1-storage","backing":null} -device virtio-blk-pci,scsi=off,bus=pcie.0,addr=0x5,drive=libvirt-1-format,id=virtio-disk0,bootindex=1 -netdev tap,fd=40,id=hostnet0,vhost=on,vhostfd=41 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:ba:73:b3,bus=pci.1,addr=0x0 -chardev pty,id=charserial0 -device isa-serial,chardev=charserial0,id=serial0 -chardev socket,id=charchannel0,fd=42,server,nowait -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=org.qemu.guest_agent.0 -device usb-tablet,id=input0,bus=usb.0,port=1 -vnc 127.0.0.1:1 -device qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,vram64_size_mb=0,vgamem_mb=16,max_outputs=1,bus=pcie.0,addr=0x1 -device virtio-balloon-pci,id=balloon0,bus=pci.5,addr=0x0 -object rng-random,id=objrng0,filename=/dev/urandom -device virtio-rng-pci,rng=objrng0,id=rng0,bus=pci.6,addr=0x0 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,resourcecontrol=deny -msg timestamp=on 2. Clear libvirtd debug log (.libvirt-ci-venv-ci-runtest-jUzTYn) [root@libvirt-rhel-8 ~]# echo "" > /var/log/libvirtd-debug.log 3. Create 4 external snapshots (.libvirt-ci-venv-ci-runtest-jUzTYn) [root@libvirt-rhel-8 ~]# for i in {1..4}; do virsh snapshot-create-as avocado-vt-vm1 snap$i --disk-only; done Domain snapshot snap1 created Domain snapshot snap2 created Domain snapshot snap3 created Domain snapshot snap4 created (.libvirt-ci-venv-ci-runtest-jUzTYn) [root@libvirt-rhel-8 ~]# virsh dumpxml avocado-vt-vm1 | awk '/<disk/,/<\/disk/' <disk type='file' device='disk'> <driver name='qemu' type='qcow2'/> <source file='/var/lib/avocado/data/avocado-vt/images/jeos-27-x86_64.snap4' index='5'/> <backingStore type='file' index='4'> <format type='qcow2'/> <source file='/var/lib/avocado/data/avocado-vt/images/jeos-27-x86_64.snap3'/> <backingStore type='file' index='3'> <format type='qcow2'/> <source file='/var/lib/avocado/data/avocado-vt/images/jeos-27-x86_64.snap2'/> <backingStore type='file' index='2'> <format type='qcow2'/> <source file='/var/lib/avocado/data/avocado-vt/images/jeos-27-x86_64.snap1'/> <backingStore type='file' index='1'> <format type='qcow2'/> <source file='/var/lib/avocado/data/avocado-vt/images/jeos-27-x86_64.qcow2'/> <backingStore/> </backingStore> </backingStore> </backingStore> </backingStore> <target dev='vda' bus='virtio'/> <alias name='virtio-disk0'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </disk> 4. Do blockpull, failed as follow: (.libvirt-ci-venv-ci-runtest-jUzTYn) [root@libvirt-rhel-8 ~]# virsh blockpull avocado-vt-vm1 vda --base vda[1] error: internal error: unable to execute QEMU command 'block-stream': Node 'libvirt-1-format' is not a backing image of 'libvirt-5-format' Expected result: Block pull should be successful Additional info: libvirtd log as attachment This may have same root cause with bz1780705
most of virsh.blockpull cases failed: https://libvirt-jenkins.rhev-ci-vms.eng.rdu2.redhat.com/view/libvirt/view/RHEL-8.2%20x86_64/job/libvirt-RHEL-8.2-runtest-x86_64-function-block_job_commit_pull/3/testReport/
*** This bug has been marked as a duplicate of bug 1780705 ***