Bug 1714891

Summary: Guest with persistent reservation manager for a disk fails to start
Product: Red Hat Enterprise Linux Advanced Virtualization Reporter: Xueqiang Wei <xuwei>
Component: qemu-kvmAssignee: Markus Armbruster <armbru>
Status: CLOSED ERRATA QA Contact: Xueqiang Wei <xuwei>
Severity: unspecified Docs Contact:
Priority: high    
Version: 8.1CC: armbru, coli, ddepaula, dyuan, jinzhao, juzhang, knoel, lmen, ngu, pbonzini, qzhang, virt-maint, yanqzhan, yisun
Target Milestone: rcKeywords: Regression
Target Release: 8.1   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: qemu-kvm-4.0.0-4.module+el8.1.0+3356+cda7f1ee Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: 1714160
: 1720047 (view as bug list) Environment:
Last Closed: 2019-11-06 07:15:20 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: 1714160    
Bug Blocks:    

Comment 1 Xueqiang Wei 2019-05-29 06:23:10 UTC
Hit this issue on below versions:

kernel-4.18.0-85.el8.x86_64
qemu-kvm-4.0.0-1.module+el8.1.0+3225+a8268fde

Comment 2 Markus Armbruster 2019-06-06 18:38:37 UTC
Simplified reproducer:
$ qemu-kvm -object pr-manager-helper,id=pr-helper0,path=/tmp/pr-helper0.sock-drive -drive file=/dev/mapper/crypt,file.pr-manager=pr-helper0,format=raw,if=none

Fails with "No persistent reservation manager with id 'pr-helper0".

Fixed upstream in commit 9ea18ed25a36527167e9676f25d983df5e7f76e6.

Comment 3 Danilo de Paula 2019-06-11 23:10:35 UTC
Fix included in qemu-kvm-4.0.0-4.module+el8.1.0+3356+cda7f1ee

Comment 5 Xueqiang Wei 2019-06-13 03:28:10 UTC
tested with qemu-kvm-4.0.0-4.module+el8.1.0+3356+cda7f1ee, not hit this issue. So set status to VERIFIED.

Versions:
kernel-4.18.0-100.el8.x86_64
qemu-kvm-4.0.0-4.module+el8.1.0+3356+cda7f1ee


1. start service
   # systemctl start qemu-pr-helper
   # systemctl status qemu-pr-helper
● qemu-pr-helper.service - Persistent Reservation Daemon for QEMU
   Loaded: loaded (/usr/lib/systemd/system/qemu-pr-helper.service; static; vend>
   Active: active (running) since Wed 2019-06-12 22:22:15 EDT; 3s ago
 Main PID: 31032 (qemu-pr-helper)
    Tasks: 2 (limit: 26213)
   Memory: 1.7M
   CGroup: /system.slice/qemu-pr-helper.service
           └─31032 /usr/bin/qemu-pr-helper

2. boot guest with below cmd lines
/usr/libexec/qemu-kvm \
    -S  \
    -name 'avocado-vt-vm1'  \
    -sandbox off  \
    -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  \
    -chardev socket,id=qmp_id_qmpmonitor1,path=/var/tmp/avocado_w2u90exl/monitor-qmpmonitor1-20181127-024837-wdAVx2FL,server,nowait \
    -mon chardev=qmp_id_qmpmonitor1,mode=control  \
    -chardev socket,id=qmp_id_catch_monitor,path=/var/tmp/avocado_w2u90exl/monitor-catch_monitor-20181127-024837-wdAVx2FL,server,nowait \
    -mon chardev=qmp_id_catch_monitor,mode=control \
    -device pvpanic,ioport=0x505,id=idulvcka  \
    -chardev socket,id=serial_id_serial0,path=/var/tmp/avocado_w2u90exl/serial-serial0-20181127-024837-wdAVx2FL,server,nowait \
    -device isa-serial,chardev=serial_id_serial0  \
    -chardev socket,id=seabioslog_id_20181127-024837-wdAVx2FL,path=/var/tmp/avocado_w2u90exl/seabios-20181127-024837-wdAVx2FL,server,nowait \
    -device isa-debugcon,chardev=seabioslog_id_20181127-024837-wdAVx2FL,iobase=0x402 \
    -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 \
    -object iothread,id=iothread0 \
    -device pcie-root-port,id=pcie.0-root-port-6,slot=6,chassis=6,addr=0x6,bus=pcie.0 \
    -device virtio-scsi-pci,iothread=iothread0,id=virtio_scsi_pci0,bus=pcie.0-root-port-6,addr=0x0 \
    -blockdev driver=file,cache.direct=on,cache.no-flush=off,filename=/home/kvm_autotest_root/images/rhel810-64-virtio-scsi.qcow2,node-name=my_file \
    -blockdev driver=qcow2,node-name=my,file=my_file,cache.direct=on,cache.no-flush=off \
    -device scsi-hd,drive=my,bus=virtio_scsi_pci0.0,write-cache=on \
    -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:34:35:36:37:38,id=idyb3F88,vectors=4,netdev=idTAFS0s,bus=pcie.0-root-port-7,addr=0x0  \
    -netdev tap,id=idTAFS0s,vhost=on \
    -m 4G  \
    -smp 12,maxcpus=12,cores=6,threads=1,sockets=2  \
    -cpu 'Opteron_G5',+kvm_pv_unhalt \
    -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:4444,server,nowait \
    -device pcie-root-port,id=pcie.0-root-port-9,slot=9,chassis=9,addr=0x9,bus=pcie.0 \
    -object pr-manager-helper,id=helper0,path=/var/run/qemu-pr-helper.sock \
    -device virtio-scsi-pci,id=virtio_scsi_pci1,bus=pcie.0-root-port-9,addr=0x0 \
    -blockdev driver=host_device,cache.direct=off,cache.no-flush=on,filename=/dev/mapper/mpatha,node-name=host_disk4,pr-manager=helper0 \
    -blockdev driver=raw,node-name=disk_4,file=host_disk4 \
    -device scsi-block,drive=disk_4,bus=virtio_scsi_pci1.0,id=host_disk4 \

3. test persistent reservation in guest.

cat test-persistent.sh

#! /bin/sh
sg_persist --no-inquiry -v --out --register-ignore --param-sark 123aaa "$@"
sg_persist --no-inquiry --in -k "$@"
sg_persist --no-inquiry -v --out --reserve --param-rk 123aaa --prout-type 5 "$@"
sg_persist --no-inquiry --in -r "$@"
sg_persist --no-inquiry -v --out --release --param-rk 123aaa --prout-type 5 "$@"
sg_persist --no-inquiry --in -r "$@"
sg_persist --no-inquiry -v --out --register --param-rk 123aaa --prout-type 5 "$@"
sg_persist --no-inquiry --in -k "$@"

 
# sh test-persisten.sh /dev/sdb 


after step 2, guest boot up normally.
after step 3, core dumped, persistent reservation doesn't work. report a new bug track the new issue.

Comment 7 errata-xmlrpc 2019-11-06 07:15:20 UTC
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/RHBA-2019:3723