-
Bug
-
Resolution: Unresolved
-
Undefined
-
None
-
rhel-9.4.z
-
None
-
None
-
Important
-
rhel-virt-storage
-
None
-
False
-
False
-
-
None
-
None
-
None
-
None
-
Unspecified
-
Unspecified
-
Unspecified
-
None
What were you trying to do that didn't work?
Pass through the multipath device as scsi-block disk of the guest
Keep switching the active path on the host to simulate the failover scenario.
Execute the S3-PR relevant command in the guest multiple times
Each round includes register/reserve/release/unregister key
What is the impact of this issue to you?
It results in the VM being paused status
Please provide the package NVR for which the bug is seen:
Red Hat Enterprise Linux release 9.4 (Plow)
5.14.0-427.77.1.el9_4.x86_64
device-mapper-1.02.197-2.el9.x86_64
device-mapper-multipath-0.8.7-27.el9_4.3.x86_64
qemu-kvm-8.2.0-11.el9_4.14.x86_64
seabios-bin-1.16.3-2.el9_4.1.noarch
edk2-ovmf-20231122-6.el9_4.9.noarch
libvirt-10.0.0-6.17.el9_4.x86_64
How reproducible is this bug?:
100%
Steps to reproduce
multipath.conf
defaults
{ user_friendly_names yes find_multipaths yes enable_foreign "^$" reservation_key file #detect_pgpolicy no }overrides
{ path_grouping_policy failover }
1. Boot vm with the passthrough multipath device /usr/libexec/qemu-kvm \ -name node1 \ -machine q35 \ -nodefaults \ -device VGA,bus=pcie.0,addr=0x1 \ -device pvpanic,ioport=0x505,id=idZcGD6F \ -device pcie-root-port,id=pcie-root-port-2,slot=2,chassis=2,addr=0x2,bus=pcie.0 \ -device qemu-xhci,id=usb1,bus=pcie-root-port-2,addr=0x0 \ -device pcie-root-port,id=pcie-root-port-3,slot=3,chassis=3,addr=0x3,bus=pcie.0 \ -device pcie-root-port,id=pcie-root-port-4,slot=4,chassis=4,addr=0x4,bus=pcie.0 \ -device pcie-root-port,id=pcie-root-port-5,slot=5,chassis=5,addr=0x5,bus=pcie.0 \ -device pcie-root-port,id=pcie-root-port-6,slot=6,chassis=6,addr=0x6,bus=pcie.0 \ -device virtio-scsi-pci,id=scsi0,bus=pcie-root-port-3,addr=0x0 \ -device virtio-scsi-pci,id=scsi1,bus=pcie-root-port-4,addr=0x0,max_sectors=512 \ -object pr-manager-helper,id=helper0,path=/var/run/qemu-pr-helper.sock \ -blockdev driver=file,node-name=file_disk,cache.direct=off,cache.no-flush=on,filename=/home/kvm_autotest_root/images/rhel960-64-virtio-scsi.qcow2 \ -blockdev driver=qcow2,node-name=protocol_disk,file=file_disk \ -device scsi-hd,drive=protocol_disk,bus=scsi0.0,serial=node1,id=os_disk,bootindex=1 \ -blockdev driver=host_device,filename=/dev/mapper/mpathd,cache.direct=on,node-name=drive_disk,pr-manager=helper0 \ -blockdev driver=raw,node-name=host_disk,file=drive_disk \ -device scsi-block,bus=scsi1.0,drive=host_disk,id=scsi0-0-0-0,bootindex=2,werror=stop,rerror=stop \ -device virtio-net-pci,mac=9a:95:96:97:98:91,id=idKSMZST,netdev=idWCSiU5,bus=pcie-root-port-6,addr=0x0 \ -netdev tap,id=idWCSiU5,script=/etc/qemu-ifup,vhost=on \ -m 12G \ -cpu host,vmx,+kvm_pv_unhalt \ -smp 8,maxcpus=8,cores=4,threads=1,sockets=2 \ -device usb-tablet,id=usb-tablet1,bus=usb1.0,port=1 \ -vnc :7 \ -rtc base=localtime,clock=host,driftfix=slew \ -boot order=cdn,once=c,menu=off,strict=off \ -enable-kvm \ -monitor stdio \ -chardev socket,id=socket-serial,path=/var/tmp/socket-serial,logfile=/var/tmp/file-serial.log,mux=on,server=on,wait=off \ -serial chardev:socket-serial \ -chardev file,path=/var/tmp/file-bios.log,id=file-bios \ -device isa-debugcon,chardev=file-bios,iobase=0x402 \ -chardev socket,id=socket-qmp,path=/var/tmp/socket-qmp,logfile=/var/tmp/file-qmp.log,mux=on,server=on,wait=off \ -mon chardev=socket-qmp,mode=control \ -chardev socket,id=socket-hmp,path=/var/tmp/socket-hmp,logfile=/var/tmp/file-hmp.log,mux=on,server=on,wait=off \ -mon chardev=socket-hmp,mode=readline 2. Run the switch script on the host side ./multipath-switch.sh -c2 -m mpathd -i2 -a 3. Run S3-PR integration test on the disk in the guest ./wloop.sh 1 10000 1 0 "./pr_test.sh -c9 -d /dev/sdb -i2 -l logs/xdell1-pr.log"; pected results
Expected results
VM keeps running
The guest test script run succeeded
Actual results
VM paused due to io error
, "event": "BLOCK_IO_ERROR", "data": {"device": "", "nospace": false, "node-name": "host_disk", "reason": "Resource temporarily unavailable", "operation": "read", "action": "stop"}}