- 12 7月, 2013 8 次提交
-
-
由 Daniel P. Berrange 提交于
Before trying to mount the selinux filesystem in a container use is_selinux_enabled() to check if the machine actually has selinux support (eg not booted with selinux=0) Signed-off-by: NDaniel P. Berrange <berrange@redhat.com> (cherry picked from commit 95c6cc34)
-
由 Daniel P. Berrange 提交于
Re-add the selinux header to lxc_container.c since other functions now use it, beyond the patch that was just reverted. Signed-off-by: NDaniel P. Berrange <berrange@redhat.com> (cherry picked from commit 63ea1e54)
-
由 Daniel P. Berrange 提交于
Change bbe97ae9 caused the QEMU driver to ignore ENOENT errors from cgroups, in order to cope with missing /proc/cgroups. This is not good though because many other things can cause ENOENT and should not be ignored. The callers expect to see ENXIO when cgroups are not present, so adjust the code to report that errno when /proc/cgroups is missing Signed-off-by: NDaniel P. Berrange <berrange@redhat.com> (cherry picked from commit c2cf5f1c)
-
由 Jim Fehlig 提交于
Found that I was unable to start existing domains after updating to a kernel with no cgroups support # zgrep CGROUP /proc/config.gz # CONFIG_CGROUPS is not set # virsh start test error: Failed to start domain test error: Unable to initialize /machine cgroup: Cannot allocate memory virCgroupPartitionNeedsEscaping() correctly returns errno (ENOENT) when attempting to open /proc/cgroups on such a system, but it was being dropped in virCgroupSetPartitionSuffix(). Change virCgroupSetPartitionSuffix() to propagate errors returned by its callees. Also check for ENOENT in qemuInitCgroup() when determining if cgroups support is available. (cherry picked from commit bbe97ae9)
-
由 Daniel P. Berrange 提交于
Escaping a leading '.' with '_' in the cgroup names Signed-off-by: NDaniel P. Berrange <berrange@redhat.com> (cherry picked from commit 0ced83dc)
-
由 Daniel P. Berrange 提交于
Describe the new cgroups layout, how to customize placement of guests and what virsh commands are used to access the parameters. Signed-off-by: NDaniel P. Berrange <berrange@redhat.com> (cherry picked from commit 486a86eb)
-
由 Daniel P. Berrange 提交于
It is possible to build a kernel without swap cgroup controls present. This causes a fatal error when querying memory parameters. Treat missing swap controls as meaning "unlimited". The fatal error remains if the user tries to actually change the limit. Signed-off-by: NDaniel P. Berrange <berrange@redhat.com> (cherry picked from commit f493d83f)
-
由 Jim Fehlig 提交于
Xen 4.3 fixes a mistake in the libxl event handler signature where the event owned by the application was defined as const. Detect this and define the libvirt libxl event handler signature appropriately. (cherry picked from commit 43b0ff5b)
-
- 11 7月, 2013 2 次提交
-
-
由 Ján Tomko 提交于
If qemuMonitorBlockJob returned 0, qemuDomainBlockPivot might return 0 even if an error occured. https://bugzilla.redhat.com/show_bug.cgi?id=977678 (cherry picked from commit c34107df)
-
由 Ján Tomko 提交于
Don't reuse the return value of virStorageBackendFileSystemIsMounted. If it's 0, we'd return it even if the mount command failed. Also, don't report another error if it's -1, since one has already been reported. Introduced by 258e06c8. https://bugzilla.redhat.com/show_bug.cgi?id=981251 (cherry picked from commit 13fde7ce)
-
- 01 7月, 2013 2 次提交
-
-
由 Dennis Chen 提交于
When creating a virtual FC HBA with virsh/libvirt API, an error message will be returned: "error: Node device not found", also the 'nodedev-dumpxml' shows wrong information of wwpn & wwnn for the new created device. Signed-off-by: xschen@tnsoft.com.cn This reverts f90af691 which switched wwpn & wwwn in the wrong place. https://www.kernel.org/doc/Documentation/scsi/scsi_fc_transport.txt (cherry picked from commit 3c0d5e22)
-
由 Ján Tomko 提交于
If networkUnplugBandwidth is called on a network which has no bandwidth defined, print a warning instead of crashing. This can happen when destroying a domain with bandwidth if bandwidth was removed from the network after the domain was started. https://bugzilla.redhat.com/show_bug.cgi?id=975359 (cherry picked from commit 658c932a)
-
- 26 6月, 2013 2 次提交
-
-
由 Ján Tomko 提交于
Don't check for '\n' at the end of file if zero bytes were read. Found by valgrind: ==404== Invalid read of size 1 ==404== at 0x529B09F: virCgroupGetValueStr (vircgroup.c:540) ==404== by 0x529AF64: virCgroupMoveTask (vircgroup.c:1079) ==404== by 0x1EB475: qemuSetupCgroupForEmulator (qemu_cgroup.c:1061) ==404== by 0x1D9489: qemuProcessStart (qemu_process.c:3801) ==404== by 0x18557E: qemuDomainObjStart (qemu_driver.c:5787) ==404== by 0x190FA4: qemuDomainCreateWithFlags (qemu_driver.c:5839) Introduced by 0d0b4098. https://bugzilla.redhat.com/show_bug.cgi?id=978356 (cherry picked from commit 306c49ff)
-
由 Ján Tomko 提交于
Free the old XML strings before overwriting them if the user has chosen to reedit the file or force the redefinition. Found by Alex Jia trying to reproduce another bug: https://bugzilla.redhat.com/show_bug.cgi?id=977430#c3 (cherry picked from commit 1e3a2529)
-
- 20 6月, 2013 2 次提交
-
-
由 John Ferlan 提交于
Cherry-picked from 38ada092 As a consequence of the cgroup layout changes from commit 'cfed9ad4', the lxcDomainGetSchedulerParameters[Flags]()' and lxcGetSchedulerType() APIs failed to return data for a non running domain. This can be seen through a 'virsh schedinfo <domain>' command which returns: Scheduler : Unknown error: Requested operation is not valid: cgroup CPU controller is not mounted Prior to that change a non running domain would return: Scheduler : posix cpu_shares : 0 vcpu_period : 0 vcpu_quota : 0 emulator_period: 0 emulator_quota : 0 This patch will restore the capability to return configuration only data for a non running domain regardless of whether cgroups are available. NOTE: Needed to change the VIR_STRDUP(ret, "posix"); to ret = strdup("posix"); and added the virReportOOMError(); on failure.
-
由 John Ferlan 提交于
Cherry-picked from b2375453 As a consequence of the cgroup layout changes from commit '632f78ca', the qemuDomainGetSchedulerParameters[Flags]()' and qemuGetSchedulerType() APIs failed to return data for a non running domain. This can be seen through a 'virsh schedinfo <domain>' command which returns: Scheduler : Unknown error: Requested operation is not valid: cgroup CPU controller is not mounted Prior to that change a non running domain would return: Scheduler : posix cpu_shares : 0 vcpu_period : 0 vcpu_quota : 0 emulator_period: 0 emulator_quota : 0 This patch will restore the capability to return configuration only data for a non running domain regardless of whether cgroups are available. NOTE: Needed to change the VIR_STRDUP(ret, "posix"); to ret = strdup("posix"); and added the virReportOOMError(); on failure.
-
- 18 6月, 2013 4 次提交
-
-
由 Ján Tomko 提交于
Don't free the stream on error if we've successfully added it to the hash table, since it will be freed by virChrdevHashEntryFree callback. Preserve the error message before calling virStreamFree, since it resets the error. Introduced by 47161382, crashing since 69218922. Reported by Sergey Fionov on libvir-list. (cherry picked from commit a32b4174)
-
由 Jiri Denemark 提交于
(cherry picked from commit ddf8ad82)
-
由 Ján Tomko 提交于
Change the socket path to match the one used by lockd driver. https://bugzilla.redhat.com/show_bug.cgi?id=968128 (cherry picked from commit 70fe1295)
-
由 Ján Tomko 提交于
Use the host number as the host number when constructing the sysfs path instead of the variable we are trying to fill. https://bugzilla.redhat.com/show_bug.cgi?id=973543 (cherry picked from commit 371c1551)
-
- 13 6月, 2013 8 次提交
-
-
由 Cole Robinson 提交于
-
由 Cole Robinson 提交于
Because it's a valid combination. p2p still uses a separate channel for qemu migration, so there's value in letting the user specify a manual migrate URI for overriding auto-port, or libvirt's FQDN lookup. What _isn't_ allowed is --migrateuri and TUNNELLED, since there is no separate migration channel. Disallow that instead (cherry picked from commit 5e1de4fc)
-
由 Cole Robinson 提交于
Since as the code indicates it doesn't work yet, so let's be explicit about it. (cherry picked from commit 98bbda00)
-
由 Cole Robinson 提交于
By actually showing the Open() error to the user (cherry picked from commit 5751fc4f)
-
由 Daniel P. Berrange 提交于
Apps using libvirt will often have code like if (virXXXX() < 0) { virErrorPtr err = virGetLastError(); fprintf(stderr, "Something failed: %s\n", err && err->message ? err->message : "unknown error"); return -1; } Checking for a NULL error object or message leads to very verbose code. A virGetLastErrorMessage() helper from libvirt can simplify this to if (virXXXX() < 0) { fprintf(stderr, "Something failed: %s\n", virGetLastErrorMessage()); return -1; } Signed-off-by: NDaniel P. Berrange <berrange@redhat.com> (cherry picked from commit 69c6a58a)
-
由 Cole Robinson 提交于
If we are just ejecting media, ret == -1 even after the retry loop determines that the tray is open, as requested. This means media disconnect always report's error. Fix it, and fix some other mini issues: - Don't overwrite the 'eject' error message if the retry loop fails - Move the retries decrement inside the loop, otherwise the final loop might succeed, yet retries == 0 and we will raise error - Setting ret = -1 in the disk->src check is unneeded - Fix comment typos cc: mprivozn@redhat.com (cherry picked from commit 406d8a98)
-
由 Michal Privoznik 提交于
In 84c59ffa I've tried to fix changing ejectable media process. The process should go like this: 1) we need to call 'eject' on the monitor 2) we should wait for 'DEVICE_TRAY_MOVED' event 3) now we can issue 'change' command However, while waiting in step 2) the domain monitor was locked. So even if qemu reported the desired event, the proper callback was not called immediately. The monitor handling code needs to lock the monitor in order to read the event. So that's the first lock we must not hold while waiting. The second one is the domain lock. When monitor handling code reads an event, the appropriate callback is called then. The first thing that each callback does is locking the corresponding domain as a domain or its device is about to change state. So we need to unlock both monitor and VM lock. Well, holding any lock while sleep()-ing is not the best thing to do anyway. (cherry picked from commit 543af79a)
-
由 Christophe Fergeau 提交于
qemu-img resize will fail with "The new size must be a multiple of 512" if libvirt doesn't round it first. This fixes rhbz#951495 Signed-off-by: NChristophe Fergeau <cfergeau@redhat.com> (cherry picked from commit 9a8f39d0)
-
- 12 6月, 2013 1 次提交
-
-
由 Stefan Berger 提交于
This patch is in relation to Bug 966449: https://bugzilla.redhat.com/show_bug.cgi?id=966449 This is a patch addressing the coredump. Thread 1 must be calling nwfilterDriverRemoveDBusMatches(). It does so with nwfilterDriverLock held. In the patch below I am now moving the nwfilterDriverLock(driverState) further up so that the initialization, which seems to either take a long time or is entirely stuck, occurs with the lock held and the shutdown cannot occur at the same time. Remove the lock in virNWFilterDriverIsWatchingFirewallD to avoid double-locking. (cherry picked from commit 0ec376c2)
-
- 10 6月, 2013 1 次提交
-
-
由 Doug Goldstein 提交于
Commit 894f7849 broke the v1.0.5-maint branch because VIR_STRDUP() didn't exist in the v1.0.5 release so the resulting build is missing that symbol. This patch is only for the v1.0.5-maint branch.
-
- 01 6月, 2013 2 次提交
-
-
由 Viktor Mihajlovski 提交于
Commit 7f15ebc7 introduced a bug happening when guests without a <graphics> element are migrated. The initialization of listenAddress happens unconditionally from the cookie even if the cookie->graphics pointer was NULL. Moved the initialization to where it is safe. Signed-off-by: NViktor Mihajlovski <mihajlov@linux.vnet.ibm.com> (cherry picked from commit 9684bb11)
-
由 Laine Stump 提交于
This should resolve: https://bugzilla.redhat.com/show_bug.cgi?id=959191 The problem was that qemuUpdateActivePciHostdevs was returning 0 (success) when no hostdevs were present, but would otherwise return -1 (failure) even when it completed successfully. It is only called from qemuProcessReconnect(), and when qemuProcessReconnect got back an error, it would not only stop reconnecting, but would terminate the guest qemu process "to remove danger of it ending up running twice if user tries to start it again later". (This bug was introduced in commit 011cf7ad, which was pushed between v1.0.2 and v1.0.3, so all maintenance branches from v1.0.3 up to 1.0.5 will need this one line patch applied.) (cherry picked from commit 2ea45647)
-
- 31 5月, 2013 1 次提交
-
-
由 Ján Tomko 提交于
A literal IPv6 must be escaped, otherwise migration fails with: unable to execute QEMU command 'drive-mirror': address resolution failed for f0::0d:5901: Servname not supported for ai_socktype since QEMU treats everything after the first ':' as the port. (cherry picked from commit 2136327e)
-
- 29 5月, 2013 1 次提交
-
-
由 Eric Blake 提交于
gcc 4.1.2 (hello, RHEL 5!) fails to build on 32-bit platforms with: conf/domain_conf.c: In function 'virDomainDefParseXML': conf/domain_conf.c:10581: warning: integer constant is too large for 'long' type Problem introduced in commit f8e3221f. * src/conf/domain_conf.c (virDomainDefParseXML): Mark large constants. Signed-off-by: NEric Blake <eblake@redhat.com> (cherry picked from commit f6817c70)
-
- 26 5月, 2013 1 次提交
-
- 22 5月, 2013 1 次提交
-
-
由 Eric Blake 提交于
https://bugzilla.redhat.com/show_bug.cgi?id=965169 documents a problem starting domains when cgroups are enabled; I was able to reliably reproduce the race about 5% of the time when I added hooks to domain startup by 3 seconds (as that seemed to be about the length of time that qemu created and then closed a temporary thread, probably related to aio handling of initially opening a disk image). The problem has existed since we introduced virCgroupMoveTask in commit 91028296 (v0.10.0). There are some inherent TOCTTOU races when moving tasks between kernel cgroups, precisely because threads can be created or completed in the window between when we read a thread id from the source and when we write to the destination. As the goal of virCgroupMoveTask is merely to move ALL tasks into the new cgroup, it is sufficient to iterate until no more threads are being created in the old group, and ignoring any threads that die before we can move them. It would be nicer to start the threads in the right cgroup to begin with, but by default, all child threads are created in the same cgroup as their parent, and we don't want vcpu child threads in the emulator cgroup, so I don't see any good way of avoiding the move. It would also be nice if the kernel were to implement something like rename() as a way to atomically move a group of threads from one cgroup to another, instead of forcing a window where we have to read and parse the source, then format and write back into the destination. * src/util/vircgroup.c (virCgroupAddTaskStrController): Ignore ESRCH, because a thread ended between read and write attempts. (virCgroupMoveTask): Loop until all threads have moved. Signed-off-by: NEric Blake <eblake@redhat.com> (cherry picked from commit 83e4c775)
-
- 20 5月, 2013 1 次提交
-
-
由 Cole Robinson 提交于
-
- 18 5月, 2013 1 次提交
-
-
由 Eric Blake 提交于
'make check' fails since commit 470d5c46 on any system with dash as /bin/sh, because '<<<' is a bash extension. For example: nwfilterschematest: 23: /home/eblake/libvirt/tests/schematestutils.sh: Syntax error: redirection unexpected Also, there is no need to spawn a grep process when shell globbing can do the same. * tests/schematestutils.sh: Replace bashism and subprocess with a faster and portable construct. Signed-off-by: NEric Blake <eblake@redhat.com> (cherry picked from commit 1d21b884)
-
- 17 5月, 2013 1 次提交
-
-
由 Martin Kletzander 提交于
Commit 632f78ca introduced a regression which causes schedinfo being unable to set some parameters. When migrating to priv->cgroup there was missing variable left out and due to passed NULL to underlying function, the setting failed. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=963592
-
- 16 5月, 2013 1 次提交
-