-
Bug
-
Resolution: Done-Errata
-
Normal
-
rhel-9.4
-
qemu-kvm-8.2.0-1.el9
-
Yes
-
Important
-
Regression
-
rhel-sst-virtualization-storage
-
ssg_virtualization
-
3
-
QE ack
-
False
-
-
None
-
Red Hat Enterprise Linux
-
None
-
Pass
-
Automated
-
None
What were you trying to do that didn't work?
[QSD]Qemu coredump when create target node during live snapshot
Please provide the package NVR for which bug is seen:
kernel version:5.14.0-351.el9.x86_64
qemu-kvm version:qemu-kvm-8.1.0-0.el9.preview
How reproducible:
100%
Steps to reproduce
1. Create a data disk
#qemu-img create -f qcow2 /home/kvm_autotest_root/images/stg1.qcow2 2G
2. Start a qsd demon:
/usr/bin/qemu-storage-daemon \ --chardev socket,server=on,wait=off,path=/root/avocado/data/avocado-vt/qsd/qsd1/qsd1_monitor.sock,id=qsd_monitor_qsd1 \ --monitor chardev=qsd_monitor_qsd1,mode=control \ --blockdev '{"driver": "file", "node-name": "prot_stg1", "filename": "/home/kvm_autotest_root/images/stg1.qcow2", "auto-read-only": true, "discard": "unmap"}' \ --blockdev '{"driver": "qcow2", "node-name": "drive_stg1", "file": "prot_stg1", "read-only": false, "detect-zeroes": "unmap", "discard": "unmap"}' \ --export '{"type": "vhost-user-blk", "id": "id_stg1", "node-name": "drive_stg1", "writable": true, "addr": {"type": "unix", "path": "/root/avocado/data/avocado-vt/qsd/qsd1/qsd1_vhost_user_stg1.sock"}}' \ --pidfile /root/avocado/data/avocado-vt/qsd/qsd1/qsd1.pid \
3. Start guest with qemu cmdline:
/usr/libexec/qemu-kvm \ -S \ -name 'avocado-vt-vm1' \ -sandbox on \ -blockdev '{"node-name": "file_ovmf_code", "driver": "file", "filename": "/usr/share/OVMF/OVMF_CODE.secboot.fd", "auto-read-only": true, "discard": "unmap"}' \ -blockdev '{"node-name": "drive_ovmf_code", "driver": "raw", "read-only": true, "file": "file_ovmf_code"}' \ -blockdev '{"node-name": "file_ovmf_vars", "driver": "file", "filename": "/root/avocado/data/avocado-vt/avocado-vt-vm1_rhel930-64-virtio-scsi-ovmf_qcow2_filesystem_VARS.raw", "auto-read-only": true, "discard": "unmap"}' \ -blockdev '{"node-name": "drive_ovmf_vars", "driver": "raw", "read-only": false, "file": "file_ovmf_vars"}' \ -machine q35,pflash0=drive_ovmf_code,pflash1=drive_ovmf_vars,memory-backend=mem-machine_mem \ -device '{"id": "pcie-root-port-0", "driver": "pcie-root-port", "multifunction": true, "bus": "pcie.0", "addr": "0x1", "chassis": 1}' \ -device '{"id": "pcie-pci-bridge-0", "driver": "pcie-pci-bridge", "addr": "0x0", "bus": "pcie-root-port-0"}' \ -nodefaults \ -device '{"driver": "VGA", "bus": "pcie.0", "addr": "0x2"}' \ -m 30720 \ -object '{"size": 32212254720, "share": true, "id": "mem-machine_mem", "qom-type": "memory-backend-memfd"}' \ -smp 12,maxcpus=12,cores=6,threads=1,dies=1,sockets=2 \ -cpu 'Skylake-Server',+kvm_pv_unhalt \ -chardev socket,path=/var/tmp/monitor-qmpmonitor1-20231121-220354-rYwSkN2y,server=on,wait=off,id=qmp_id_qmpmonitor1 \ -mon chardev=qmp_id_qmpmonitor1,mode=control \ -chardev socket,path=/var/tmp/monitor-catch_monitor-20231121-220354-rYwSkN2y,server=on,wait=off,id=qmp_id_catch_monitor \ -mon chardev=qmp_id_catch_monitor,mode=control \ -device '{"ioport": 1285, "driver": "pvpanic", "id": "idNxqwSv"}' \ -chardev socket,path=/var/tmp/serial-serial0-20231121-220354-rYwSkN2y,server=on,wait=off,id=chardev_serial0 \ -device '{"id": "serial0", "driver": "isa-serial", "chardev": "chardev_serial0"}' \ -chardev socket,id=seabioslog_id_20231121-220354-rYwSkN2y,path=/var/tmp/seabios-20231121-220354-rYwSkN2y,server=on,wait=off \ -device isa-debugcon,chardev=seabioslog_id_20231121-220354-rYwSkN2y,iobase=0x402 \ -device '{"id": "pcie-root-port-1", "port": 1, "driver": "pcie-root-port", "addr": "0x1.0x1", "bus": "pcie.0", "chassis": 2}' \ -device '{"driver": "qemu-xhci", "id": "usb1", "bus": "pcie-root-port-1", "addr": "0x0"}' \ -device '{"driver": "usb-tablet", "id": "usb-tablet1", "bus": "usb1.0", "port": "1"}' \ -device '{"id": "pcie-root-port-2", "port": 2, "driver": "pcie-root-port", "addr": "0x1.0x2", "bus": "pcie.0", "chassis": 3}' \ -device '{"id": "virtio_scsi_pci0", "driver": "virtio-scsi-pci", "bus": "pcie-root-port-2", "addr": "0x0"}' \ -blockdev '{"node-name": "file_image1", "driver": "file", "auto-read-only": true, "discard": "unmap", "aio": "threads", "filename": "/home/kvm_autotest_root/images/rhel930-64-virtio-scsi-ovmf.qcow2", "cache": {"direct": true, "no-flush": false}}' \ -blockdev '{"node-name": "drive_image1", "driver": "qcow2", "read-only": false, "cache": {"direct": true, "no-flush": false}, "file": "file_image1"}' \ -device '{"driver": "scsi-hd", "id": "image1", "drive": "drive_image1", "write-cache": "on"}' \ -device '{"id": "pcie-root-port-3", "port": 3, "driver": "pcie-root-port", "addr": "0x1.0x3", "bus": "pcie.0", "chassis": 4}' \ -device '{"driver": "virtio-net-pci", "mac": "9a:80:84:43:83:8b", "id": "idsrNpF1", "netdev": "iddh80UY", "bus": "pcie-root-port-3", "addr": "0x0"}' \ -netdev tap,id=iddh80UY,vhost=on \ -vnc :0 \ -rtc base=utc,clock=host,driftfix=slew \ -boot menu=off,order=cdn,once=c,strict=off \ -device pcie-root-port,id=pcie_vubp_root_port_15,bus=pcie.0,addr=15 \ -chardev socket,path=/root/avocado/data/avocado-vt/qsd/qsd1/qsd1_vhost_user_stg1.sock,id=char_qsd_qsd1,server=off \ -device vhost-user-blk-pci,id=vubp_stg1,chardev=char_qsd_qsd1,num-queues=1,bus=pcie_vubp_root_port_15 \ -enable-kvm \ -device '{"id": "pcie_extra_root_port_0", "driver": "pcie-root-port", "multifunction": true, "bus": "pcie.0", "addr": "0x3", "chassis": 5}' \ -monitor stdio \{code} 4. Continue vm {noformat} {"execute": "cont", "id": "R2h1pAPl"} {noformat} 5. Format data disk (guest) {noformat} #parted -s "/dev/vda" #mklabel msdos parted -s "/dev/vda" #mkpart primary 0M 2048.0M #yes|mkfs.ext4 -F '/dev/vda1' #mkdir /mnt/vda1 #mount -t ext4 /dev/vda1 /mnt/vda1 {noformat} 6. Create target snapshot node {code:java} {"execute": "blockdev-create", "arguments": {"options": {"driver": "file", "filename": "/root/avocado/data/avocado-vt/sn1.qcow2", "size": 2147483648}, "job-id": "file_sn1"}, "id": "5zORPZJ4"} {"timestamp": {"seconds": 1700642228, "microseconds": 851819}, "event": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "file_sn1"}} {"timestamp": {"seconds": 1700642228, "microseconds": 851952}, "event": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "file_sn1"}} {"return": {}, "id": "5zORPZJ4"} {"timestamp": {"seconds": 1700642228, "microseconds": 852617}, "event": "JOB_STATUS_CHANGE", "data": {"status": "waiting", "id": "file_sn1"}} {"timestamp": {"seconds": 1700642228, "microseconds": 852659}, "event": "JOB_STATUS_CHANGE", "data": {"status": "pending", "id": "file_sn1"}} {"timestamp": {"seconds": 1700642228, "microseconds": 852692}, "event": "JOB_STATUS_CHANGE", "data": {"status": "concluded", "id": "file_sn1"}} {"execute": "job-dismiss", "arguments": {"id": "file_sn1"}, "id": "gHjhsfjb"} {"timestamp": {"seconds": 1700642240, "microseconds": 64189}, "event": "JOB_STATUS_CHANGE", "data": {"status": "null", "id": "file_sn1"}} {"return": {}, "id": "gHjhsfjb"} {"execute": "blockdev-add", "arguments": {"node-name": "file_sn1", "driver": "file", "filename": "/root/avocado/data/avocado-vt/sn1.qcow2", "aio": "threads", "auto-read-only": true, "discard": "unmap"}, "id": "y1ZZw0Ql"} {"return": {}, "id": "y1ZZw0Ql"} {"execute": "blockdev-create", "arguments": {"options": {"driver": "qcow2", "file": "file_sn1", "size": 2147483648}, "job-id": "drive_sn1"}, "id": "R5jkmQja"} {"timestamp": {"seconds": 1700642257, "microseconds": 187381}, "event": "JOB_STATUS_CHANGE", "data": {"status": "created", "id": "drive_sn1"}} {"timestamp": {"seconds": 1700642257, "microseconds": 187506}, "event": "JOB_STATUS_CHANGE", "data": {"status": "running", "id": "drive_sn1"}} {"return": {}, "id": "R5jkmQja"}
Actual Result:
After step6, qsd coredump with info:
aio_co_schedule: Co-routine was already scheduled in 'aio_co_schedule'
qsd.txt: line 8: 1031537 Aborted (core dumped) /usr/bin/qemu-storage-daemon --chardev socket,server=on,wait=off,path=/root/avocado/data/avocado-vt/qsd/qsd1/qsd1_monitor.sock,id=qsd_monitor_qsd1 --monitor chardev=qsd_monitor_qsd1,mode=control
qemu output info:
(qemu) qemu-kvm: Unexpected end-of-file before all data were read
GDB info:
coredumpctl debug 1031776 PID: 1031776 (qemu-storage-da) UID: 0 (root) GID: 0 (root) Signal: 6 (ABRT) Timestamp: Wed 2023-11-22 03:37:37 EST (27s ago) Command Line: /usr/bin/qemu-storage-daemon --chardev socket,server=on,wait=off,path=/root/avocado/data/avocado-vt/qsd/qsd1/qsd1_monitor.sock,id=qsd_monitor_qsd1 --monitor chardev=qsd_monitor_qsd1,mode=control --blockdev $'{"driver": "file", "node-name": "prot_stg1", "filename": "/home/kvm_autotest_root/images/stg1.qcow2", "auto-read-only": true, "discard": "unmap"}' --blockdev $'{"driver": "qcow2", "node-name": "drive_stg1", "file": "prot_stg1", "read-only": false, "detect-zeroes": "unmap", "discard": "unmap"}' --export $'{"type": "vhost-user-blk", "id": "id_stg1", "node-name": "drive_stg1", "writable": true, "addr": {"type": "unix", "path": "/root/avocado/data/avocado-vt/qsd/qsd1/qsd1_vhost_user_stg1.sock"}}' --pidfile /root/avocado/data/avocado-vt/qsd/qsd1/qsd1.pid Executable: /usr/bin/qemu-storage-daemon Control Group: /user.slice/user-0.slice/session-79.scope Unit: session-79.scope Slice: user-0.slice Session: 79 Owner UID: 0 (root) Boot ID: 2785c4243ccf45128a471d61dd824774 Machine ID: 768c6ab83c154a229d4fa3b96be4bbcb Hostname: dell-per740xd-01.lab.eng.pek2.redhat.com Storage: /var/lib/systemd/coredump/core.qemu-storage-da.0.2785c4243ccf45128a471d61dd824774.1031776.1700642257000000.zst (present) Size on Disk: 205.3K Message: Process 1031776 (qemu-storage-da) of user 0 dumped core. Stack trace of thread 1031776: #0 0x00007f87c7aa154c __pthread_kill_implementation (libc.so.6 + 0xa154c) #1 0x00007f87c7a54d06 raise (libc.so.6 + 0x54d06) #2 0x00007f87c7a287f3 abort (libc.so.6 + 0x287f3) #3 0x000056138f8cf3e0 aio_co_schedule (qemu-storage-daemon + 0x27c3e0) #4 0x000056138f75ab0a blk_root_drained_end.llvm.8165632186031058405 (qemu-storage-daemon + 0x107b0a) #5 0x000056138f767e8a bdrv_do_drained_end.llvm.1240250569700557190 (qemu-storage-daemon + 0x114e8a) #6 0x000056138f76864c bdrv_drain_all_end (qemu-storage-daemon + 0x11564c) #7 0x000056138f75e49e bdrv_graph_wrlock (qemu-storage-daemon + 0x10b49e) #8 0x000056138f725b00 bdrv_replace_child_noperm.llvm.16484823203584798674 (qemu-storage-daemon + 0xd2b00) #9 0x000056138f72522d bdrv_attach_child_common.llvm.16484823203584798674 (qemu-storage-daemon + 0xd222d) #10 0x000056138f724dd2 bdrv_root_attach_child (qemu-storage-daemon + 0xd1dd2) #11 0x000056138f753502 blk_insert_bs (qemu-storage-daemon + 0x100502) #12 0x000056138f72757d bdrv_open_inherit.llvm.16484823203584798674 (qemu-storage-daemon + 0xd457d) #13 0x000056138f7539ab blk_new_open (qemu-storage-daemon + 0x1009ab) #14 0x000056138f71d40a blk_new_open_bh.llvm.13497594760898151610 (qemu-storage-daemon + 0xca40a) #15 0x000056138f8ce701 aio_bh_poll (qemu-storage-daemon + 0x27b701) #16 0x000056138f8b8a14 aio_dispatch (qemu-storage-daemon + 0x265a14) #17 0x000056138f8cfaef aio_ctx_dispatch (qemu-storage-daemon + 0x27caef) #18 0x00007f87c80bfe2f g_main_context_dispatch (libglib-2.0.so.0 + 0x54e2f) #19 0x000056138f8d097a main_loop_wait (qemu-storage-daemon + 0x27d97a) #20 0x000056138f7023f7 main (qemu-storage-daemon + 0xaf3f7) #21 0x00007f87c7a3feb0 __libc_start_call_main (libc.so.6 + 0x3feb0) #22 0x00007f87c7a3ff60 __libc_start_main@@GLIBC_2.34 (libc.so.6 + 0x3ff60) #23 0x000056138f700055 _start (qemu-storage-daemon + 0xad055) Stack trace of thread 1031827: #0 0x00007f87c7a9c39a __futex_abstimed_wait_common (libc.so.6 + 0x9c39a) #1 0x00007f87c7a9eea4 pthread_cond_timedwait@@GLIBC_2.3.2 (libc.so.6 + 0x9eea4) #2 0x000056138f8bcc78 qemu_cond_timedwait_ts.llvm.5758719605777364021 (qemu-storage-daemon + 0x269c78) #3 0x000056138f8bcc1b qemu_cond_timedwait_impl (qemu-storage-daemon + 0x269c1b) #4 0x000056138f8d3af6 worker_thread (qemu-storage-daemon + 0x280af6) #5 0x000056138f8bd4fa qemu_thread_start.llvm.5758719605777364021 (qemu-storage-daemon + 0x26a4fa) #6 0x00007f87c7a9f802 start_thread (libc.so.6 + 0x9f802) #7 0x00007f87c7a3f450 __clone3 (libc.so.6 + 0x3f450) Stack trace of thread 1031777: #0 0x00007f87c7a3ee5d syscall (libc.so.6 + 0x3ee5d) #1 0x000056138f8bd25f qemu_event_wait (qemu-storage-daemon + 0x26a25f) #2 0x000056138f8c94b7 call_rcu_thread (qemu-storage-daemon + 0x2764b7) #3 0x000056138f8bd4fa qemu_thread_start.llvm.5758719605777364021 (qemu-storage-daemon + 0x26a4fa) #4 0x00007f87c7a9f802 start_thread (libc.so.6 + 0x9f802) #5 0x00007f87c7a3f450 __clone3 (libc.so.6 + 0x3f450) Stack trace of thread 1031778: #0 0x00007f87c7b426ff __poll (libc.so.6 + 0x1426ff) #1 0x00007f87c811509c g_main_context_iterate.constprop.0 (libglib-2.0.so.0 + 0xaa09c) #2 0x00007f87c80bf483 g_main_loop_run (libglib-2.0.so.0 + 0x54483) #3 0x000056138f718d3f iothread_run (qemu-storage-daemon + 0xc5d3f) #4 0x000056138f8bd4fa qemu_thread_start.llvm.5758719605777364021 (qemu-storage-daemon + 0x26a4fa) #5 0x00007f87c7a9f802 start_thread (libc.so.6 + 0x9f802) #6 0x00007f87c7a3f450 __clone3 (libc.so.6 + 0x3f450) ELF object binary architecture: AMD x86-64
Expected results
Create target node in qsd can success
- is blocked by
-
RHEL-14111 Rebase qemu-kvm to QEMU 8.2.0
- Closed
- links to
-
RHBA-2023:121202 qemu-kvm bug fix and enhancement update