Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
Bug 1057658 - vdsm: vm pauses on permission error when boot drive is changed to read-only
Summary: vdsm: vm pauses on permission error when boot drive is changed to read-only
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: oVirt
Classification: Retired
Component: vdsm
Version: unspecified
Hardware: x86_64
OS: Linux
unspecified
urgent
Target Milestone: ---
: 3.4.0
Assignee: Sergey Gotliv
QA Contact: Aharon Canan
URL:
Whiteboard: storage
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-01-24 15:05 UTC by Dafna Ron
Modified: 2016-02-10 17:51 UTC (History)
7 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-02-25 09:20:18 UTC
oVirt Team: Storage


Attachments (Terms of Use)
logs (deleted)
2014-01-24 15:05 UTC, Dafna Ron
no flags Details


Links
System ID Priority Status Summary Last Updated
oVirt gerrit 24883 None None None Never

Description Dafna Ron 2014-01-24 15:05:02 UTC
Created attachment 855006 [details]
logs

Description of problem:

I created a vm and installed rhel on it's drive. 
after installation finished I shut down the vm and changed the drive to read-only disk and booted the vm 

the vm starts to run and than pauses with "unknown storage error"
VM Dafna1 has paused due to unknown storage error.

looking at vdsm log, we only see a warning: 

 Drive is not a vdsm image

looking at qemu log we can see 
block I/O error in device 'drive-virtio-disk0': Permission denied (13

Version-Release number of selected component (if applicable):

vdsm-4.14.1-2.el6.x86_64
libvirt-0.10.2-29.el6.1.x86_64
[root@cougar06 ~]# rpm -qa |grep qemu
qemu-img-rhev-0.12.1.2-2.415.el6.3.x86_64
gpxe-roms-qemu-0.9.7-6.10.el6.noarch
qemu-kvm-rhev-tools-0.12.1.2-2.415.el6.3.x86_64
qemu-kvm-rhev-0.12.1.2-2.415.el6.3.x86_64


How reproducible:

100%

Steps to Reproduce:
1. create a vm and install rhel
2. shut down the vm and change the disk to read-only
3. start the vm

Actual results:

vm pauses with "unknown storage error" and permission denied from qemu

Expected results:

1. not sure we should not be able to mount the fs if the disk is RO
2. even if we don't we need to print an appropriate ERROR in vdsm log
3. engine should propagate the error to user 

Additional info:


Thread-48815::WARNING::2014-01-24 16:50:49,159::clientIF::332::vds::(teardownVolumePath) Drive is not a vdsm image: VOLWM_CHUNK_MB:1024 VOLWM_CHUNK_REPLICATE_MULT:2 VOLWM_FREE_PCT:50 _blockDev:False _checkIoTuneCategories:<bound method D
rive._checkIoTuneCategories of <vm.Drive object at 0x7fa9cc2eff90>> _customize:<bound method Drive._customize of <vm.Drive object at 0x7fa9cc2eff90>> _deviceXML:<disk device="cdrom" snapshot="no" type="file"><source file="" startupPolicy
="optional"/><target bus="ide" dev="hdc"/><readonly/><serial></serial></disk> _makeName:<bound method Drive._makeName of <vm.Drive object at 0x7fa9cc2eff90>> _setExtSharedState:<bound method Drive._setExtSharedState of <vm.Drive object a
t 0x7fa9cc2eff90>> _validateIoTuneParams:<bound method Drive._validateIoTuneParams of <vm.Drive object at 0x7fa9cc2eff90>> address:{u'bus': u'1', u'controller': u'0', u'type': u'drive', u'target': u'0', u'unit': u'0'} alias:ide0-1-0 appa
rentsize:0 blockDev:False cache:none conf:{'status': 'Powering down', 'acpiEnable': 'true', 'emulatedMachine': 'rhel6.5.0', 'vmId': '32cbcdbf-f95a-48b9-9826-b7a4a7973372', 'pid': '18078', 'memGuaranteedSize': 1024, 'timeOffset': '0', 'ke
yboardLayout': 'en-us', 'displayPort': u'5900', 'displaySecurePort': u'5901', 'spiceSslCipherSuite': 'DEFAULT', 'cpuType': 'Opteron_G2', 'custom': {}, 'pauseCode': 'NOERR', 'clientIp': '', 'nicModel': 'rtl8139,pv', 'smartcardEnable': 'fa
lse', 'kvmEnable': 'true', 'transparentHugePages': 'true', 'devices': [{'target': 1048576, 'alias': u'balloon0', 'specParams': {'model': 'virtio'}, 'deviceId': '0185191c-4360-46cc-b476-78e2b15a1600', 'address': {u'slot': u'0x07', u'bus':
 u'0x00', u'domain': u'0x0000', u'type': u'pci', u'function': u'0x0'}, 'device': 'memballoon', 'type': 'balloon'}, {'index': '0', 'alias': u'scsi0', 'specParams': {}, 'deviceId': '94dc288c-318f-4e34-98df-0a61b06f9713', 'address': {u'slot
': u'0x04', u'bus': u'0x00', u'domain': u'0x0000', u'type': u'pci', u'function': u'0x0'}, 'device': 'scsi', 'model': 'virtio-scsi', 'type': 'controller'}, {'alias': u'video0', 'specParams': {'vram': '32768', 'heads': '1'}, 'deviceId': '1
0e292e0-3dc6-4707-951a-aa5b67ce1ea0', 'address': {u'slot': u'0x02', u'bus': u'0x00', u'domain': u'0x0000', u'type': u'pci', u'function': u'0x0'}, 'device': 'qxl', 'type': 'video'}, {'nicModel': 'pv', 'macAddr': '00:1a:4a:73:36:7a', 'link
Active': True, 'network': 'ovirtmgmt', 'alias': u'net0', 'bootOrder': '1', 'filter': 'vdsm-no-mac-spoofing', 'specParams': {}, 'deviceId': '46de1b0f-e15b-48be-95b1-214d21731b7b', 'address': {u'slot': u'0x03', u'bus': u'0x00', u'domain': 
u'0x0000', u'type': u'pci', u'function': u'0x0'}, 'device': 'bridge', 'type': 'interface', 'name': u'vnet0'}, {'index': '2', 'iface': 'ide', 'name': u'hdc', 'alias': u'ide0-1-0', 'address': {u'bus': u'1', u'controller': u'0', u'type': u'
drive', u'target': u'0', u'unit': u'0'}, 'specParams': {'path': ''}, 'readonly': 'True', 'deviceId': '92b91f6c-1d4c-4b0c-bfed-18e5b8571e8a', 'path': '', 'device': 'cdrom', 'shared': 'false', 'type': 'disk'}, {'address': {u'slot': u'0x06'
, u'bus': u'0x00', u'domain': u'0x0000', u'type': u'pci', u'function': u'0x0'}, 'volumeInfo': {'domainID': 'be5731ac-ce60-4302-ab04-99573f6799e4', 'volType': 'path', 'leaseOffset': 0, 'path': '/rhev/data-center/mnt/lion.qa.lab.tlv.redhat
.com:_export_Dafna_domain/be5731ac-ce60-4302-ab04-99573f6799e4/images/a1d120fa-6b77-4ea6-aad8-43211dc78034/15de3475-0971-4efb-81ff-467595a0bae4', 'volumeID': '15de3475-0971-4efb-81ff-467595a0bae4', 'leasePath': '/rhev/data-center/mnt/lio
n.qa.lab.tlv.redhat.com:_export_Dafna_domain/be5731ac-ce60-4302-ab04-99573f6799e4/images/a1d120fa-6b77-4ea6-aad8-43211dc78034/15de3475-0971-4efb-81ff-467595a0bae4.lease', 'imageID': 'a1d120fa-6b77-4ea6-aad8-43211dc78034'}, 'index': 0, 'i
face': 'virtio', 'apparentsize': '4294967296', 'alias': u'virtio-disk0', 'imageID': 'a1d120fa-6b77-4ea6-aad8-43211dc78034', 'readonly': 'False', 'shared': 'false', 'truesize': '0', 'type': 'disk', 'domainID': 'be5731ac-ce60-4302-ab04-995
73f6799e4', 'reqsize': '0', 'format': 'raw', 'deviceId': 'a1d120fa-6b77-4ea6-aad8-43211dc78034', 'poolID': '6fe33247-68e1-4e46-be2a-ab90ab4384e3', 'device': 'disk', 'path': '/rhev/data-center/mnt/lion.qa.lab.tlv.redhat.com:_export_Dafna_
domain/be5731ac-ce60-4302-ab04-99573f6799e4/images/a1d120fa-6b77-4ea6-aad8-43211dc78034/15de3475-0971-4efb-81ff-467595a0bae4', 'propagateErrors': 'off', 'optional': 'false', 'name': u'vda', 'bootOrder': u'2', 'volumeID': '15de3475-0971-4
efb-81ff-467595a0bae4', 'specParams': {}, 'volumeChain': [{'domainID': 'be5731ac-ce60-4302-ab04-99573f6799e4', 'volType': 'path', 'leaseOffset': 0, 'path': '/rhev/data-center/mnt/lion.qa.lab.tlv.redhat.com:_export_Dafna_domain/be5731ac-c
e60-4302-ab04-99573f6799e4/images/a1d120fa-6b77-4ea6-aad8-43211dc78034/15de3475-0971-4efb-81ff-467595a0bae4', 'volumeID': '15de3475-0971-4efb-81ff-467595a0bae4', 'leasePath': '/rhev/data-center/mnt/lion.qa.lab.tlv.redhat.com:_export_Dafn
a_domain/be5731ac-ce60-4302-ab04-99573f6799e4/images/a1d120fa-6b77-4ea6-aad8-43211dc78034/15de3475-0971-4efb-81ff-467595a0bae4.lease', 'imageID': 'a1d120fa-6b77-4ea6-aad8-43211dc78034'}]}, {'device': u'usb', 'alias': u'usb0', 'type': 'co
ntroller', 'address': {u'slot': u'0x01', u'bus': u'0x00', u'domain': u'0x0000', u'type': u'pci', u'function': u'0x2'}}, {'device': u'ide', 'alias': u'ide0', 'type': 'controller', 'address': {u'slot': u'0x01', u'bus': u'0x00', u'domain': 
u'0x0000', u'type': u'pci', u'function': u'0x1'}}, {'device': u'virtio-serial', 'alias': u'virtio-serial0', 'type': 'controller', 'address': {u'slot': u'0x05', u'bus': u'0x00', u'domain': u'0x0000', u'type': u'pci', u'function': u'0x0'}}
, {'device': u'unix', 'alias': u'channel0', 'type': u'channel', 'address': {u'bus': u'0', u'controller': u'0', u'type': u'virtio-serial', u'port': u'1'}}, {'device': u'unix', 'alias': u'channel1', 'type': u'channel', 'address': {u'bus': 
u'0', u'controller': u'0', u'type': u'virtio-serial', u'port': u'2'}}, {'device': u'spicevmc', 'alias': u'channel2', 'type': u'channel', 'address': {u'bus': u'0', u'controller': u'0', u'type': u'virtio-serial', u'port': u'3'}}], 'smp': '
1', 'vmType': 'kvm', 'memSize': 1024, 'displayIp': '0', 'spiceSecureChannels': 'smain,sinputs,scursor,splayback,srecord,sdisplay,susbredir,ssmartcard', 'smpCoresPerSocket': '1', 'vmName': 'Dafna1', 'display': 'qxl', 'nice': '0'} createXm
lElem:<bound method Drive.createXmlElem of <vm.Drive object at 0x7fa9cc2eff90>> device:cdrom deviceId:92b91f6c-1d4c-4b0c-bfed-18e5b8571e8a drv:raw extSharedState:none getLeasesXML:<bound method Drive.getLeasesXML of <vm.Drive object at 0
x7fa9cc2eff90>> getNextVolumeSize:<bound method Drive.getNextVolumeSize of <vm.Drive object at 0x7fa9cc2eff90>> getXML:<bound method Drive.getXML of <vm.Drive object at 0x7fa9cc2eff90>> hasVolumeLeases:False iface:ide index:2 isDiskRepli
cationInProgress:<bound method Drive.isDiskReplicationInProgress of <vm.Drive object at 0x7fa9cc2eff90>> log:<logUtils.SimpleLogAdapter instance at 0x226acb0> name:hdc networkDev:False path: readonly:True reqsize:0 serial: shared:false s
pecParams:{'path': ''} transientDisk:False truesize:0 type:cdrom volExtensionChunk:1024 watermarkLimit:536870912
Traceback (most recent call last):
  File "/usr/share/vdsm/clientIF.py", line 326, in teardownVolumePath
    res = self.irs.teardownImage(drive['domainID'],
  File "/usr/share/vdsm/vm.py", line 1493, in __getitem__
    raise KeyError(key)
KeyError: 'domainID'
Thread-48815::INFO::2014-01-24 16:50:49,167::logUtils::44::dispatcher::(wrapper) Run and protect: teardownImage(sdUUID='be5731ac-ce60-4302-ab04-99573f6799e4', spUUID='6fe33247-68e1-4e46-be2a-ab90ab4384e3', imgUUID='a1d120fa-6b77-4ea6-aad
8-43211dc78034', volUUID=None)


2014-01-24 14:51:02.949+0000: starting up
LC_ALL=C PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin QEMU_AUDIO_DRV=spice /usr/libexec/qemu-kvm -name Dafna1 -S -M rhel6.5.0 -cpu Opteron_G2 -enable-kvm -m 1024 -realtime mlock=off -smp 1,sockets=1,cores=1,threads=1
 -uuid 32cbcdbf-f95a-48b9-9826-b7a4a7973372 -smbios type=1,manufacturer=oVirt,product=oVirt Node,version=6Server-6.5.0.1.el6,serial=ff3d62d3-d3b7-4f59-82a7-3ae41b750585,uuid=32cbcdbf-f95a-48b9-9826-b7a4a7973372 -nodefconfig -nodefaults -
chardev socket,id=charmonitor,path=/var/lib/libvirt/qemu/Dafna1.monitor,server,nowait -mon chardev=charmonitor,id=monitor,mode=control -rtc base=2014-01-24T14:51:02,driftfix=slew -no-shutdown -device piix3-usb-uhci,id=usb,bus=pci.0,addr=
0x1.0x2 -device virtio-scsi-pci,id=scsi0,bus=pci.0,addr=0x4 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x5 -drive if=none,media=cdrom,id=drive-ide0-1-0,readonly=on,format=raw,serial= -device ide-drive,bus=ide.1,unit=0,dri
ve=drive-ide0-1-0,id=ide0-1-0 -drive file=/rhev/data-center/mnt/lion.qa.lab.tlv.redhat.com:_export_Dafna_domain/be5731ac-ce60-4302-ab04-99573f6799e4/images/a1d120fa-6b77-4ea6-aad8-43211dc78034/15de3475-0971-4efb-81ff-467595a0bae4,if=none
,id=drive-virtio-disk0,readonly=on,format=raw,serial=a1d120fa-6b77-4ea6-aad8-43211dc78034,cache=none,werror=stop,rerror=stop,aio=threads -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x6,drive=drive-virtio-disk0,id=virtio-disk0,bootinde
x=2 -netdev tap,fd=28,id=hostnet0,vhost=on,vhostfd=29 -device virtio-net-pci,netdev=hostnet0,id=net0,mac=00:1a:4a:73:36:7a,bus=pci.0,addr=0x3,bootindex=1 -chardev socket,id=charchannel0,path=/var/lib/libvirt/qemu/channels/32cbcdbf-f95a-4
8b9-9826-b7a4a7973372.com.redhat.rhevm.vdsm,server,nowait -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.rhevm.vdsm -chardev socket,id=charchannel1,path=/var/lib/libvirt/qemu/channels/32
cbcdbf-f95a-48b9-9826-b7a4a7973372.org.qemu.guest_agent.0,server,nowait -device virtserialport,bus=virtio-serial0.0,nr=2,chardev=charchannel1,id=channel1,name=org.qemu.guest_agent.0 -chardev spicevmc,id=charchannel2,name=vdagent -device 
virtserialport,bus=virtio-serial0.0,nr=3,chardev=charchannel2,id=channel2,name=com.redhat.spice.0 -spice port=5900,tls-port=5901,addr=0,x509-dir=/etc/pki/vdsm/libvirt-spice,tls-channel=main,tls-channel=display,tls-channel=inputs,tls-chan
nel=cursor,tls-channel=playback,tls-channel=record,tls-channel=smartcard,tls-channel=usbredir,seamless-migration=on -k en-us -vga qxl -global qxl-vga.ram_size=67108864 -global qxl-vga.vram_size=33554432 -device virtio-balloon-pci,id=ball
oon0,bus=pci.0,addr=0x7
((null):20275): Spice-Warning **: reds.c:2719:reds_handle_read_link_done: spice channels 1 should be encrypted
main_channel_link: add main channel client
main_channel_handle_parsed: net test: latency 91.720000 ms, bitrate 3695843 bps (3.524631 Mbps) LOW BANDWIDTH
((null):20275): Spice-Warning **: reds.c:2719:reds_handle_read_link_done: spice channels 2 should be encrypted
((null):20275): Spice-Warning **: reds.c:2719:reds_handle_read_link_done: spice channels 3 should be encrypted
((null):20275): Spice-Warning **: reds.c:2719:reds_handle_read_link_done: spice channels 4 should be encrypted
inputs_connect: inputs channel client create
red_dispatcher_set_cursor_peer: 
block I/O error in device 'drive-virtio-disk0': Permission denied (13)
block I/O error in device 'drive-virtio-disk0': Permission denied (13)
block I/O error in device 'drive-virtio-disk0': Permission denied (13)
block I/O error in device 'drive-virtio-disk0': Permission denied (13)
block I/O error in device 'drive-virtio-disk0': Permission denied (13)
block I/O error in device 'drive-virtio-disk0': Permission denied (13)
block I/O error in device 'drive-virtio-disk0': Permission denied (13)
block I/O error in device 'drive-virtio-disk0': Permission denied (13)
block I/O error in device 'drive-virtio-disk0': Permission denied (13)
block I/O error in device 'drive-virtio-disk0': Permission denied (13)
block I/O error in device 'drive-virtio-disk0': Permission denied (13)
block I/O error in device 'drive-virtio-disk0': Permission denied (13)
block I/O error in device 'drive-virtio-disk0': Permission denied (13)
block I/O error in device 'drive-virtio-disk0': Permission denied (13)
block I/O error in device 'drive-virtio-disk0': Permission denied (13)
block I/O error in device 'drive-virtio-disk0': Permission denied (13)
block I/O error in device 'drive-virtio-disk0': Permission denied (13)
block I/O error in device 'drive-virtio-disk0': Permission denied (13)
block I/O error in device 'drive-virtio-disk0': Permission denied (13)
:

Comment 1 Itamar Heim 2014-01-26 08:11:56 UTC
Setting target release to current version for consideration and review. please
do not push non-RFE bugs to an undefined target release to make sure bugs are
reviewed for relevancy, fix, closure, etc.

Comment 2 Ayal Baron 2014-02-17 20:26:23 UTC
You cannot boot from a read only disk, unless your file system is specifically built for this (e.g. iso).

Comment 3 Ayal Baron 2014-02-25 09:20:18 UTC
I just understood that the permission error is in the guest side.
This is not an oVirt bug (well, not a bug in general).  If you want to boot from a read only disk you need to make sure you have a read only filesystem on it that you can boot from.

The "KeyError: 'domainID'" has nothing to do with this issue and was handled in a different bug (teardown of cdrom through this error).


Note You need to log in before you can comment on or make changes to this bug.