* Thu Jul 30 2009 Mark McLoughlin <markmc@redhat.com> - 0.7.0-0.8.gite195b43
- Add patch from upstream to fix qemu pidfile perms problem
This commit is contained in:
parent
7f58f3aa54
commit
b20a5c6d3b
71
libvirt-fix-permissions-problem-starting-qemu.patch
Normal file
71
libvirt-fix-permissions-problem-starting-qemu.patch
Normal file
@ -0,0 +1,71 @@
|
||||
From: "Daniel P. Berrange" <berrange@redhat.com>
|
||||
Subject: PATCH: Fix permissions problem starting QEMU
|
||||
|
||||
There is a minor bug when running QEMU non-root, and having
|
||||
capng enabled. libvirt is unable to write the PID file in
|
||||
/var/run/libvirt/qemu, since its now owned by 'qemu', but
|
||||
libvirtd has dropped all capabilties at this point. The fix
|
||||
is to delay dropping capabilities until after the PID file
|
||||
has been created. We should also be sure to kill the child
|
||||
if writing the PID file fails
|
||||
|
||||
* src/util.c: Don't drop capabilities until after the PID file has
|
||||
been written. Kill off child if writing the PID file fails
|
||||
|
||||
* src/qemu_driver.c: Remove bogus trailing '/' in state dir
|
||||
|
||||
diff --git a/src/qemu_driver.c b/src/qemu_driver.c
|
||||
index 9fb8506..26897d3 100644
|
||||
--- a/src/qemu_driver.c
|
||||
+++ b/src/qemu_driver.c
|
||||
@@ -468,7 +468,7 @@ qemudStartup(int privileged) {
|
||||
goto out_of_memory;
|
||||
|
||||
if (virAsprintf(&qemu_driver->stateDir,
|
||||
- "%s/run/libvirt/qemu/", LOCAL_STATE_DIR) == -1)
|
||||
+ "%s/run/libvirt/qemu", LOCAL_STATE_DIR) == -1)
|
||||
goto out_of_memory;
|
||||
} else {
|
||||
uid_t uid = geteuid();
|
||||
diff --git a/src/util.c b/src/util.c
|
||||
index ee64b28..39aae24 100644
|
||||
--- a/src/util.c
|
||||
+++ b/src/util.c
|
||||
@@ -513,12 +513,6 @@ __virExec(virConnectPtr conn,
|
||||
if ((hook)(data) != 0)
|
||||
_exit(1);
|
||||
|
||||
- /* The hook above may need todo something privileged, so
|
||||
- * we delay clearing capabilities until now */
|
||||
- if ((flags & VIR_EXEC_CLEAR_CAPS) &&
|
||||
- virClearCapabilities() < 0)
|
||||
- _exit(1);
|
||||
-
|
||||
/* Daemonize as late as possible, so the parent process can detect
|
||||
* the above errors with wait* */
|
||||
if (flags & VIR_EXEC_DAEMON) {
|
||||
@@ -543,6 +537,9 @@ __virExec(virConnectPtr conn,
|
||||
|
||||
if (pid > 0) {
|
||||
if (pidfile && virFileWritePidPath(pidfile,pid)) {
|
||||
+ kill(pid, SIGTERM);
|
||||
+ usleep(500*1000);
|
||||
+ kill(pid, SIGTERM);
|
||||
virReportSystemError(conn, errno,
|
||||
"%s", _("could not write pidfile"));
|
||||
_exit(1);
|
||||
@@ -551,6 +548,12 @@ __virExec(virConnectPtr conn,
|
||||
}
|
||||
}
|
||||
|
||||
+ /* The steps above may need todo something privileged, so
|
||||
+ * we delay clearing capabilities until the last minute */
|
||||
+ if ((flags & VIR_EXEC_CLEAR_CAPS) &&
|
||||
+ virClearCapabilities() < 0)
|
||||
+ _exit(1);
|
||||
+
|
||||
if (envp)
|
||||
execve(argv[0], (char **) argv, (char**)envp);
|
||||
else
|
||||
|
||||
|
10
libvirt.spec
10
libvirt.spec
@ -78,11 +78,14 @@
|
||||
Summary: Library providing a simple API virtualization
|
||||
Name: libvirt
|
||||
Version: 0.7.0
|
||||
Release: 0.7.gite195b43%{?dist}%{?extra_release}
|
||||
Release: 0.8.gite195b43%{?dist}%{?extra_release}
|
||||
License: LGPLv2+
|
||||
Group: Development/Libraries
|
||||
Source: libvirt-0.7.0-0.6.gite195b43.tar.gz
|
||||
|
||||
# Should be in 0.7.0
|
||||
Patch01: libvirt-fix-permissions-problem-starting-qemu.patch
|
||||
|
||||
# Temporary hack till PulseAudio autostart problems are sorted
|
||||
# out when SELinux enforcing (bz 486112)
|
||||
Patch200: libvirt-0.6.4-svirt-sound.patch
|
||||
@ -252,6 +255,8 @@ of recent versions of Linux (and other OSes).
|
||||
%prep
|
||||
%setup -q
|
||||
|
||||
%patch01 -p1
|
||||
|
||||
%patch200 -p0
|
||||
|
||||
%build
|
||||
@ -612,6 +617,9 @@ fi
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Thu Jul 30 2009 Mark McLoughlin <markmc@redhat.com> - 0.7.0-0.8.gite195b43
|
||||
- Add patch from upstream to fix qemu pidfile perms problem
|
||||
|
||||
* Thu Jul 30 2009 Daniel P. Berrange <berrange@redhat.com> - 0.7.0-0.7.gite195b43
|
||||
- Create qemu/kvm user & group to fix upgrades
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user