Bug 740702

Summary: update floppy disk on the fly with <readonly/> failed when selinux is enforcing
Product: Red Hat Enterprise Linux 6 Reporter: weizhang <weizhan>
Component: libvirtAssignee: Laine Stump <laine>
Status: CLOSED WONTFIX QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 6.2CC: acathrow, dallan, dyuan, gsun, mzhan, rwu, ydu
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-11-23 18:57:33 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description weizhang 2011-09-23 02:37:59 UTC
Description of problem:
When selinux is enforcing, update floppy disk on the fly with <readonly/> failed with error
error: Failed to update device from floppy.xml
error: internal error unable to execute QEMU command 'change': Could not open '/var/lib/libvirt/images/fd2.img'

but when selinux is permissive, update-device will success

Version-Release number of selected component (if applicable):
kernel-2.6.32-197.el6.x86_64
qemu-kvm-0.12.1.2-2.192.el6.x86_64
libvirt-0.9.4-12.el6.x86_64

How reproducible:
100%

Steps to Reproduce:
1. Make 2 floppy disk image file

# dd if=/dev/zero of=/var/lib/libvirt/images/fd1.img count=1024 bs=1024

# mkfs.ext3 /var/lib/libvirt/images/fd1.img

# dd if=/dev/zero of=/var/lib/libvirt/images/fd1.img count=1024 bs=1024

# mkfs.ext3 /var/lib/libvirt/images/fd2.img

2. Define a domain with floppy device connected with in config xml file

    <disk type='file' device='floppy'>
      <driver name='qemu' type='raw'/>
      <source file='/var/lib/libvirt/images/fd1.img'/>
      <target dev='fda' bus='fdc'/>
      <readonly/>
    </disk>

3. Start the domain

4. Prepare a xml as flollowing:

# cat floppy.xml
    <disk type='file' device='floppy'>
      <driver name='qemu' type='raw'/>
      <source file='/var/lib/libvirt/images/fd2.img'/>
      <target dev='fda' bus='fdc'/>
      <readonly/>
    </disk>

5. Try to update the media int floppy device

# virsh update-device rhel6 floppy.xml
  
Actual results:
error: Failed to update device from floppy.xml
error: internal error unable to execute QEMU command 'change': Could not open '/var/lib/libvirt/images/fd2.img'

Expected results:
success with no error

Additional info:

Comment 4 Dave Allan 2011-11-23 18:57:33 UTC
A user can work around this problem by making the floppy writable by removing the readonly element from the XML.