Bug 1991913

Summary: qemu will crash after creating a mirror target and reset
Product: Red Hat Enterprise Linux 9 Reporter: bfu <bfu>
Component: qemu-kvmAssignee: Virtualization Maintenance <virt-maint>
qemu-kvm sub component: General QA Contact: virt-qe-z
Status: CLOSED DUPLICATE Docs Contact:
Severity: urgent    
Priority: urgent CC: cohuck, dhorak, hannsj_uhl, jinzhao, juzhang, knoel, ngu, pbonzini, qzhang, ribarry, smitterl, thuth, virt-maint, virt-qe-z, yiwei
Version: 9.0Keywords: Regression
Target Milestone: beta   
Target Release: ---   
Hardware: s390x   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-08-24 10:23:49 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 bfu 2021-08-10 11:43:01 UTC
Description of problem:
qemu crashed after creating a mirror target and reset system

Version-Release number of selected component (if applicable):
host kernel:5.14.0-0.rc4.35.el9.s390x
guest kernel:5.14.0-0.rc4.35.el9.s390x
qemu version:qemu-kvm-6.0.0-10.el9.s390x

How reproducible:
100%

Steps to Reproduce:
1.boot up guest with:
/usr/libexec/qemu-kvm \
    -name 'avocado-vt-vm1'  \
    -sandbox on  \
    -machine s390-ccw-virtio,memory-backend=mem-machine_mem  \
    -nodefaults  \
    -vga none \
    -m 11264 \
    -object memory-backend-ram,size=11264M,id=mem-machine_mem  \
    -smp 6,maxcpus=6,cores=3,threads=1,sockets=2  \
    -cpu 'host' \
    -chardev socket,id=chardev_serial0,server,path=/tmp/bfu,nowait \
    -device sclpconsole,id=serial0,chardev=chardev_serial0 \
    -device virtio-scsi-ccw,id=virtio_scsi_ccw0 \
    -blockdev node-name=file_image1,driver=file,auto-read-only=on,discard=unmap,aio=threads,filename=/home/bfu/kar/vt_test_images/rhel900-s390x-virtio-scsi.qcow2,cache.direct=on,cache.no-flush=off \
    -blockdev node-name=drive_image1,driver=qcow2,read-only=off,cache.direct=on,cache.no-flush=off,file=file_image1 \
    -device scsi-hd,id=image1,drive=drive_image1,write-cache=on \
    -device virtio-net-ccw,mac=9a:1f:b6:33:89:1c,id=ida57wsr,netdev=id6wg5Ut  \
    -netdev tap,id=id6wg5Ut,vhost=on  \
    -nographic  \
    -rtc base=utc,clock=host,driftfix=slew \
    -boot strict=on \
    -enable-kvm \
    -device virtio-mouse-ccw,id=input_mouse1 \
    -device virtio-keyboard-ccw,id=input_keyboard1 \
    -qmp stdio
2. create mirror through qmp
    1.{"execute": "qmp_capabilities", "id": "0xTEDyx6"}
    2.{"execute": "blockdev-create", "arguments": {"options": {"driver": "file", "filename": "/root/avocado/data/avocado-vt/mirror1.qcow2", "size": 21474836480}, "job-id": "file_mirror1"}, "id": "drLZogLG"}
    3.{"execute": "blockdev-add", "arguments": {"node-name": "file_mirror1", "driver": "file", "filename": "/root/avocado/data/avocado-vt/mirror1.qcow2", "aio": "threads", "auto-read-only": true, "discard": "unmap"}, "id": "b1HVgVKt"}
    4.{"execute": "blockdev-create", "arguments": {"options": {"driver": "qcow2", "file": "file_mirror1", "size": 21474836480}, "job-id": "drive_mirror1"}, "id": "ZtDGcR9l"}
    5. {"execute": "blockdev-add", "arguments": {"node-name": "drive_mirror1", "driver": "qcow2", "file": "file_mirror1", "read-only": false}, "id": "fgX2iuWj"}
    6. {"execute": "blockdev-mirror", "arguments": {"sync": "full", "device": "drive_image1", "target": "drive_mirror1", "job-id": "drive_image1_gDYP"}, "id": "xyAnKPcW"}
 
3.reset system through qmp
    {"execute": "system_reset", "id": "lezv4Z6B"}

Actual results:
qemu-kvm: ../util/qemu-coroutine-lock.c:57: qemu_co_queue_wait_impl: Assertion `qemu_in_coroutine()' failed.
test.sh: line 25: 201818 Aborted                 (core dumped) /usr/libexec/qemu-kvm -name 'avocado-vt-vm1' -sandbox on -machine s390-ccw-virtio,memory-backend=mem-machine_mem -nodefaults -vga none -m 11264 -object memory-backend-ram,size=11264M,id=mem-machine_mem -smp 6,maxcpus=6,cores=3,threads=1,sockets=2 -cpu 'host' -chardev socket,id=chardev_serial0,server,path=/tmp/bfu,nowait -device sclpconsole,id=serial0,chardev=chardev_serial0 -device virtio-scsi-ccw,id=virtio_scsi_ccw0 -blockdev node-name=file_image1,driver=file,auto-read-only=on,discard=unmap,aio=threads,filename=/home/bfu/kar/vt_test_images/rhel900-s390x-virtio-scsi.qcow2,cache.direct=on,cache.no-flush=off -blockdev node-name=drive_image1,driver=qcow2,read-only=off,cache.direct=on,cache.no-flush=off,file=file_image1 -device scsi-hd,id=image1,drive=drive_image1,write-cache=on -device virtio-net-ccw,mac=9a:1f:b6:33:89:1c,id=ida57wsr,netdev=id6wg5Ut -netdev tap,id=id6wg5Ut,vhost=on -nographic -rtc base=utc,clock=host,driftfix=slew -boot strict=on -enable-kvm -device virtio-mouse-ccw,id=input_mouse1 -device virtio-keyboard-ccw,id=input_keyboard1 -qmp stdio

Expected results:
{"execute": "system_reset", "id": "h8wQhuwI"}
{"return": {}, "id": "h8wQhuwI"}

{"execute": "query-jobs", "id": "rAmtkiGM"}
{"return": [{"current-progress": 21486239744, "status": "ready", "total-progress": 21486239744, "type": "mirror", "id": "drive_image1_e6k6"}], "id": "rAmtkiGM"}
Additional info:

Comment 1 Gu Nini 2021-08-10 23:22:06 UTC
This is in fact the issue recorded in https://bugzilla.redhat.com/show_bug.cgi?id=1950192#c12, we found it during the early testing of qemu-kvm-6.0.0 on RHEL9.0.0. It should be the same cause of bz1950192 since the core dump info is the same.

Comment 2 Thomas Huth 2021-08-11 06:35:27 UTC
(In reply to Gu Nini from comment #1)
> This is in fact the issue recorded in
> https://bugzilla.redhat.com/show_bug.cgi?id=1950192#c12, we found it during
> the early testing of qemu-kvm-6.0.0 on RHEL9.0.0. It should be the same
> cause of bz1950192 since the core dump info is the same.

I agree, this is likely a duplicate ... to be sure, bfu, could you please double-check whether you could trigger this issue with the Clang build of qemu-kvm, too?

Comment 3 bfu 2021-08-24 10:23:49 UTC
Version-Release number of selected component (if applicable):
host kernel:5.14.0-0.rc4.35.el9.s390x
qemu version: qemu-kvm-6.0.0-12.el9.s390x
guest kernel: 5.14.0-0.rc4.35.el9.s390x

As the test result of PASS 1-Host_RHEL.m9.u0.nographic.qcow2.virtio_scsi.up.virtio_net.Guest.RHEL.9.0.0.s390x.io-github-autotest-qemu.blockdev_mirror_vm_reboot.s390-virtio, close this bug as duplicate since the root cause is same as https://bugzilla.redhat.com/show_bug.cgi?id=1950192

*** This bug has been marked as a duplicate of bug 1950192 ***