Bug 1750322
Summary: | qemu aborts in blockCommit: qemu-kvm: block.c:3486 [rhel-7.7.z] | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 7 | Reporter: | RAD team bot copy to z-stream <autobot-eus-copy> |
Component: | qemu-kvm-rhev | Assignee: | Kevin Wolf <kwolf> |
Status: | CLOSED ERRATA | QA Contact: | aihua liang <aliang> |
Severity: | high | Docs Contact: | |
Priority: | high | ||
Version: | 7.7 | CC: | aefrat, aliang, bcholler, bugs, coli, gwatson, jinzhao, juzhang, kwolf, mkalinin, mrezanin, mtessun, nsoffer, virt-maint |
Target Milestone: | rc | Keywords: | ZStream |
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | qemu-kvm-rhev-2.12.0-33.el7_7.4 | Doc Type: | If docs needed, set a value |
Doc Text: | Story Points: | --- | |
Clone Of: | 1711643 | Environment: | |
Last Closed: | 2019-10-22 15:24:05 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
RAD team bot copy to z-stream
2019-09-09 10:26:19 UTC
Can reproduce it on qemu-kvm-rhev-2.12.0-29.el7.x86_64. Reproduce steps: 1.Create images sn1 ~ sn5 for i in range (1,6) #qemu-img create -f qcow2 /root/sn$i 20G 2.Start guest with qemu cmds: /usr/libexec/qemu-kvm \ -object throttle-group,x-bps-read=4096,id=throttle0 \ -blockdev file,filename=/home/kvm_autotest_root/images/rhel77-64-virtio-scsi.qcow2,node-name=file_base \ -blockdev qcow2,file=file_base,node-name=base \ -blockdev throttle,throttle-group=throttle0,file=base,node-name=throttled \ -blockdev file,filename=/root/sn1,node-name=root_sn1 \ -blockdev qcow2,file=root_sn1,node-name=sn1,backing=throttled \ -blockdev file,filename=/root/sn2,node-name=root_sn2 \ -blockdev qcow2,file=root_sn2,node-name=sn2,backing=sn1 \ -blockdev file,filename=/root/sn3,node-name=root_sn3 \ -blockdev qcow2,file=root_sn3,node-name=sn3,backing=sn2 \ -blockdev file,filename=/root/sn4,node-name=root_sn4 \ -blockdev qcow2,file=root_sn4,node-name=sn4,backing=sn3 \ -blockdev file,filename=/root/sn5,node-name=root_sn5 \ -blockdev qcow2,file=root_sn5,node-name=sn5,backing=sn4 \ -device ide-hd,drive=sn5 \ -m 8192 \ -smp 2,maxcpus=2,cores=1,threads=1,sockets=2 \ -cpu 'Penryn',+kvm_pv_unhalt \ -rtc base=utc,clock=host,driftfix=slew \ -boot order=cdn,once=c,menu=off,strict=off \ -enable-kvm \ -vnc :0 \ -monitor stdio \ -qmp tcp:0:3000,server,nowait \ 3.During guest boot, do block commit {'execute':'block-commit', 'arguments': {'device': 'sn5', 'top-node': 'sn4','job-id':'j1'}} {"timestamp": {"seconds": 1568879801, "microseconds": 692671}, "event": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "j1"}} Connection closed by foreign host. After step3: (qemu) qemu-kvm: block.c:3508: bdrv_replace_node: Assertion `!({ _Static_assert(!(sizeof(*&from->in_flight) > 8), "not expecting: " "sizeof(*&from->in_flight) > ATOMIC_REG_SIZE"); __atomic_load_n(&from->in_flight, 0); })' failed. tat.txt: Line 26: 30297 Aborted (Coredump)/usr/libexec/qemu-kvm -object throttle-group,x-bps-read=4096,id=throttle0 -blockdev file,filename=/home/kvm_autotest_root/images/rhel77-64-virtio-scsi.qcow2,node-name=file_base... Verified on qemu-kvm-rhev-2.12.0-33.el7_7.4.x86_64, the issue has been fixed, but there's a new issue. 1.Create images sn1 ~ sn5 for i in range (1,6) #qemu-img create -f qcow2 /root/sn$i 20G 2.Start guest with qemu cmds: /usr/libexec/qemu-kvm \ -object throttle-group,x-bps-read=4096,id=throttle0 \ -blockdev file,filename=/home/kvm_autotest_root/images/rhel77-64-virtio-scsi.qcow2,node-name=file_base \ -blockdev qcow2,file=file_base,node-name=base \ -blockdev throttle,throttle-group=throttle0,file=base,node-name=throttled \ -blockdev file,filename=/root/sn1,node-name=root_sn1 \ -blockdev qcow2,file=root_sn1,node-name=sn1,backing=throttled \ -blockdev file,filename=/root/sn2,node-name=root_sn2 \ -blockdev qcow2,file=root_sn2,node-name=sn2,backing=sn1 \ -blockdev file,filename=/root/sn3,node-name=root_sn3 \ -blockdev qcow2,file=root_sn3,node-name=sn3,backing=sn2 \ -blockdev file,filename=/root/sn4,node-name=root_sn4 \ -blockdev qcow2,file=root_sn4,node-name=sn4,backing=sn3 \ -blockdev file,filename=/root/sn5,node-name=root_sn5 \ -blockdev qcow2,file=root_sn5,node-name=sn5,backing=sn4 \ -device ide-hd,drive=sn5 \ -m 8192 \ -smp 2,maxcpus=2,cores=1,threads=1,sockets=2 \ -cpu 'Penryn',+kvm_pv_unhalt \ -rtc base=utc,clock=host,driftfix=slew \ -boot order=cdn,once=c,menu=off,strict=off \ -enable-kvm \ -vnc :0 \ -monitor stdio \ -qmp tcp:0:3000,server,nowait \ 3.During guest boot, do block commit from sn4 to base. {'execute':'block-commit', 'arguments': {'device': 'sn5', 'top-node': 'sn4','job-id':'j1'}} {"timestamp": {"seconds": 1568881186, "microseconds": 588417}, "event": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "j1"}} {"timestamp": {"seconds": 1568881186, "microseconds": 646349}, "event": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "j1"}} {"return": {}} {"timestamp": {"seconds": 1568881187, "microseconds": 347398}, "event": "JOB_STATUS_CHANGE", "data": {"status": "waiting", "id": "j1"}} {"timestamp": {"seconds": 1568881187, "microseconds": 347460}, "event": "JOB_STATUS_CHANGE", "data": {"status": "pending", "id": "j1"}} {"timestamp": {"seconds": 1568881187, "microseconds": 347739}, "event": "BLOCK_JOB_COMPLETED", "data": {"device": "j1", "len": 21474836480, "offset": 21474836480, "speed": 0, "type": "commit"}} {"timestamp": {"seconds": 1568881187, "microseconds": 347800}, "event": "JOB_STATUS_CHANGE", "data": {"status": "concluded", "id": "j1"}} {"timestamp": {"seconds": 1568881187, "microseconds": 347847}, "event": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "j1"}} 4. Do block commit from sn5 to base. {'execute':'block-commit', 'arguments': {'device': 'sn5','job-id':'j1'}} Connection closed by foreign host. After step4, qemu coredump with info: (qemu) qemu-kvm: block/throttle.c:214: throttle_co_drain_end: Assertion `tgm->io_limits_disabled' failed. tat.txt: line 26: 30790 Aborted (Coredump)/usr/libexec/qemu-kvm -object throttle-group,x-bps-read=4096,id=throttle0 -blockdev file,filename=/home/kvm_autotest_root/images/rhel77-64-virtio-scsi.qcow2,node-name=file_base -blockdev qcow2,file=file_base,node-name=base -blockdev throttle,throttle-group=throttle0,file=base,node-name=throttled ... #gdb -c core.30790 (gdb) bt #0 0x00007f7171f64377 in raise () at /lib64/libc.so.6 #1 0x00007f7171f65a68 in abort () at /lib64/libc.so.6 #2 0x00007f7171f5d196 in __assert_fail_base () at /lib64/libc.so.6 #3 0x00007f7171f5d242 in () at /lib64/libc.so.6 #4 0x000055f83ce3bdd1 in throttle_co_drain_end (bs=<optimized out>) at block/throttle.c:214 #5 0x000055f83ce26bce in bdrv_drain_invoke_entry (opaque=0x55f841c3ea80) at block/io.c:197 #6 0x000055f83cec5d6a in coroutine_trampoline (i0=<optimized out>, i1=<optimized out>) at util/coroutine-ucontext.c:116 #7 0x00007f7171f76180 in __start_context () at /lib64/libc.so.6 #8 0x00007ffe8e928340 in () #9 0x0000000000000000 in () Will track the new issue by a new bug, and set this bug's status to "Verified". 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:3179 |