Bug 1032412

Summary: opening read-only iscsi lun as read-write should fail
Product: Red Hat Enterprise Linux 7 Reporter: Sibiao Luo <sluo>
Component: qemu-kvmAssignee: Fam Zheng <famz>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.0CC: chayang, huding, juzhang, knoel, lmiksik, michen, mrezanin, pbonzini, qzhang, rbalakri, virt-maint, xfu
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: qemu-kvm-1.5.3-87.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1160102 (view as bug list) Environment:
Last Closed: 2015-11-19 04:52:06 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:    
Bug Blocks: 1160102    

Description Sibiao Luo 2013-11-20 06:50:30 UTC
Description of problem:
boot guest with a data disk using libiscsi libiscsi backend (Readonly: Yes), then try to make file system to it in guest, but then QEMU will flood with "qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)" and VM in paused (io-error) status.
The best way to fix it is that we could refuse to start a guest with a read-only libiscsi backend if the device is supposed to be read-write. Just like bug 901484.

Version-Release number of selected component (if applicable):
host info:
# uname -r && rpm -q qemu-kvm-rhev
3.10.0-50.el7.x86_64
qemu-kvm-rhev-1.5.3-19.el7.x86_64
guest info:
# uname -r && rpm -q qemu-kvm-rhev
3.10.0-50.el7.x86_64
qemu-kvm-rhev-1.5.3-19.el7.x86_64
guest info:
rhel6.5 32bit

How reproducible:
100%

Steps to Reproduce:
1.prepare a iSCSI LUN specified readonly for it.
# tgtadm --lld iscsi --op show --mode target
Target 1: iqn.2013-11.com.example:storage.disk1.juli.xyz
    System information:
        Driver: iscsi
        State: ready
    I_T nexus information:
    LUN information:
        LUN: 0
            Type: controller
            SCSI ID: IET     00010000
            SCSI SN: beaf10
            Size: 0 MB, Block size: 1
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: null
            Backing store path: None
            Backing store flags: 
...
        LUN: 3
            Type: disk
            SCSI ID: IET     00010003
            SCSI SN: beaf13
            Size: 53695 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: No
            Backing store type: rdwr
            Backing store path: /dev/sda7
            Backing store flags: 
...
        LUN: 5
            Type: disk
            SCSI ID: IET     00010005
            SCSI SN: beaf15
            Size: 524 MB, Block size: 512
            Online: Yes
            Removable media: No
            Prevent removal: No
            Readonly: Yes
            Backing store type: rdwr
            Backing store path: /sluo-disk
            Backing store flags: 
    Account information:
    ACL information:
        ALL
...
2.boot guest with a data disk using libiscsi libiscsi backend (Readonly: Yes).
e.g:# /usr/libexec/qemu-kvm -M q35 -S -cpu SandyBridge -enable-kvm -m 2048 -smp 2,sockets=2,cores=1,threads=1 -no-kvm-pit-reinjection...-drive file=iscsi://10.66.6.82:3260/iqn.2013-11.com.example:storage.disk1.juli.xyz/2,if=none,id=drive-virtio-disk,format=qcow2,cache=none,aio=native,werror=stop,rerror=stop -device virtio-blk-pci,vectors=0,bus=pcie.0,addr=0x4,scsi=off,drive=drive-virtio-disk,id=virtio-disk,bootindex=1...-drive file=iscsi://10.66.6.82:3260/iqn.2013-11.com.example:storage.disk1.juli.xyz/5,if=none,id=drive-data-disk,format=raw,cache=none,werror=stop,rerror=stop -device virtio-blk-pci,bus=pcie.0,addr=0x7,drive=drive-data-disk,id=data-disk
3.make file system(EXT4) to it in guest.
# mkfs.ext4 /dev/vdb

Actual results:
after step 3, QEMU will flood with "qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)" and VM in paused (io-error) status. the guest kernel did output any logs.
(qemu) info block
drive-virtio-disk: removable=0 io-status=ok file=iscsi://10.66.6.82:3260/iqn.2013-11.com.example:storage.disk1.juli.xyz/2 ro=0 drv=qcow2 encrypted=0 bps=0 bps_rd=0 bps_wr=0 iops=0 iops_rd=0 iops_wr=0
drive-data-disk: removable=0 io-status=ok file=iscsi://10.66.6.82:3260/iqn.2013-11.com.example:storage.disk1.juli.xyz/5 ro=0 drv=raw encrypted=0 bps=0 bps_rd=0 bps_wr=0 iops=0 iops_rd=0 iops_wr=0
ide1-cd0: removable=1 locked=0 tray-open=0 [not inserted]
floppy0: removable=1 locked=0 tray-open=0 [not inserted]
sd0: removable=1 locked=0 tray-open=0 [not inserted]
(qemu) qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)

(qemu) info status 
VM status: paused (io-error)
(qemu) cont
(qemu) qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:(null)(3) ASCQ:(null)(0x1100)

Expected results:
It should not cause VM pause status. the best way to fix it is that we could refuse to start a guest with a read-only libiscsi backend if the device is supposed to be read-write.

Additional info:

Comment 1 Sibiao Luo 2013-11-20 06:51:57 UTC
# lscpu
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                8
On-line CPU(s) list:   0-7
Thread(s) per core:    2
Core(s) per socket:    4
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 42
Model name:            Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz
Stepping:              7
CPU MHz:               1768.000
BogoMIPS:              6782.63
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              8192K
NUMA node0 CPU(s):     0-7

My qemu-kvm command line:
# /usr/libexec/qemu-kvm -M q35 -S -cpu SandyBridge -enable-kvm -m 2048 -smp 2,sockets=2,cores=1,threads=1 -no-kvm-pit-reinjection -usb -device usb-tablet,id=input0 -name sluo -uuid 990ea161-6b67-47b2-b803-19fb01d30d10 -rtc base=localtime,clock=host,driftfix=slew -device virtio-serial-pci,id=virtio-serial0,max_ports=16,vectors=0,bus=pcie.0,addr=0x3 -chardev socket,id=channel1,path=/tmp/helloworld1,server,nowait -device virtserialport,chardev=channel1,name=com.redhat.rhevm.vdsm,bus=virtio-serial0.0,id=port1 -chardev socket,id=channel2,path=/tmp/helloworld2,server,nowait -device virtserialport,chardev=channel2,name=com.redhat.rhevm.vdsm,bus=virtio-serial0.0,id=port2 -drive file=iscsi://10.66.6.82:3260/iqn.2013-11.com.example:storage.disk1.juli.xyz/2,if=none,id=drive-virtio-disk,format=qcow2,cache=none,aio=native,werror=stop,rerror=stop -device virtio-blk-pci,vectors=0,bus=pcie.0,addr=0x4,scsi=off,drive=drive-virtio-disk,id=virtio-disk,bootindex=1 -netdev tap,id=hostnet0,vhost=on,script=/etc/qemu-ifup -device virtio-net-pci,netdev=hostnet0,id=virtio-net-pci0,mac=00:01:02:03:04:05,bus=pcie.0,addr=0x5 -device virtio-balloon-pci,id=ballooning,bus=pcie.0,addr=0x6 -global PIIX4_PM.disable_s3=0 -global PIIX4_PM.disable_s4=0 -drive file=iscsi://10.66.6.82:3260/iqn.2013-11.com.example:storage.disk1.juli.xyz/5,if=none,id=drive-data-disk,format=raw,cache=none,werror=stop,rerror=stop -device virtio-blk-pci,bus=pcie.0,addr=0x7,drive=drive-data-disk,id=data-disk -k en-us -boot menu=on -qmp tcp:0:4444,server,nowait -serial unix:/tmp/ttyS0,server,nowait -vnc :1 -spice disable-ticketing,port=5931 -monitor stdio

Comment 4 Fam Zheng 2014-10-30 11:30:21 UTC
Upstream patch to fix this:

http://lists.gnu.org/archive/html/qemu-devel/2014-10/msg03639.html

Comment 6 Sibiao Luo 2015-01-20 02:45:44 UTC
Tried the latest qemu-kvm-1.5.3-85.el7.x86_64 which still hit this issue.

host info:
# uname -r && rpm -q qemu-kvm
3.10.0-222.el7.x86_64
qemu-kvm-1.5.3-85.el7.x86_64
guest info:
# uname -r
3.10.0-222.el7.x86_64

host ]# ls -lh /dev/disk/by-path/ip-10.66.83.199\:3260-iscsi-iqn.2015-01.com.sluo\:server.target0-lun-1 
lrwxrwxrwx 1 root root 9 Jan 20 10:27 /dev/disk/by-path/ip-10.66.83.199:3260-iscsi-iqn.2015-01.com.sluo:server.target0-lun-1 -> ../../sdb
host ]# mkfs.ext4 /dev/sdb
mke2fs 1.42.9 (28-Dec-2013)
/dev/sdb is entire device, not just one partition!
Proceed anyway? (y,n) y
/dev/sdb: Read-only file system while setting up superblock

e.g:...-drive file=iscsi://10.66.83.199:3260/iqn.2015-01.com.sluo:server.target0/1,if=none,id=drive-data-disk,format=raw,cache=none,aio=native,werror=stop,rerror=stop -device virtio-blk-pci,id=data-disk,bus=pci.0,addr=0x8,drive=drive-data-disk

guest ]# mkfs.ext4 /dev/vda

(qemu) qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:DATA PROTECTION(7) ASCQ:WRITE_PROTECTED(0x2700)
block I/O error in device 'drive-data-disk': Input/output error (5)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:DATA PROTECTION(7) ASCQ:WRITE_PROTECTED(0x2700)
block I/O error in device 'drive-data-disk': Input/output error (5)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:DATA PROTECTION(7) ASCQ:WRITE_PROTECTED(0x2700)
block I/O error in device 'drive-data-disk': Input/output error (5)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:DATA PROTECTION(7) ASCQ:WRITE_PROTECTED(0x2700)
block I/O error in device 'drive-data-disk': Input/output error (5)
block I/O error in device 'drive-data-disk': Input/output error (5)
block I/O error in device 'drive-data-disk': Input/output error (5)
block I/O error in device 'drive-data-disk': Input/output error (5)
block I/O error in device 'drive-data-disk': Input/output error (5)
block I/O error in device 'drive-data-disk': Input/output error (5)
block I/O error in device 'drive-data-disk': Input/output error (5)
...
block I/O error in device 'drive-data-disk': Input/output error (5)
block I/O error in device 'drive-data-disk': Input/output error (5)

(qemu) info status 
VM status: paused (io-error)
(qemu) cont
(qemu) qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:DATA PROTECTION(7) ASCQ:WRITE_PROTECTED(0x2700)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:DATA PROTECTION(7) ASCQ:WRITE_PROTECTED(0x2700)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:DATA PROTECTION(7) ASCQ:WRITE_PROTECTED(0x2700)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:DATA PROTECTION(7) ASCQ:WRITE_PROTECTED(0x2700)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:DATA PROTECTION(7) ASCQ:WRITE_PROTECTED(0x2700)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:DATA PROTECTION(7) ASCQ:WRITE_PROTECTED(0x2700)
block I/O error in device 'drive-data-disk': Input/output error (5)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:DATA PROTECTION(7) ASCQ:WRITE_PROTECTED(0x2700)
block I/O error in device 'drive-data-disk': Input/output error (5)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:DATA PROTECTION(7) ASCQ:WRITE_PROTECTED(0x2700)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:DATA PROTECTION(7) ASCQ:WRITE_PROTECTED(0x2700)
block I/O error in device 'drive-data-disk': Input/output error (5)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:DATA PROTECTION(7) ASCQ:WRITE_PROTECTED(0x2700)
block I/O error in device 'drive-data-disk': Input/output error (5)
block I/O error in device 'drive-data-disk': Input/output error (5)
block I/O error in device 'drive-data-disk': Input/output error (5)
...

Base on above, this issue has not fixed at all, move to RE-ASSIGNED status, please correct me if any mistake, thanks.

Best Regards,
sluo

Comment 11 Miroslav Rezanina 2015-03-18 11:23:58 UTC
Fix included in qemu-kvm-1.5.3-87.el7

Comment 12 huiqingding 2015-03-30 06:16:24 UTC
Reproduce this bug using the following version:
kernel-3.10.0-232.el7.x86_64
qemu-kvm-1.5.3-60.el7.x86_64

1.boot guest with a data disk using libiscsi libiscsi backend (Readonly: Yes).
# /usr/libexec/qemu-kvm -cpu SandyBridge -m 4G -smp 1,cores=1,threads=1,sockets=64,maxcpus=240 -numa node -machine type=pc-i440fx-rhel7.0.0,dump-guest-core=on -enable-kvm  -device piix3-usb-uhci,id=usb -name winowns -nodefaults -nodefconfig  -device virtio-balloon-pci,id=balloon0  -spice port=5930,disable-ticketing -vga qxl -global PIIX4_PM.disable_s3=0 -global PIIX4_PM.disable_s4=0   -monitor stdio -drive file=/mnt/rhel7.1.qcow2,if=none,id=drive-data-disk,format=qcow2,cache=none,aio=native,werror=stop,rerror=stop,copy-on-read=off,serial=fux-ide,media=disk -device ide-drive,drive=drive-data-disk,id=system-disk,logical_block_size=512,physical_block_size=512,min_io_size=32,opt_io_size=64,discard_granularity=512,ver=fuxc-ver,bus=ide.0,unit=0,bootindex=1 -netdev tap,id=netdev0,script=/etc/qemu-ifup -device virtio-net-pci,netdev=netdev0,id=vn1,mac=52:54:00:b5:d5:d3 -qmp tcp:0:4466,server,nowait -serial unix:/tmp/ttym,server,nowait -drive file=iscsi://10.66.83.199:3260/iqn.2015-01.com.sluo:server.target1/5,if=none,id=drive-data-disk2,format=raw,cache=none,werror=stop,rerror=stop -device virtio-blk-pci,bus=pci.0,addr=0x7,drive=drive-data-disk2,id=data-disk2

2.make file system(EXT4) to it in guest.
# mkfs.ext4 /dev/vdb

Actual results:
after step 2, QEMU will flood with "qemu-kvm: Input/output error (5)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:DATA PROTECTION(7) ASCQ:WRITE_PROTECTED(0x2700)
block I/O error in device 'drive-data-disk2': Input/output error (5)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:DATA PROTECTION(7) ASCQ:WRITE_PROTECTED(0x2700)
block I/O error in device 'drive-data-disk2': Input/output error (5)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:DATA PROTECTION(7) ASCQ:WRITE_PROTECTED(0x2700)
block I/O error in device 'drive-data-disk2': Input/output error (5)
qemu-kvm: Failed to write16 data to iSCSI lun. SENSE KEY:DATA PROTECTION(7) ASCQ:WRITE_PROTECTED(0x2700)
block I/O error in device 'drive-data-disk2': Input/output error (5)
block I/O error in device 'drive-data-disk2': Input/output error (5)
block I/O error in device 'drive-data-disk2': Input/output error (5)
block I/O error in device 'drive-data-disk2': Input/output error (5)
block I/O error in device 'drive-data-disk2': Input/output error (5)
block I/O error in device 'drive-data-disk2': Input/output error (5)
block I/O error in device 'drive-data-disk2': Input/output error (5)
block I/O error in device 'drive-data-disk2': Input/output error (5)
block I/O error in device 'drive-data-disk2': Input/output error (5)
block I/O error in device 'drive-data-disk2': Input/output error (5)
block I/O error in device 'drive-data-disk2': Input/output error (5)
block I/O error in device 'drive-data-disk2': Input/output error (5)
block I/O error in device 'drive-data-disk2': Input/output error (5)
block I/O error in device 'drive-data-disk2': Input/output error (5)
block I/O error in device 'drive-data-disk2': Input/output error (5)
block I/O error in device 'drive-data-disk2': Input/output error (5)
block I/O error in device 'drive-data-disk2': Input/output error (5)
block I/O error in device 'drive-data-disk2': Input/output error (5)
block I/O error in device 'drive-data-disk2': Input/output error (5)
block I/O error in device 'drive-data-disk2': Input/output error (5)
block I/O error in device 'drive-data-disk2': Input/output error (5)
block I/O error in device 'drive-data-disk2': Input/output error (5)
block I/O error in device 'drive-data-disk2': Input/output error (5)
block I/O error in device 'drive-data-disk2': Input/output error (5)
block I/O error in device 'drive-data-disk2': Input/output error (5)
(qemu) info status
VM status: paused (io-error)

Comment 13 huiqingding 2015-03-30 06:21:55 UTC
Test this bug using the following version:
kernel-3.10.0-232.el7.x86_64
qemu-kvm-1.5.3-87.el7.x86_64

1.boot guest with a data disk using libiscsi libiscsi backend (Readonly: Yes).
# /usr/libexec/qemu-kvm -cpu SandyBridge -m 4G -smp 1,cores=1,threads=1,sockets=64,maxcpus=240 -numa node -machine type=pc-i440fx-rhel7.0.0,dump-guest-core=on -enable-kvm  -device piix3-usb-uhci,id=usb -name winowns -nodefaults -nodefconfig  -device virtio-balloon-pci,id=balloon0  -spice port=5930,disable-ticketing -vga qxl -global PIIX4_PM.disable_s3=0 -global PIIX4_PM.disable_s4=0   -monitor stdio -drive file=/mnt/rhel7.1.qcow2,if=none,id=drive-data-disk,format=qcow2,cache=none,aio=native,werror=stop,rerror=stop,copy-on-read=off,serial=fux-ide,media=disk -device ide-drive,drive=drive-data-disk,id=system-disk,logical_block_size=512,physical_block_size=512,min_io_size=32,opt_io_size=64,discard_granularity=512,ver=fuxc-ver,bus=ide.0,unit=0,bootindex=1 -netdev tap,id=netdev0,script=/etc/qemu-ifup -device virtio-net-pci,netdev=netdev0,id=vn1,mac=52:54:00:b5:d5:d3 -qmp tcp:0:4466,server,nowait -serial unix:/tmp/ttym,server,nowait -drive file=iscsi://10.66.83.199:3260/iqn.2015-01.com.sluo:server.target1/5,if=none,id=drive-data-disk2,format=raw,cache=none,werror=stop,rerror=stop -device virtio-blk-pci,bus=pci.0,addr=0x7,drive=drive-data-disk2,id=data-disk2

Actual results:
qemu-kvm quits with the error:
qemu-kvm: -drive file=iscsi://10.66.83.199:3260/iqn.2015-01.com.sluo:server.target1/5,if=none,id=drive-data-disk2,format=raw,cache=none,werror=stop,rerror=stop: could not open disk image iscsi://10.66.83.199:3260/iqn.2015-01.com.sluo:server.target1/5: Cannot open a write protected LUN as read-write

Based on the above results, this bug has been fixed.

Comment 18 errata-xmlrpc 2015-11-19 04:52:06 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://rhn.redhat.com/errata/RHBA-2015-2213.html