[vdsm] Change in vdsm[master]: Fix vdsm-faqemu VM launch failure on hosts with newer libvir...
Ryan Harper
ryanh at us.ibm.com
Thu Aug 16 15:53:17 UTC 2012
* Dan Kenigsberg <danken at redhat.com> [2012-08-16 03:37]:
> Dan Kenigsberg has posted comments on this change.
>
> Change subject: Fix vdsm-faqemu VM launch failure on hosts with newer libvirt
> ......................................................................
>
>
> Patch Set 1: I would prefer that you didn't submit this
>
> (1 inline comment)
>
> ....................................................
> File vdsm_hooks/faqemu/vdsm-faqemu
> Line 20:
> Line 21: qemu_argv += filter(lambda x: x != "-enable-kvm", sys.argv[1:])
> Line 22: # libvirt 0.9.10+ checks for the presence of /dev/kvm to provide
> Line 23: # better error messages, but this breaks this hook, fake it out
> Line 24: os.system("touch /dev/kvm")
> how can this work? this script runs as vdsm.
# sudo -u vdsm touch /dev/kvm
touch: cannot touch `/dev/kvm': Permission denied
But I can assure you that it did work. I didn't just touch the file as
root. I installed the faqemu hook and /dev/kvm is owned by root. Are
you sure hooks run as vdsm?
It's run as root:
[root at ichigo-dom228 tmp]# cat /usr/libexec/vdsm/vdsm-faqemu
#!/usr/bin/python
import os
import sys
qemu_paths = [
"/usr/bin/qemu-kvm",
"/usr/libexec/qemu-kvm",
]
for qemu_bin in qemu_paths:
if os.path.exists(qemu_bin): break
else:
raise RuntimeError, "QEMU binary not found"
qemu_argv = [ qemu_bin ]
if not "-no-kvm" in sys.argv:
qemu_argv += [ "-no-kvm" ]
qemu_argv += filter(lambda x: x != "-enable-kvm", sys.argv[1:])
os.system('id > /tmp/faqemu_id.out')
os.system('touch /dev/kvm')
os.execv(qemu_bin, qemu_argv)
[root at ichigo-dom228 tmp]# cat /tmp/faqemu_id.out
uid=0(root) gid=0(root) groups=0(root) context=system_u:system_r:virtd_t:s0-s0:c0.c1023
>
> also, there are less expensive ways to create a file - how about shipping it in this hook's rpm ?
Is that really less expensive? I worry about having an rpm include the file;
and /dev gets remounted/changed accross reboots; so this wouldn't work.
What's expensive about a touch?
>
>
> --
> To view, visit http://gerrit.ovirt.org/7223
> To unsubscribe, visit http://gerrit.ovirt.org/settings
>
> Gerrit-MessageType: comment
> Gerrit-Change-Id: I1dc88f2931e8f716c1732a51d9f65f600f4fd1ef
> Gerrit-PatchSet: 1
> Gerrit-Project: vdsm
> Gerrit-Branch: master
> Gerrit-Owner: Ryan Harper <ryanh at us.ibm.com>
> Gerrit-Reviewer: Dan Kenigsberg <danken at redhat.com>
> Gerrit-Reviewer: Mark Wu <wudxw at linux.vnet.ibm.com>
> Gerrit-Reviewer: Ryan Harper <ryanh at us.ibm.com>
> Gerrit-Reviewer: oVirt Jenkins CI Server
--
Ryan Harper
Software Engineer; Linux Technology Center
IBM Corp., Austin, Tx
ryanh at us.ibm.com
More information about the vdsm-devel
mailing list