- 22 3月, 2011 2 次提交
-
-
由 Eric Blake 提交于
qemu_monitor was already returning -1 and setting errno to EINVAL on any attempt to send an fd without a unix socket, but this was a silent failure in the case of qemuDomainAttachHostPciDevice. Meanwhile, qemuDomainAttachNetDevice was doing some sanity checking for a better error message; it's better to consolidate that to a central point in the API. * src/qemu/qemu_hotplug.c (qemuDomainAttachNetDevice): Move sanity checking... * src/qemu/qemu_monitor.c (qemuMonitorSendFileHandle): ...into central location. Suggested by Chris Wright.
-
qemu:///session由 Eric Blake 提交于
https://bugzilla.redhat.com/show_bug.cgi?id=684655 points out a regression introduced in commit 2215050e - non-root users can't connect to qemu:///session because libvirtd dies when it can't use pciaccess initialization. * src/node_device/node_device_udev.c (udevDeviceMonitorStartup): Don't abort udev driver (and libvirtd overall) if non-root user can't use pciaccess.
-
- 21 3月, 2011 5 次提交
-
-
由 Eric Blake 提交于
Valgrind caught that our log wrap-around was going 1 past the end. Regression introduced in commit b16f47ab; previously the buffer was static and size+1 bytes, but now it is dynamic and exactly size bytes. * src/util/logging.c (virLogStr): Don't write past end of log.
-
由 Wen Congyang 提交于
We have reported error in the function prepareCall(), and the error is not only OOM error. So we should not report OOM error in the function call() when prepareCall() failed.
-
由 Eric Blake 提交于
If virFileIsExecutable is to replace access(file,X_OK), then errno must be usable on failure. * src/util/util.c (virFileIsExecutable): Set errno on failure.
-
由 Cole Robinson 提交于
-
由 Osier Yang 提交于
<imagelable> is not generated by running domain, actually we parse it in src/conf/domain_conf.c, this patch is to fix it, otherwise any validation (virt-xml-validate) on the domain xml dumped from shutoff domain containing <imagelable> will fail. * docs/schemas/domain.rng
-
- 19 3月, 2011 9 次提交
-
-
由 Tiziano Mueller 提交于
The current description suggests that you always have to provide a valid typeVer pointer. But if you want only the libvirt version it's also possible to set type and typeVer to NULL to skip the hypervisor part.
-
由 Hu Tao 提交于
This patch enables cgroup controllers as much as possible by skipping the creation of blkio controller when running with old kernels that doesn't support multi-level directory for blkio controller. Signed-off-by: NHu Tao <hutao@cn.fujitsu.com> Signed-off-by: NEric Blake <eblake@redhat.com>
-
由 Jim Fehlig 提交于
The libxenlight driver does not build against the tech preview version of libxenlight in Xen 4.0. Only enable building the driver against more complete libxenlight found in Xen 4.1.
-
由 Eric Blake 提交于
THREADS.txt states that the contents of vm should not be read or modified while the vm lock is not held, but that the lock must not be held while performing a monitor command. This fixes all the offenders that I could find. * src/qemu/qemu_process.c (qemuProcessStartCPUs) (qemuProcessInitPasswords, qemuProcessStart): Don't modify or refer to vm state outside lock. * src/qemu/qemu_driver.c (qemudDomainHotplugVcpus): Likewise. * src/qemu/qemu_hotplug.c (qemuDomainChangeGraphicsPasswords): Likewise.
-
由 Laine Stump 提交于
This is detailed in: https://bugzilla.redhat.com/show_bug.cgi?id=688957 Since radvd is executed by daemonizing it, the attempt to exec the radvd binary doesn't happen until after libvirtd has already received an exit code from the intermediate forked process, so no error is detected or logged by __virExec(). We can't require radvd as a prerequisite for the libvirt package (many installations don't use IPv6, so they don't need it), so instead we add in a check to verify there is an executable radvd binary prior to trying to exec it.
-
由 Jean-Baptiste Rouault 提交于
This patch adds missing curly brackets to an if statement in openvzListDefinedDomains()
-
由 Eric Blake 提交于
* po/POTFILES.in: Add src/util/hash.c for 'make syntax-check'.
-
由 Daniel P. Berrange 提交于
When SASL is active, it was possible that we read and decoded more data off the wire than we initially wanted. The loop processing this data terminated after only one message to avoid delaying the calling thread, but this could delay event delivery. As long as there is decoded SASL data in memory, we must process it, before returning to the poll() event loop. This is a counterpart to the same kind of issue solved in commit 68d2c348 in a different area of the code * src/remote/remote_driver.c: Process all pending SASL data
-
由 Daniel P. Berrange 提交于
virExec would only resolved the binary to $PATH if no env variables were being set. Since there is no execvep() API in POSIX, we use virFindFileInPath to manually resolve the binary and then use execv() instead of execvp().
-
- 18 3月, 2011 14 次提交
-
-
由 Jim Fehlig 提交于
Add a new xen driver based on libxenlight [1], which is the primary toolstack starting with Xen 4.1.0. The driver is stateful and runs privileged only. Like the existing xen-unified driver, the libxenlight driver is accessed with xen:// URI. Driver selection is based on the status of xend. If xend is running, the libxenlight driver will not load and xen:// connections are handled by xen-unified. If xend is not running *and* the libxenlight driver is available, xen:// connections are deferred to the libxenlight driver. V6: - Address several code style issues noted by Daniel Veillard - Make drive work with xen:/// URI - Hold domain object reference while domain is injected in libvirt event loop. Race found and fixed by Markus Groß. V5: - Ensure events are unregistered when domain private data is destroyed. Discovered and fixed by Markus Groß. V4: - Handle restart of libvirtd, reconnecting to previously started domains - Rebased to current master - Tested against Xen 4.1 RC7-pre (c/s 22961:c5d121fd35c0) V3: - Reserve vnc port within driver when autoport=yes V2: - Update to Xen 4.1 RC6-pre (c/s 22940:5a4710640f81) - Rebased to current master - Plug memory leaks found by Stefano Stabellini and valgrind - Handle SHUTDOWN_crash domain death event [1] http://lists.xensource.com/archives/html/xen-devel/2009-11/msg00436.html
-
由 Jiri Denemark 提交于
Calling most hash APIs is not safe from inside of an iterator callback. Exceptions are APIs that do not modify the hash table and removing current hash entry from virHashFroEach callback. This patch make all APIs which are not safe fail instead of just relying on the callback being nice not calling any unsafe APIs.
-
由 Jiri Denemark 提交于
-
由 Wen Congyang 提交于
Steps to reproduce this bug: # cat test.sh #! /bin/bash -x virsh start domain sleep 5 virsh qemu-monitor-command domain 'cpu_set 2 online' --hmp # while true; do ./test.sh ; done Then libvirtd will crash. The reason is that: we add a reference of obj when we open the monitor. We will reduce this reference when we free the monitor. If the reference of monitor is 0, we will free monitor automatically and the reference of obj is reduced. But in the function qemuDomainObjExitMonitorWithDriver(), we reduce this reference again when the reference of monitor is 0. It will cause the obj be freed in the function qemuDomainObjEndJob(). Then we start the domain again, and libvirtd will crash in the function virDomainObjListSearchName(), because we pass a null pointer(obj->def->name) to strcmp(). Signed-off-by: NWen Congyang <wency@cn.fujitsu.com>
-
由 Wen Congyang 提交于
This bug was reported by Shi Jin(jinzishuai@gmail.com): ============= # virsh attach-disk RHEL6RC /var/lib/libvirt/images/test3.img vdb \ --driver file --subdriver qcow2 Disk attached successfully # virsh save RHEL6RC /var/lib/libvirt/images/memory.save Domain RHEL6RC saved to /var/lib/libvirt/images/memory.save # virsh restore /var/lib/libvirt/images/memory.save error: Failed to restore domain from /var/lib/libvirt/images/memory.save error: internal error unsupported driver name 'file' for disk '/var/lib/libvirt/images/test3.img' ============= We check the driver name when we start or restore VM, but we do not check it while attaching a disk. This adds the same check on disk driverName used in qemuBuildCommandLine to qemudDomainAttachDevice. Signed-off-by: NWen Congyang <wency@cn.fujitsu.com>
-
由 Daniel Veillard 提交于
* docs/logging.html.in: document the fact that starting from 0.9.0 the server logs goes to libvirtd.log instead of syslog by default, describe the debug buffer, restructure the page and add a couple more examples
-
由 Daniel Veillard 提交于
As pointed out, locking the buffer from the signal handler cannot been guaranteed to be safe, so to avoid any hazard we prefer the trade off of dumping logs possibly messed up by concurrent logging activity rather than risk a daemon crash. * src/util/logging.c: change virLogEmergencyDumpAll() to not take any lock on the log buffer but reset buffer content variables to an empty set before starting the actual dump.
-
由 Wen Congyang 提交于
Steps to reproduce this bug: # virsh qemu-monitor-command domain 'cpu_set 2 online' --hmp The domain has 2 cpus, and we try to set the third cpu online. The qemu crashes, and this command will hang. The reason is that the refs is not 1 when we unwatch the monitor. We lock the monitor, but we do not unlock it. So virCondWait() will be blocked. Signed-off-by: NWen Congyang <wency@cn.fujitsu.com>
-
由 Hu Tao 提交于
-
由 Hu Tao 提交于
Make virDomainObjParseNode() static since it is called only in one file.
-
由 Nikunj A. Dadhania 提交于
* Correct the documentation for cgroup: the swap_hard_limit indicates mem+swap_hard_limit. * Change cgroup private apis to: virCgroupGet/SetMemSwapHardLimit Signed-off-by: NNikunj A. Dadhania <nikunj@linux.vnet.ibm.com>
-
由 Alex Williamson 提交于
I'm proposing we make use of $PCIDIR/reset in qemu-kvm to reset devices on VM reset. We need to add it to libvirt's list of files that get ownership for device assignment. Signed-off-by: NAlex Williamson <alex.williamson@redhat.com>
-
由 Jim Fehlig 提交于
xen-unstable c/s 21118:28e5409e3fb3 bumped sysctl version to 8. xen-unstable c/s 21212:de94884a669c introduced CPU pools feature, adding another member to xen_domctl_getdomaininfo struct. Add a corresponding domctl v7 struct in xen hypervisor sub-driver and detect sysctl v8 during initialization.
-
由 Matthias Bolte 提交于
The virCond of the remote_thread_call struct was leaked in some places. This results in leaking the underlying mutex. Which in turn leaks a handle on Windows. Reported by Aliaksandr Chabatar and Ihar Smertsin.
-
- 17 3月, 2011 2 次提交
-
-
由 Eric Blake 提交于
When building for an older distro, it's convenient to just tell rpmbuild to define dist (for example, to .el6_0), rather than also remembering to define rhel to 6. * libvirt.spec.in: Guess %{rhel} based on %{dist}. Based on an idea by Jiri Denemark.
-
由 Laine Stump 提交于
A bug in libnl (see https://bugzilla.redhat.com/show_bug.cgi?id=677724 and https://bugzilla.redhat.com/show_bug.cgi?id=677725) makes it very easy to create a failure to connect to the netlink socket when trying to open a macvtap network device ("type='direct'" in domain interface XML). When that error occurred (during a call to libnl's nl_connect() from libvirt's nlComm(), there was no log message, leading virsh (for example) to report "unknown error". There were two other cases in nlComm where an error in a libnl function might return with failure but no error reported. In all three cases, this patch logs a message which will hopefully be more useful. Note that more detailed information about the failure might be available from libnl's nl_geterror() function, but it calls strerror(), which is not threadsafe, so we can't use it.
-
- 16 3月, 2011 4 次提交
-
-
由 Osier Yang 提交于
If pool xml has no definition for "port", then "Segmentation fault" happens when jumping to "cleanup:" to do "VIR_FREE(port)", as "port" was not initialized in this situation. * src/conf/storage_conf.c
-
由 Eric Blake 提交于
* src/qemu/qemu_monitor.h (qemuMonitorMigrateToFd): New prototype. * src/qemu/qemu_monitor.c (qemuMonitorMigrateToFd): New function.
-
由 Eric Blake 提交于
POSIX states about dd: If the bs=expr operand is specified and no conversions other than sync, noerror, or notrunc are requested, the data returned from each input block shall be written as a separate output block; if the read returns less than a full block and the sync conversion is not specified, the resulting output block shall be the same size as the input block. If the bs=expr operand is not specified, or a conversion other than sync, noerror, or notrunc is requested, the input shall be processed and collected into full-sized output blocks until the end of the input is reached. Since we aren't using conv=sync, there is no zero-padding, but our use of bs= means that a short read results in a short write. If instead we use ibs= and obs=, then short reads are collected and dd only has to do a single write, which can make dd more efficient. * src/qemu/qemu_monitor.c (qemuMonitorMigrateToFile): Avoid 'dd bs=', since it can cause short writes.
-
由 Eric Blake 提交于
"virsh connect ''" should try to connect to the default connection, but the previous patch made it issue a warning about an invalid URI. * tools/virsh.c (VSH_OFLAG_EMPTY_OK): New option flag. (vshCommandOptString): Per the declaration, value is required to be non-NULL. Honor new flag. (opts_connect): Allow empty string connection.
-
- 15 3月, 2011 4 次提交
-
-
由 Wen Congyang 提交于
-
由 Daniel P. Berrange 提交于
The VIR_FROM_RPC error domain is used generically for any RPC problem, not simply XML-RPC problems. * src/util/virterror.c: s/XML-RPC/RPC/
-
由 Daniel P. Berrange 提交于
* configure.ac: Check for geteuid() * src/util/util.h: Compat for geteuid()
-
由 Daniel P. Berrange 提交于
The virCommandNewArgs() method would free the virCommandPtr if it failed to add the args. This meant errors reported in virCommandAddArgSet() were lost. Simply removing the check for errors from the constructor means they can be reported correctly later The virCommandAddEnvPassCommon() method failed to check for errors before reallocating the cmd->env array, causing a potential SEGV if cmd was NULL The virCommandAddArgSet() method needs to validate that at least 1 element in 'val's parameter is non-NULL, otherwise code like cmd = virCommandNew(binary) virCommandAddAtg(cmd, "foo") Would end up trying todo execve("foo"), if binary was NULL.
-