Bug 1667330
| Summary: | [virtio-win][viostor] guest cannot shutdown after unplug virtio-blk-pci device at sometimes on windows guest. | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux 9 | Reporter: | Peixiu Hou <phou> | ||||||
| Component: | virtio-win | Assignee: | Vadim Rozenfeld <vrozenfe> | ||||||
| virtio-win sub component: | virtio-win-prewhql | QA Contact: | menli <menli> | ||||||
| Status: | CLOSED CURRENTRELEASE | Docs Contact: | |||||||
| Severity: | unspecified | ||||||||
| Priority: | medium | CC: | ailan, coli, lijin, menli, qinwang, vrozenfe, xuwei | ||||||
| Version: | 9.2 | Keywords: | Triaged | ||||||
| Target Milestone: | rc | ||||||||
| Target Release: | --- | ||||||||
| Hardware: | Unspecified | ||||||||
| OS: | Unspecified | ||||||||
| Whiteboard: | |||||||||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |||||||
| Doc Text: | Story Points: | --- | |||||||
| Clone Of: | Environment: | ||||||||
| Last Closed: | 2023-07-11 07:58:58 UTC | Type: | Bug | ||||||
| Regression: | --- | Mount Type: | --- | ||||||
| Documentation: | --- | CRM: | |||||||
| Verified Versions: | Category: | --- | |||||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||||
| Embargoed: | |||||||||
| Bug Depends On: | 1682882 | ||||||||
| Bug Blocks: | 1744438, 1897024 | ||||||||
| Attachments: |
|
||||||||
Created attachment 1521428 [details]
long time in shutting down page
Created attachment 1521430 [details]
Download the windows system event log from win2012-r2 guest
*** Bug 1683599 has been marked as a duplicate of this bug. *** Can we check if the problem is reproducible with the latest sdrivers from build 170? http://download.eng.bos.redhat.com/brewroot/packages/virtio-win-prewhql/0.1/170/win/virtio-win-prewhql-0.1.zip Thanks, Vadim. (In reply to Vadim Rozenfeld from comment #7) > Can we check if the problem is reproducible with the latest sdrivers from > build 170? > http://download.eng.bos.redhat.com/brewroot/packages/virtio-win-prewhql/0.1/ > 170/win/virtio-win-prewhql-0.1.zip > > Thanks, > Vadim. Hi vadim, Tried testwith virtio-win-prewhql-170 on win2012-r2 geust, it also can be reproduced, I tried run 100 times with automation, hit this issue 40 times. Best Regards~ Peixiu hit a similar issue for case 'migration_with_block.with_dataplane_on2off.send_shell.shutdown_vm' in auto test,failed to shutdown vm,just track it here. Host: qemu-kvm-4.2.0-19.module+el8.2.0+6296+6b821950.x86_64 kernel-4.18.0-193.el8.x86_649bf seabios-1.13.0-1.module+el8.2.0+5520+4e5817f3.x86_64 Guest: windows 2016(q35) with virtio-win-prewhql-181.iso (In reply to menli from comment #10) > hit a similar issue for case > 'migration_with_block.with_dataplane_on2off.send_shell.shutdown_vm' in auto > test,failed to shutdown vm,just track it here. > > Host: > qemu-kvm-4.2.0-19.module+el8.2.0+6296+6b821950.x86_64 > kernel-4.18.0-193.el8.x86_649bf > seabios-1.13.0-1.module+el8.2.0+5520+4e5817f3.x86_64 > > Guest: > windows 2016(q35) with virtio-win-prewhql-181.iso 1. ceate 40G data disk qemu-img create -f qcow2 /home/kvm_autotest_root/images/storage0.qcow2 40G 2. Boot guest with dataplane on src host MALLOC_PERTURB_=1 /usr/libexec/qemu-kvm \ -S \ -name 'avocado-vt-vm1' \ -sandbox on \ -machine q35 \ -device pcie-root-port,id=pcie-root-port-0,multifunction=on,bus=pcie.0,addr=0x1,chassis=1 \ -device pcie-pci-bridge,id=pcie-pci-bridge-0,addr=0x0,bus=pcie-root-port-0 \ -nodefaults \ -device VGA,bus=pcie.0,addr=0x2 \ -m 14336 \ -smp 24,maxcpus=24,cores=12,threads=1,dies=1,sockets=2 \ -cpu 'Skylake-Server',hv_stimer,hv_synic,hv_vpindex,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time,hv_frequencies,hv_runtime,hv_tlbflush,hv_reenlightenment,hv_stimer_direct,hv_ipi,+kvm_pv_unhalt \ -chardev socket,server,nowait,path=/var/tmp/avocado_3s1051dg/monitor-qmpmonitor1-20200429-015214-HL3oizxq,id=qmp_id_qmpmonitor1 \ -mon chardev=qmp_id_qmpmonitor1,mode=control \ -chardev socket,server,nowait,path=/var/tmp/avocado_3s1051dg/monitor-catch_monitor-20200429-015214-HL3oizxq,id=qmp_id_catch_monitor \ -mon chardev=qmp_id_catch_monitor,mode=control \ -device pvpanic,ioport=0x505,id=id3UJFmZ \ -chardev socket,server,nowait,path=/var/tmp/avocado_3s1051dg/serial-serial0-20200429-015214-HL3oizxq,id=chardev_serial0 \ -device isa-serial,id=serial0,chardev=chardev_serial0 \ -chardev socket,id=seabioslog_id_20200429-015214-HL3oizxq,path=/var/tmp/avocado_3s1051dg/seabios-20200429-015214-HL3oizxq,server,nowait \ -device isa-debugcon,chardev=seabioslog_id_20200429-015214-HL3oizxq,iobase=0x402 \ -device pcie-root-port,id=pcie-root-port-1,port=0x1,addr=0x1.0x1,bus=pcie.0,chassis=2 \ -device qemu-xhci,id=usb1,bus=pcie-root-port-1,addr=0x0 \ -device usb-tablet,id=usb-tablet1,bus=usb1.0,port=1 \ -object iothread,id=iothread0 \ -object iothread,id=iothread1 \ -blockdev node-name=file_image1,driver=file,aio=threads,filename=/home/kvm_autotest_root/images/win2016-64-virtio.qcow2,cache.direct=on,cache.no-flush=off \ -blockdev node-name=drive_image1,driver=qcow2,cache.direct=on,cache.no-flush=off,file=file_image1 \ -device pcie-root-port,id=pcie-root-port-2,port=0x2,addr=0x1.0x2,bus=pcie.0,chassis=3 \ -device virtio-blk-pci,id=image1,drive=drive_image1,bootindex=0,write-cache=on,iothread=iothread0,bus=pcie-root-port-2,addr=0x0 \ -blockdev node-name=file_stg0,driver=file,aio=threads,filename=/home/kvm_autotest_root/images/storage0.qcow2,cache.direct=on,cache.no-flush=off \ -blockdev node-name=drive_stg0,driver=qcow2,cache.direct=on,cache.no-flush=off,file=file_stg0 \ -device pcie-root-port,id=pcie-root-port-3,port=0x3,addr=0x1.0x3,bus=pcie.0,chassis=4 \ -device virtio-blk-pci,id=stg0,drive=drive_stg0,bootindex=1,write-cache=on,iothread=iothread1,bus=pcie-root-port-3,addr=0x0 \ -device pcie-root-port,id=pcie-root-port-4,port=0x4,addr=0x1.0x4,bus=pcie.0,chassis=5 \ -device virtio-net-pci,mac=9a:49:63:b8:8b:03,id=id4BeT93,netdev=id3m5Beo,bus=pcie-root-port-4,addr=0x0 \ -netdev tap,id=id3m5Beo,vhost=on,vhostfd=21,fd=15 \ -blockdev node-name=file_cd1,driver=file,read-only=on,aio=threads,filename=/home/kvm_autotest_root/iso/windows/winutils.iso,cache.direct=on,cache.no-flush=off \ -blockdev node-name=drive_cd1,driver=raw,read-only=on,cache.direct=on,cache.no-flush=off,file=file_cd1 \ -device ide-cd,id=cd1,drive=drive_cd1,bootindex=2,write-cache=on,bus=ide.0,unit=0 \ -vnc :0 \ -rtc base=localtime,clock=host,driftfix=slew \ -boot menu=off,order=cdn,once=c,strict=off \ -enable-kvm \ -device pcie-root-port,id=pcie_extra_root_port_0,multifunction=on,bus=pcie.0,addr=0x3,chassis=6 3. Boot guest without dataplane on dst host. MALLOC_PERTURB_=1 /usr/libexec/qemu-kvm \ -S \ -name 'avocado-vt-vm1' \ -sandbox on \ -machine q35 \ -device pcie-root-port,id=pcie-root-port-0,multifunction=on,bus=pcie.0,addr=0x1,chassis=1 \ -device pcie-pci-bridge,id=pcie-pci-bridge-0,addr=0x0,bus=pcie-root-port-0 \ -nodefaults \ -device VGA,bus=pcie.0,addr=0x2 \ -m 14336 \ -smp 24,maxcpus=24,cores=12,threads=1,dies=1,sockets=2 \ -cpu 'Skylake-Server',hv_stimer,hv_synic,hv_vpindex,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time,hv_frequencies,hv_runtime,hv_tlbflush,hv_reenlightenment,hv_stimer_direct,hv_ipi,+kvm_pv_unhalt \ -chardev socket,server,nowait,path=/var/tmp/avocado_3s1051dg/monitor-qmpmonitor1-20200429-015247-jtpIzwSr,id=qmp_id_qmpmonitor1 \ -mon chardev=qmp_id_qmpmonitor1,mode=control \ -chardev socket,server,nowait,path=/var/tmp/avocado_3s1051dg/monitor-catch_monitor-20200429-015247-jtpIzwSr,id=qmp_id_catch_monitor \ -mon chardev=qmp_id_catch_monitor,mode=control \ -device pvpanic,ioport=0x505,id=idZ7GSeT \ -chardev socket,server,nowait,path=/var/tmp/avocado_3s1051dg/serial-serial0-20200429-015247-jtpIzwSr,id=chardev_serial0 \ -device isa-serial,id=serial0,chardev=chardev_serial0 \ -chardev socket,id=seabioslog_id_20200429-015247-jtpIzwSr,path=/var/tmp/avocado_3s1051dg/seabios-20200429-015247-jtpIzwSr,server,nowait \ -device isa-debugcon,chardev=seabioslog_id_20200429-015247-jtpIzwSr,iobase=0x402 \ -device pcie-root-port,id=pcie-root-port-1,port=0x1,addr=0x1.0x1,bus=pcie.0,chassis=2 \ -device qemu-xhci,id=usb1,bus=pcie-root-port-1,addr=0x0 \ -device usb-tablet,id=usb-tablet1,bus=usb1.0,port=1 \ -object iothread,id=iothread0 \ -object iothread,id=iothread1 \ -blockdev node-name=file_image1,driver=file,aio=threads,filename=/home/kvm_autotest_root/images/win2016-64-virtio.qcow2,cache.direct=on,cache.no-flush=off \ -blockdev node-name=drive_image1,driver=qcow2,cache.direct=on,cache.no-flush=off,file=file_image1 \ -device pcie-root-port,id=pcie-root-port-2,port=0x2,addr=0x1.0x2,bus=pcie.0,chassis=3 \ -device virtio-blk-pci,id=image1,drive=drive_image1,bootindex=0,write-cache=on,bus=pcie-root-port-2,addr=0x0 \ -blockdev node-name=file_stg0,driver=file,aio=threads,filename=/home/kvm_autotest_root/images/storage0.qcow2,cache.direct=on,cache.no-flush=off \ -blockdev node-name=drive_stg0,driver=qcow2,cache.direct=on,cache.no-flush=off,file=file_stg0 \ -device pcie-root-port,id=pcie-root-port-3,port=0x3,addr=0x1.0x3,bus=pcie.0,chassis=4 \ -device virtio-blk-pci,id=stg0,drive=drive_stg0,bootindex=1,write-cache=on,bus=pcie-root-port-3,addr=0x0 \ -device pcie-root-port,id=pcie-root-port-4,port=0x4,addr=0x1.0x4,bus=pcie.0,chassis=5 \ -device virtio-net-pci,mac=9a:49:63:b8:8b:03,id=idZTC1OV,netdev=idD0Xgvl,bus=pcie-root-port-4,addr=0x0 \ -netdev tap,id=idD0Xgvl,vhost=on,vhostfd=42,fd=27 \ -blockdev node-name=file_cd1,driver=file,read-only=on,aio=threads,filename=/home/kvm_autotest_root/iso/windows/winutils.iso,cache.direct=on,cache.no-flush=off \ -blockdev node-name=drive_cd1,driver=raw,read-only=on,cache.direct=on,cache.no-flush=off,file=file_cd1 \ -device ide-cd,id=cd1,drive=drive_cd1,bootindex=2,write-cache=on,bus=ide.0,unit=0 \ -vnc :1 \ -rtc base=localtime,clock=host,driftfix=slew \ -boot menu=off,order=cdn,once=c,strict=off \ -enable-kvm \ -device pcie-root-port,id=pcie_extra_root_port_0,multifunction=on,bus=pcie.0,addr=0x3,chassis=6 \ -incoming tcp:0:5846 4.do migration 5.format data disk in diskpart 6.run iozone on data disk D:\Iozone\iozone.exe -az -b C:\E_stress_test -g 1g -y 32k -i 0 -i 1 -I -f E:\iozone_test 7.shut down guest shutdown -t 0 -s After step7,guest fail to shutdown. Can you check if there is event 129 or any other storage/disk related events in the system events log file triggered by system during shutting down the system? Thank you, Vadim. (In reply to Vadim Rozenfeld from comment #12) > Can you check if there is event 129 or any other > related events in the system events log file triggered by system > during shutting down the system? > > Thank you, > Vadim. Hi vadim, I check the system events log,only found error event 10016,no storage/disk related events. Thanks Menghuan (In reply to menli from comment #14) > hit the similar issue when do reboot operation after unplug a disk and hit > BSOD.(hit this issue quite often this time) > > Host: > qemu-kvm-4.2.0-21.module+el8.2.1+6586+8b7713b9.x86_64 > kernel-4.18.0-193.el8.x86_64 > seabios-1.13.0-1.module+el8.2.0+5520+4e5817f3.x86_64 > > Guest: > Win8.1-32-q35 > virtio-win-prewhql-184 > > The completed dump log is saved: > > http://fileshare.englab.nay.redhat.com/pub/section2/coredump/bz1667330/ > Memory-win8.1.dmp > > Check the system events log,found Warning Event ID 157 ,219 and error Event > ID 1001,hope it will be useful for this issue. > > > > Thanks > Menghuan Can you please upload the events log file as well? Thanks, Vadim. Sometimes reboot failed after hotplug /unplug
4.18.0-226.el8.x86_64
qemu-kvm-core-4.2.0-30.module+el8.3.0+7298+c26a06b8.x86_64
seabios-1.13.0-1.module+el8.3.0+6423+e4cb6418.x86_64
Test steps:
1./usr/libexec/qemu-kvm \
-S \
-name 'avocado-vt-vm1' \
-sandbox on \
-machine q35 \
-device pcie-root-port,id=pcie-root-port-0,multifunction=on,bus=pcie.0,addr=0x1,chassis=1 \
-device pcie-pci-bridge,id=pcie-pci-bridge-0,addr=0x0,bus=pcie-root-port-0 \
-nodefaults \
-device VGA,bus=pcie.0,addr=0x2 \
-m 15360 \
-smp 12,maxcpus=12,cores=6,threads=1,dies=1,sockets=2 \
-cpu 'Opteron_G5',hv_stimer,hv_synic,hv_vpindex,hv_relaxed,hv_spinlocks=0xfff,hv_vapic,hv_time,hv_frequencies,hv_runtime,hv_tlbflush,hv_reenlightenment,hv_stimer_direct,hv_ipi,+kvm_pv_unhalt \
-chardev socket,path=/var/tmp/avocado_pm9mpl_2/monitor-qmpmonitor1-20200722-011514-fXJXRHcC,id=qmp_id_qmpmonitor1,server,nowait \
-mon chardev=qmp_id_qmpmonitor1,mode=control \
-chardev socket,path=/var/tmp/avocado_pm9mpl_2/monitor-catch_monitor-20200722-011514-fXJXRHcC,id=qmp_id_catch_monitor,server,nowait \
-mon chardev=qmp_id_catch_monitor,mode=control \
-device pvpanic,ioport=0x505,id=idhEF81t \
-chardev socket,path=/var/tmp/avocado_pm9mpl_2/serial-serial0-20200722-011514-fXJXRHcC,id=chardev_serial0,server,nowait \
-device isa-serial,id=serial0,chardev=chardev_serial0 \
-chardev socket,id=seabioslog_id_20200722-011514-fXJXRHcC,path=/var/tmp/avocado_pm9mpl_2/seabios-20200722-011514-fXJXRHcC,server,nowait \
-device isa-debugcon,chardev=seabioslog_id_20200722-011514-fXJXRHcC,iobase=0x402 \
-device pcie-root-port,id=pcie-root-port-1,port=0x1,addr=0x1.0x1,bus=pcie.0,chassis=2 \
-device qemu-xhci,id=usb1,bus=pcie-root-port-1,addr=0x0 \
-device usb-tablet,id=usb-tablet1,bus=usb1.0,port=1 \
-object iothread,id=iothread0 \
-object iothread,id=iothread1 \
-blockdev node-name=file_image1,driver=file,aio=threads,filename=/home/kvm_autotest_root/images/win2019-64-virtio.qcow2,cache.direct=on,cache.no-flush=off \
-blockdev node-name=drive_image1,driver=qcow2,cache.direct=on,cache.no-flush=off,file=file_image1 \
-device pcie-root-port,id=pcie-root-port-2,port=0x2,addr=0x1.0x2,bus=pcie.0,chassis=3 \
-device virtio-blk-pci,id=image1,drive=drive_image1,bootindex=0,write-cache=on,bus=pcie-root-port-2,addr=0x0,iothread=iothread0 \
-device pcie-root-port,id=pcie-root-port-3,port=0x3,addr=0x1.0x3,bus=pcie.0,chassis=4 \
-device virtio-net-pci,mac=9a:d9:c2:3c:da:ae,id=idr2hpK1,netdev=idoofjVJ,bus=pcie-root-port-3,addr=0x0 \
-netdev tap,id=idoofjVJ,vhost=on,vhostfd=21,fd=15 \
-blockdev node-name=file_cd1,driver=file,read-only=on,aio=threads,filename=/home/kvm_autotest_root/iso/windows/winutils.iso,cache.direct=on,cache.no-flush=off \
-blockdev node-name=drive_cd1,driver=raw,read-only=on,cache.direct=on,cache.no-flush=off,file=file_cd1 \
-device ide-cd,id=cd1,drive=drive_cd1,bootindex=1,write-cache=on,bus=ide.0,unit=0 \
-vnc :0 \
-rtc base=localtime,clock=host,driftfix=slew \
-boot menu=off,order=cdn,once=c,strict=off \
-enable-kvm \
-device pcie-root-port,id=pcie_extra_root_port_0,multifunction=on,bus=pcie.0,addr=0x3,chassis=5
2.hotplug disk
{"execute": "blockdev-add", "arguments": {"node-name": "file_stg0", "driver": "file", "aio": "threads", "filename": "/home/kvm_autotest_root/images/storage0.qcow2", "cache": {"direct": true, "no-flush": false}}, "id": "t5gzWAv0"}
{"execute": "blockdev-add", "arguments": {"node-name": "drive_stg0", "driver": "qcow2", "cache": {"direct": true, "no-flush": false}, "file": "file_stg0"}, "id": "y5hD3thX"}
{"execute": "device_add", "arguments": {"driver": "virtio-blk-pci", "id": "stg0", "drive": "drive_stg0", "write-cache": "on", "bus": "pcie_extra_root_port_0", "addr": "0x0", "iothread": "iothread1"}, "id": "7qjgpmDO"}
3.reboot guest
4 houunplug disk
{"execute": "device_del", "arguments": {"id": "stg0"}, "id": "UlINKVie"}
{"execute": "blockdev-del", "arguments": {"node-name": "drive_stg0"}, "id": "5toNSNyg"}
{"execute": "blockdev-del", "arguments": {"node-name": "file_stg0"}, "id": "xWonev5b"}
5.reboot guest
shutdown /r /f /t 0
It will hang on step 5.
Reproduced by automation:
python ConfigTest.py --testcase=block_hotplug.block_virtio.fmt_qcow2.default.with_plug.with_reboot.one_pci.q35 --iothread_scheme=roundrobin --nr_iothreads=2 --platform=x86_64 --guestname=Win2019 --driveformat=virtio_blk --nicmodel=virtio_net --imageformat=qcow2 --machines=q35 --customsparams="qemu_force_use_drive_expression = no\nimage_aio=threads\ncd_format=ide"
hit the same issue like comment 11 host: qemu-kvm-5.1.0-15.module+el8.3.1+8772+a3fdeccd.x86_64 kernel-4.18.0-240.el8.x86_64 seabios-1.14.0-1.module+el8.3.0+7638+07cf13d2.x86_64 guest: win8.1 32 q35, win8.1-32 pc virtio-win-prewhql-0.1-191.iso hit the same issue like comment 11 host: kernel-4.18.0-278.el8.dt3.x86_64 qemu-kvm-5.2.0-4.module+el8.4.0+9676+589043b9.x86_64 virtio-win-prewhql-193 seabios-bin-1.14.0-1.module+el8.4.0+8855+a9e237a9.noarch guest: win10 20H2 hit the same issue on win10-64 RHEL-8.4.0-20210217.d.2 kernel-4.18.0-287.el8.dt3.x86_64 qemu-kvm-5.2.0-7.module+el8.4.0+9943+d64b3717.x86_64 seabios-1.14.0-1.module+el8.4.0+8855+a9e237a9.x86_64 virtio-win-prewhql-195 auto case: block_hotplug.block_virtio.fmt_raw.default.with_plug.with_shutdown.after_unplug.one_pci hit the same issue on win2016(q35) like comment 11. RHEL-8.5.0-20210609.n.3 qemu-kvm-4.2.0-51.module+el8.5.0+11141+9dff516f.x86_64 seabios-bin-1.13.0-2.module+el8.3.0+7353+9de0a3cc.noarch kernel-4.18.0-310.el8.x86_64 virtio-win-prewhql-202 auto case: migration_with_block.default.with_dataplane_on2off.send_shell.shutdown_vm hit the same issue on win10-32 when run virtio-win-prewhql-205 viostor testing on rhel850-av
kernel-4.18.0-324.el8.x86_64
qemu-kvm-6.0.0-25.module+el8.5.0+11890+8e7c3f51.x86_64
virtio-win-prewhql-205
seabios-bin-1.14.0-1.module+el8.4.0+8855+a9e237a9.noarch
RHEL-8.5.0-20210727.n.0
auto case:
block_hotplug.block_virtio.fmt_raw.with_plug.with_shutdown.after_unplug.one_pci
hit a similar issue for case 'migration_with_block.with_dataplane_on2off.send_shell.shutdown_vm' in auto test,failed to shutdown vm. Host: qemu-kvm-docs-6.2.0-11.el9_0.2.x86_64 kernel-5.14.0-70.7.1.el9_0.x86_64 seabios-bin-1.15.0-1.el9.noarch Guest: win10 21h2_32 with virtio-win-prewhql-219.iso Hi Vadim, Actually I didn't hit this issue recently, but could we extend the "Stale Date" first and keep watch it for some time ? Thanks Menghuan Closing this case based on https://bugzilla.redhat.com/show_bug.cgi?id=1667330#c39. Please feel frre to reopen it in case you have any similar issues. Change status to close as currentrealse, since it can be reproduced till 2022-05-06, just recently, we cannot reproduce it~ Any Questions please let me known, thanks~ BR~ Peixiu |
Description of problem: After unplug virtio-blk-pci device, shutdown the windows vm, the vm cannot be shutdown, In shutting down page, the status icon is always in circles, waiting 17 hours, also same, no bsod or others status. It's not 100% reproduced, with automation test, tested 10 times, hit 1 time. with manually test, tested about 5 times, hit 1 time. Version-Release number of selected component (if applicable): kernel-4.18.0-58.el8.x86_64 qemu-kvm-2.12.0-57.module+el8+2683+02b3b955.x86_64 virtio-win-prewhql-163 seabios-bin-1.11.1-3.module+el8+2529+a9686a4d.noarch How reproducible: 10% Steps to Reproduce: 1.Boot the guest up: ------------------------------------------------------------------------------ MALLOC_PERTURB_=1 /usr/libexec/qemu-kvm \ -name 'avocado-vt-vm1' \ -machine q35 \ -nodefaults \ -device VGA,bus=pcie.0,addr=0x1 \ -device pcie-root-port,id=pcie_root_port_0,slot=2,chassis=2,addr=0x2,bus=pcie.0 \ -device pcie-root-port,id=pcie_root_port_1,slot=3,chassis=3,addr=0x3,bus=pcie.0 \ -device pcie-root-port,id=pcie_root_port_2,slot=4,chassis=4,addr=0x4,bus=pcie.0 \ -device pvpanic,ioport=0x505,id=idiQ69rd \ -device pcie-root-port,id=pcie.0-root-port-5,slot=5,chassis=5,addr=0x5,bus=pcie.0 \ -device qemu-xhci,id=usb1,bus=pcie.0-root-port-5,addr=0x0 \ -drive id=drive_image1,if=none,snapshot=off,aio=threads,cache=none,format=qcow2,file=/home/kvm_autotest_root/images/win2012-64r2-virtio.qcow2 \ -device pcie-root-port,id=pcie.0-root-port-6,slot=6,chassis=6,addr=0x6,bus=pcie.0 \ -device virtio-blk-pci,id=image1,drive=drive_image1,bootindex=0,bus=pcie.0-root-port-6,addr=0x0 \ -device pcie-root-port,id=pcie.0-root-port-7,slot=7,chassis=7,addr=0x7,bus=pcie.0 \ -device virtio-net-pci,mac=9a:f9:fa:fb:fc:fd,id=idMMmR7j,vectors=4,netdev=idhlyOBa,bus=pcie.0-root-port-7,addr=0x0 \ -netdev tap,id=idhlyOBa,vhost=on \ -m 14336 \ -smp 24,maxcpus=24,cores=12,threads=1,sockets=2 \ -cpu 'Skylake-Server',+kvm_pv_unhalt,hv_relaxed,hv_spinlocks=0x1fff,hv_vapic,hv_time \ -drive id=drive_cd1,if=none,snapshot=off,aio=threads,cache=none,media=cdrom,file=/home/kvm_autotest_root/iso/windows/winutils.iso \ -device ide-cd,id=cd1,drive=drive_cd1,bootindex=1,bus=ide.0,unit=0 \ -device usb-tablet,id=usb-tablet1,bus=usb1.0,port=1 \ -vnc :0 \ -rtc base=localtime,clock=host,driftfix=slew \ -boot order=cdn,once=c,menu=off,strict=off \ -enable-kvm \ -monitor stdio \ -qmp tcp:0:4446,server,nowait \ ------------------------------------------------------------------------------- 2. hot-plug a drive: (qemu)drive_add auto id=drive_stg0,if=none,snapshot=off,aio=threads,cache=none,format=raw,file=/home/storage0.raw OK 3. hot-plug a virtio-blk-pci device: #telnet host_ip 4446 {"execute": "qmp_capabilities"} {"execute":"device_add","arguments":{"driver":"virtio-blk-pci","id":"stg0","drive":"drive_stg0","bus":"pcie_root_port_0"}} 4. Format disk: C:\>echo list disk > disk && echo exit >> disk && diskpart /s disk C:\>echo list disk > disk &&echo select disk 1 >> disk && echo detail disk >> disk && echo exit>> disk && diskpart /s disk&& del /f disk C:\>echo list disk > disk &&echo select disk 1 >> disk && echo create partition primary >> disk && echo exit>> disk && diskpart /s disk&& del /f disk C:\>echo list disk > disk &&echo select disk 1 >> disk && echo list partition >> disk && echo select partition 1 >> disk && echo assign letter=I >> disk && echo format fs=ntfs quick >> disk && echo exit>> disk && diskpart /s disk&& del /f disk 5. Do iozone test on new added disk: C:\>D:\Iozone\iozone.exe -azR -r 64k -n 125M -g 512M -M -i 0 -i 1 -b I:\iozone_test -f I:\testfile 6. After iozone test finished, unplug the disk: {'execute': 'device_del', 'arguments': {'id': 'stg0'}, 'id': '4EnspY6c'} 7. Shutdown the guest vm. C:\>shutdown -s Actual results: In shutting down page, the status icon is always in circles, waiting 17 hours, no bsod or others status. Expected results: shutdown vm normally Additional info: 1. Also hit on win10-64, win2019, win7-64 guests. 2. Reproduced this bug with virtio-win-prewhql-160, so it's not a regression bug. 3. Tried test on rhel8.0 guest 10 times, not hit this issue. 4. Also reproduced on rhel7.6 host with win2012-r2 guest.