Unable to insert cd media located on ro nfs mount

Bug #1027525 reported by Kevin Shanahan
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
QEMU
Expired
Undecided
Unassigned

Bug Description

When issuing a "change" command via the monitor, qemu is unable to open the iso file if it is mounted on a read-only nfs share. If I mount read-write (and make sure the file is writable by the qemu process), then the change command succeeds. Note that this doesn't affect media specified on the command line when starting qemu, only when changing via the monitor.

To reproduce, mount cd images directory read only, e.g.

[root@kvmhost0 ~]# grep iso /etc/fstab
10.48.50.20:/iso /srv/kvm/iso nfs4 defaults,ro 0 0

Start qemu with minimal options, just need access to the monitor:

[root@kvmhost0 ~]# kvm -vnc 127.0.0.1:0 -S

Connect to the monitor and issue a change command:

(qemu) change ide1-cd0 /srv/kvm/iso/ubuntu-12.04-server-amd64.iso
Could not open '/srv/kvm/iso/ubuntu-12.04-server-amd64.iso

Re-mount the iso directory read-write and notice that the command succeeds:

[root@kvmhost0 ~]# mount -o remount,rw /srv/kvm/iso

(qemu) change ide1-cd0 /srv/kvm/iso/ubuntu-12.04-server-amd64.iso
(qemu)

[root@kvmhost0 ~]# kvm --version
QEMU emulator version 1.1.1 (qemu-kvm-1.1.1), Copyright (c) 2003-2008 Fabrice Bellard
[root@kvmhost0 ~]# uname -a
Linux kvmhost0 3.4.5-1-ARCH #1 SMP PREEMPT Mon Jul 16 21:35:54 CEST 2012 x86_64 GNU/Linux

Revision history for this message
Kevin Shanahan (kmshanah-x) wrote :

I ran strace while running the test and I see few times:

open("/srv/kvm/iso/ubuntu-12.04-server-amd64.iso", O_RDONLY|O_NONBLOCK) = 12
fstat(12, {st_mode=S_IFREG|0666, st_size=717533184, ...}) = 0
close(12)

But the final open looks like this:

open("/srv/kvm/iso/ubuntu-12.04-server-amd64.iso", O_RDWR|O_DSYNC|O_CLOEXEC) = -1 EROFS (Read-only file system)

For some reason, the O_RDRW flag was requested.

Revision history for this message
Kevin Shanahan (kmshanah-x) wrote :

Looks like the read_only flag in the block device state never gets set. This needs to be set otherwise qmp_change_blockdev tries to open the device read only. This patch works for me.

Revision history for this message
Kevin Shanahan (kmshanah-x) wrote :

Of course, I mean "qmp_change_blockdev tries to open the device read-write".

Revision history for this message
Thomas Huth (th-huth) wrote :

Can you still reproduce this problem with the latest version of QEMU? If so, could you please refresh your patch and send it to the qemu-devel mailing list? (we do not accept patches from the bug tracker)

Changed in qemu:
status: New → Incomplete
Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for QEMU because there has been no activity for 60 days.]

Changed in qemu:
status: Incomplete → Expired
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.