Note: This bug is displayed in read-only format because
the product is no longer active in Red Hat Bugzilla.
RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Description of problem:
Boot a guest (I tested rhel5.8-64 and rhel6.3-64) and savevm, after finish save the internal snapshot, quit the command line. Aborted occurs. I attach a virtual floppy with qcow2 format in the command line. I'm not very sure whether it is related the floppy because this issue is not 100% reproduced. Re-test 7 times without floppy, did not reproduce the issue.
Version-Release number of selected component (if applicable):
kernel-2.6.32-241.el6.x86_64
qemu-kvm-0.12.1.2-2.233.el6.x86_64
How reproducible:
2/10
Steps to Reproduce:
0.Pre-install a rhel guest and create a 1.4M floppy disk.
#qemu-img create -f qcow2 floppy.qcow2 1474560
1. Boot a guest:
(gdb) r -M rhel6.3.0 -cpu cpu64-rhel6 -enable-kvm -m 4G -smp 2,sockets=1,cores=2,threads=1 -name rhel5.8-64 -uuid 125b7bc8-1b37-49e9-9a33-7e8917c34b88 -rtc base=localtime,driftfix=slew -device virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0,addr=0x4 -drive file=/home/RHEL-Server-5.8-64-virtio.qcow2,if=none,id=drive-virtio-disk0,format=qcow2,cache=none,werror=stop,rerror=stop,aio=native -device ide-drive,bus=ide.0,unit=1,drive=drive-virtio-disk0,id=virtio-disk0 -netdev tap,id=hostnet0,vhost=on,script=/etc/qemu-ifup -device virtio-net-pci,netdev=hostnet0,id=net0,mac=00:1a:4a:42:1a:52,bus=pci.0,addr=0x3 -chardev socket,id=charchannel0,path=/tmp/qzhang-test,server,nowait -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.rhevm.vdsm -spice port=5930,disable-ticketing -vga qxl -global qxl-vga.vram_size=33554432 -usb -device usb-tablet,id=input0 -device virtio-balloon-pci,id=balloon0,addr=0x7 -boot c -monitor stdio -drive file=/home/floppy.qcow2,if=none,id=drive-fdc0-0-0,format=qcow2,cache=none -global isa-fdc.driveA=drive-fdc0-0-0
2.(qemu)savevm
3.(qemu)quit (after finish the savevm)
Actual results:
(qemu)
(qemu) savevm
handle_dev_input: stop
[New Thread 0x7ffff05ec700 (LWP 17083)]
handle_dev_input: start
(qemu)
(qemu)
(qemu) q
[New Thread 0x7ffed7bfd700 (LWP 17106)]
qemu-kvm: block/qcow2-cache.c:69: qcow2_cache_destroy: Assertion `c->entries[i].ref == 0' failed.
Program received signal SIGABRT, Aborted.
0x00007ffff500e885 in raise () from /lib64/libc.so.6
(gdb)
(gdb)
(gdb) bt
#0 0x00007ffff500e885 in raise () from /lib64/libc.so.6
#1 0x00007ffff5010065 in abort () from /lib64/libc.so.6
#2 0x00007ffff50079fe in __assert_fail_base () from /lib64/libc.so.6
#3 0x00007ffff5007ac0 in __assert_fail () from /lib64/libc.so.6
#4 0x00007ffff7e4d1f4 in qcow2_cache_destroy (bs=<value optimized out>,
c=0x7ffff86d7640) at block/qcow2-cache.c:69
#5 0x00007ffff7e470ba in qcow2_close (bs=<value optimized out>)
at block/qcow2.c:625
#6 0x00007ffff7e31531 in bdrv_close (bs=0x7ffff86eb2c0) at block.c:665
#7 0x00007ffff7e315a8 in bdrv_close_all () at block.c:688
#8 0x00007ffff7e1e2a5 in kvm_main_loop ()
at /usr/src/debug/qemu-kvm-0.12.1.2/qemu-kvm.c:2249
#9 0x00007ffff7e0047c in main_loop (argc=20, argv=<value optimized out>,
envp=<value optimized out>) at /usr/src/debug/qemu-kvm-0.12.1.2/vl.c:4228
#10 main (argc=20, argv=<value optimized out>, envp=<value optimized out>)
at /usr/src/debug/qemu-kvm-0.12.1.2/vl.c:6489
Expected results:
Guest should quit normally.
Additional info:
Once when savevm, qemu prompts error, and then quit qemu causing an aborted.But I only saw this error for only once.
(qemu) savevm
handle_dev_input: stop
Error while creating snapshot on 'drive-fdc0-0-0'
handle_dev_input: start
Looks like we're forgetting to call qcow2_cache_put() in some error path. Reproducing this only with qemu-io/qemu-img, so that we have a fully deteministic scriptable test case would be good.
From bug 807894 comment 9, this was seen also with external snapshots:
(qemu) snapshot_blkdev drive-virtio-disk0 /root/sn1 qcow2
(qemu) block_stream drive-virtio-disk0
(qemu) quit
qemu-kvm core dump:
Program terminated with signal 6, Aborted.
#0 0x00007f5400ae1885 in raise (sig=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:64
64 return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);
(gdb) bt
#0 0x00007f5400ae1885 in raise (sig=6) at
../nptl/sysdeps/unix/sysv/linux/raise.c:64
#1 0x00007f5400ae3065 in abort () at abort.c:92
#2 0x00007f5400ada9fe in __assert_fail_base (fmt=<value optimized out>,
assertion=0x7f540330b286 "c->entries[i].ref == 0", file=0x7f540330b25b
"block/qcow2-cache.c", line=<value optimized out>,
function=<value optimized out>) at assert.c:96
#3 0x00007f5400adaac0 in __assert_fail (assertion=0x7f540330b286
"c->entries[i].ref == 0", file=0x7f540330b25b "block/qcow2-cache.c", line=69,
function=0x7f540330b2b0 "qcow2_cache_destroy") at assert.c:105
#4 0x00007f54031b4324 in qcow2_cache_destroy (bs=<value optimized out>,
c=0x7f54049dcd70) at block/qcow2-cache.c:69
#5 0x00007f54031ae34a in qcow2_close (bs=0x7f54047e4010) at block/qcow2.c:628
#6 0x00007f5403197f21 in bdrv_close (bs=0x7f54047e4010) at block.c:693
#7 0x00007f5403198068 in bdrv_close_all () at block.c:717
#8 0x00007f5403184985 in kvm_main_loop () at
/usr/src/debug/qemu-kvm-0.12.1.2/qemu-kvm.c:2270
#9 0x00007f5403165cec in main_loop (argc=20, argv=<value optimized out>,
envp=<value optimized out>) at /usr/src/debug/qemu-kvm-0.12.1.2/vl.c:4202
#10 main (argc=20, argv=<value optimized out>, envp=<value optimized out>) at
/usr/src/debug/qemu-kvm-0.12.1.2/vl.c:6427
(In reply to comment #6)
> Hm, this seems to be related to quitting while streaming. Better open a
> separate bug.
Discussed this with Kevin, I'm moving it to 6.4 (savevm is not supported, but it's still worth some investigation in the near future).
Paolo, I assume you'll take care of the streaming case, even though this bug currently blocks the blk_mirror bug.
Yes, the streaming case is bug 807898. Mirror+streaming is broken beyond possibility of saving it, so I removed bug 806432 from the blocks list of this one.
Description of problem: Boot a guest (I tested rhel5.8-64 and rhel6.3-64) and savevm, after finish save the internal snapshot, quit the command line. Aborted occurs. I attach a virtual floppy with qcow2 format in the command line. I'm not very sure whether it is related the floppy because this issue is not 100% reproduced. Re-test 7 times without floppy, did not reproduce the issue. Version-Release number of selected component (if applicable): kernel-2.6.32-241.el6.x86_64 qemu-kvm-0.12.1.2-2.233.el6.x86_64 How reproducible: 2/10 Steps to Reproduce: 0.Pre-install a rhel guest and create a 1.4M floppy disk. #qemu-img create -f qcow2 floppy.qcow2 1474560 1. Boot a guest: (gdb) r -M rhel6.3.0 -cpu cpu64-rhel6 -enable-kvm -m 4G -smp 2,sockets=1,cores=2,threads=1 -name rhel5.8-64 -uuid 125b7bc8-1b37-49e9-9a33-7e8917c34b88 -rtc base=localtime,driftfix=slew -device virtio-serial-pci,id=virtio-serial0,max_ports=16,bus=pci.0,addr=0x4 -drive file=/home/RHEL-Server-5.8-64-virtio.qcow2,if=none,id=drive-virtio-disk0,format=qcow2,cache=none,werror=stop,rerror=stop,aio=native -device ide-drive,bus=ide.0,unit=1,drive=drive-virtio-disk0,id=virtio-disk0 -netdev tap,id=hostnet0,vhost=on,script=/etc/qemu-ifup -device virtio-net-pci,netdev=hostnet0,id=net0,mac=00:1a:4a:42:1a:52,bus=pci.0,addr=0x3 -chardev socket,id=charchannel0,path=/tmp/qzhang-test,server,nowait -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.rhevm.vdsm -spice port=5930,disable-ticketing -vga qxl -global qxl-vga.vram_size=33554432 -usb -device usb-tablet,id=input0 -device virtio-balloon-pci,id=balloon0,addr=0x7 -boot c -monitor stdio -drive file=/home/floppy.qcow2,if=none,id=drive-fdc0-0-0,format=qcow2,cache=none -global isa-fdc.driveA=drive-fdc0-0-0 2.(qemu)savevm 3.(qemu)quit (after finish the savevm) Actual results: (qemu) (qemu) savevm handle_dev_input: stop [New Thread 0x7ffff05ec700 (LWP 17083)] handle_dev_input: start (qemu) (qemu) (qemu) q [New Thread 0x7ffed7bfd700 (LWP 17106)] qemu-kvm: block/qcow2-cache.c:69: qcow2_cache_destroy: Assertion `c->entries[i].ref == 0' failed. Program received signal SIGABRT, Aborted. 0x00007ffff500e885 in raise () from /lib64/libc.so.6 (gdb) (gdb) (gdb) bt #0 0x00007ffff500e885 in raise () from /lib64/libc.so.6 #1 0x00007ffff5010065 in abort () from /lib64/libc.so.6 #2 0x00007ffff50079fe in __assert_fail_base () from /lib64/libc.so.6 #3 0x00007ffff5007ac0 in __assert_fail () from /lib64/libc.so.6 #4 0x00007ffff7e4d1f4 in qcow2_cache_destroy (bs=<value optimized out>, c=0x7ffff86d7640) at block/qcow2-cache.c:69 #5 0x00007ffff7e470ba in qcow2_close (bs=<value optimized out>) at block/qcow2.c:625 #6 0x00007ffff7e31531 in bdrv_close (bs=0x7ffff86eb2c0) at block.c:665 #7 0x00007ffff7e315a8 in bdrv_close_all () at block.c:688 #8 0x00007ffff7e1e2a5 in kvm_main_loop () at /usr/src/debug/qemu-kvm-0.12.1.2/qemu-kvm.c:2249 #9 0x00007ffff7e0047c in main_loop (argc=20, argv=<value optimized out>, envp=<value optimized out>) at /usr/src/debug/qemu-kvm-0.12.1.2/vl.c:4228 #10 main (argc=20, argv=<value optimized out>, envp=<value optimized out>) at /usr/src/debug/qemu-kvm-0.12.1.2/vl.c:6489 Expected results: Guest should quit normally. Additional info: Once when savevm, qemu prompts error, and then quit qemu causing an aborted.But I only saw this error for only once. (qemu) savevm handle_dev_input: stop Error while creating snapshot on 'drive-fdc0-0-0' handle_dev_input: start