- 28 1月, 2011 14 次提交
-
-
由 Daniel P. Berrange 提交于
The refactoring of QEMU command startup was comitted with a couple of VIR_WARN lines left in from debugging. * src/qemu/qemu_driver.c: Remove log warning lines
-
由 Daniel P. Berrange 提交于
When qemuMonitorSetCapabilities() fails, there is no need to call qemuMonitorClose(), because the caller will already see the error code and tear down the entire VM. The extra call to qemuMonitorClose resulted in a double-free due to it removing a ref count prematurely. * src/qemu/qemu_driver.c: Remove premature close of monitor
-
由 Daniel P. Berrange 提交于
If the event loop takes a very long time todo something, it is possible for the 'self pipe' buffer to become full at which point the entire event loop + remote driver deadlock. Use a boolean flag to ensure we have strict one-in, one-out behaviour on writes/reads of the 'self pipe'
-
由 Osier Yang 提交于
* docs/remote.html.in
-
由 Eric Blake 提交于
Regression in commit caa805ea let a lot of bad messages slip in. * cfg.mk (msg_gen_function): Fix function name. * src/qemu/qemu_cgroup.c (qemuRemoveCgroup): Fix fallout from 'make syntax-check'. * src/qemu/qemu_driver.c (qemudDomainGetInfo) (qemuDomainWaitForMigrationComplete, qemudStartVMDaemon) (qemudDomainSaveFlag, qemudDomainAttachDevice) (qemuDomainUpdateDeviceFlags): Likewise. * src/qemu/qemu_hotplug.c (qemuDomainAttachHostUsbDevice) (qemuDomainDetachPciDiskDevice, qemuDomainDetachSCSIDiskDevice): Likewise.
-
由 Hu Tao 提交于
When attaching device from a xml file and the device is mis-configured, virsh gives mis-leading message "out of memory". This patch fixes this. Signed-off-by: NEric Blake <eblake@redhat.com>
-
由 Wen Congyang 提交于
If the memory of guest OS is changed constantly, the live migration can not be ended ever for ever. We can use the command 'virsh migrate-setmaxdowntime' to control the live migration. But the value of maxdowntime is diffcult to calculate because it depends on the transfer speed of network and constantly changing memroy size. We need a easy way to control the live migration. This patch adds the support of forcing guest to suspend at timeout. With this patch, when we migrate the guest OS, we can specify a timeout. If the live migration timeouts, auto-suspend the guest OS, where the migration will complete offline.
-
由 Wen Congyang 提交于
Show migration progress if `migrate --verbose'.
-
由 Hu Tao 提交于
While migration is in progress and virsh is waiting for its completion, user may want to terminate the progress by pressing Ctrl-C. But virsh just exits on user's Ctrl-C leaving migration in background that user isn't even aware of. It's not reasonable. This patch changes the behaviour for migration. For other commands Ctrl-C still terminates virsh itself.
-
由 Eric Blake 提交于
* src/qemu/qemu_command.c (qemuBuildChrChardevStr): Alter the chardev alias. (qemuBuildCommandLine): Output an id for the chardev counterpart. * tests/qemuxml2argvdata/*: Update tests to match. Reported by Daniel P. Berrange.
-
由 Wen Congyang 提交于
Steps to reproduce this bug: 1. service libvirtd start 2. virsh start <domain> 3. kill -STOP $(cat /var/run/libvirt/qemu/<domain>.pid) 4. service libvirtd restart 5. kill -9 $(cat /var/run/libvirt/qemu/<domain>.pid) Then libvirtd will core dump or be in deadlock state. Make sure that json is built into libvirt and the version of qemu is newer than 0.13.0. The reason of libvirtd cores dump is that: We add vm->refs when we alloc the memory, and decrease it in the function qemuHandleMonitorEOF() in other thread. We add vm->refs in the function qemuConnectMonitor() and decrease it when the vm is inactive. The libvirtd will block in the function qemuMonitorSetCapabilities() because the vm is stopped by signal SIGSTOP. Now the vm->refs is 2. Then we kill the vm by signal SIGKILL. The function qemuMonitorSetCapabilities() failed, and then we will decrease vm->refs in the function qemuMonitorClose(). In another thread, mon->fd is broken and the function qemuHandleMonitorEOF() is called. If qemuHandleMonitorEOF() decreases vm->refs before qemuConnectMonitor() returns, vm->refs will be decrease to 0 and the memory is freed. We will call qemudShutdownVMDaemon() as qemuConnectMonitor() failed. The memory has been freed, so qemudShutdownVMDaemon() is too dangerous. We will reference NULL pointer in the function virDomainConfVMNWFilterTeardown(): ============= void virDomainConfVMNWFilterTeardown(virDomainObjPtr vm) { int i; if (nwfilterDriver != NULL) { for (i = 0; i < vm->def->nnets; i++) virDomainConfNWFilterTeardown(vm->def->nets[i]); } } ============ vm->def->nnets is not 0 but vm->def->nets is NULL(We don't set vm->def->nnets to 0 when we free vm). We should add an extra reference of vm to avoid vm to be deleted if qemuConnectMonitor() failed. Signed-off-by: NWen Congyang <wency@cn.fujitsu.com>
-
由 Jiri Denemark 提交于
As noticed by Eric, commit 8e28c5d4, which fixed generation of virtio-serial port numbers, forgot to adjust test files which resulted in make check failure.
-
由 Justin Clift 提交于
Addresses BZ # 622534: https://bugzilla.redhat.com/show_bug.cgi?id=622534
-
由 Eric Blake 提交于
Regression introduced in commit e6b68d74 (Nov 2010). Prior to that point, handlesAlloc was always a multiple of EVENT_ALLOC_EXTENT (10), and was an int (so even if the subtraction had been able to wrap, a negative value would be less than the count not try to free the handles array). But after that point, VIR_RESIZE_N made handlesAlloc grow geometrically (with a pattern of 10, 20, 30, 45 for the handles array) but still freed in multiples of EVENT_ALLOC_EXTENT; and the count changed to size_t. Which means that after 31 handles have been created, then 30 handles destroyed, handlesAlloc is 5 while handlesCount is 1, and since (size_t)(1 - 5) is indeed greater than 1, this then tried to free 10 elements, which had the awful effect of nuking the handles array while there were still live handles. Nuking live handles puts libvirtd in an inconsistent state, and was easily reproducible by starting and then stopping 60 faqemu guests. * daemon/event.c (virEventCleanupTimeouts, virEventCleanupHandles): Avoid integer wrap-around causing us to delete the entire array while entries are still active. * tests/eventtest.c (mymain): Expose the bug.
-
- 27 1月, 2011 5 次提交
-
-
由 Justin Clift 提交于
-
由 Osier Yang 提交于
This new parameter allows user specifies where the client cerficate, client key, CA certificate of x509 is, instead of hardcoding it. If 'pkipath' is not specified, and the user is not root, try to find files in $HOME/.pki/libvirt, as long as one of client cerficate, client key, CA certificate can not be found, use default global location (LIBVIRT_CACERT, LIBVIRT_CLIENTCERT, LIBVIRT_CLIENTKEY, see src/remote/remote_driver.h) Example of use: [root@Osier client]# virsh -c qemu+tls://10.66.93.111/system?pkipath=/tmp/pki/client error: Cannot access CA certificate '/tmp/pki/client/cacert.pem': No such file or directory error: failed to connect to the hypervisor [root@Osier client]# ls -l total 24 -rwxrwxr-x. 1 root root 6424 Jan 24 21:35 a.out -rw-r--r--. 1 root root 1245 Jan 23 19:04 clientcert.pem -rw-r--r--. 1 root root 132 Jan 23 19:04 client.info -rw-r--r--. 1 root root 1679 Jan 23 19:04 clientkey.pem [root@Osier client]# cp /tmp/cacert.pem . [root@Osier client]# virsh -c qemu+tls://10.66.93.111/system?pkipath=/tmp/pki/client Welcome to virsh, the virtualization interactive terminal. Type: 'help' for help with commands 'quit' to quit virsh # * src/remote/remote_driver.c: adds support for the new pkipath URI parameter
-
由 Osier Yang 提交于
If vol->capacity is odd, the capacity will be rounded down by devision, this patch is to round it up instead of rounding down, to be safer in case of one writes to the volume with the size he used to create. - src/storage/storage_backend_logical.c: make sure size is not rounded down
-
由 Daniel Veillard 提交于
-
由 David Allan 提交于
Per the discussion in: https://bugzilla.redhat.com/show_bug.cgi?id=670394 The port numbering should start from 1, not 0. We assign maxport + 1, so start maxport at 0.
-
- 26 1月, 2011 12 次提交
-
-
由 Laine Stump 提交于
If a guest image is saved in compressed format, and the restore fails in some way after the intermediate process used to uncompress the image has been started, but before qemu has been started to hook up to the uncompressor, libvirt will endlessly wait for the uncompressor to finish, but it never will because it's still waiting to have something hooked up to drain its output. The solution is to close the pipes on both sides of the uncompressor, then send a SIGTERM before calling waitpid on it (only if the restore has failed, of course).
-
由 Daniel P. Berrange 提交于
On x86_64 hosts, /usr/lib64 must be used instead of /usr/lib Rather than attempt to whitelist architectures, just check for existance of /usr/lib64 * autogen.sh: Fix to use /usr/lib64 if it exists
-
由 Daniel P. Berrange 提交于
Handle poll errors in the same way as hangup event * src/qemu/qemu_monitor.c: Handle error events
-
由 Daniel P. Berrange 提交于
Add a hook to the error reporting APIs to allow specific error messages to be filtered out. Wire up libvirtd to remove VIR_ERR_NO_DOMAIN & similar error codes from the logs. They are still logged at DEBUG level. * daemon/libvirtd.c: Filter VIR_ERR_NO_DOMAIN and friends * src/libvirt_private.syms, src/util/virterror.c, src/util/virterror_internal.h: Hook for changing error reporting level
-
由 Daniel P. Berrange 提交于
This reverts the additions in commit abff683f taking us back to state where all errors are fully logged in both libvirtd and normal clients. THe intent was to stop VIR_ERR_NO_DOMAIN (No such domain with UUID XXXX) messages from client apps polluting syslog The change affected all error codes, but more seriously, it also impacted errors from internal libvirtd infrastructure For example guest autostart no longer logged errors. The libvirtd network code no longer logged some errors. This makes debugging incredibly hard * daemon/libvirtd.c: Remove error log priority filter * src/util/virterror.c, src/util/virterror_internal.h: Remove callback for overriding log priority
-
由 Daniel P. Berrange 提交于
Remove use of brackets around following return statement. Fix indentation of two switch statements
-
由 Laine Stump 提交于
This patch is a partial resolution to the following bug: https://bugzilla.redhat.com/show_bug.cgi?id=667756 (to complete the fix, an updated selinux-policy package is required, to add the policy that allows libvirt to set the context of a fifo, which was previously not allowed). Explanation : When an incoming migration is over a pipe (for example, if the image was compressed and is being fed through gzip, or was on a root-squash nfs server, so needed to be opened by a child process running as a different uid), qemu cannot read it unless the selinux context label for the pipe has been set properly. The solution is to check the fd used as the source of the migration just before passing it to qemu; if it's a fifo (implying that it's a pipe), we call the newly added virSecurityManagerSetFDLabel() function to set the context properly.
-
由 Laine Stump 提交于
A need was found to set the SELinux context label on an open fd (a pipe, as a matter of fact). This patch adds a function to the security driver API that will set the label on an open fd to secdef.label. For all drivers other than the SELinux driver, it's a NOP. For the SElinux driver, it calls fsetfilecon(). If the return is a failure, it only returns error up to the caller if 1) the desired label is different from the existing label, 2) the destination fd is of a type that supports setting the selinux context, and 3) selinux is in enforcing mode. Otherwise it will return success. This follows the pattern of the existing function SELinuxSetFilecon().
-
由 Justin Clift 提交于
So people looking to download the language bindings, but don't know they're under the "Docs" area.
-
由 Michal Privoznik 提交于
bugfix for https://bugzilla.redhat.com/show_bug.cgi?id=671050 virsh simply refutes to detach-interface in case when multiple interfaces are attached and --mac is not specified.
-
由 Wen Congyang 提交于
Signed-off-by: NWen Congyang <wency@cn.fujitsu.com>
-
由 Osier Yang 提交于
The problem was introduced by commit 4303c91c, which removed the checking of domain state, this patch is to fix it. Otherwise, improper error will be thrown, e.g. error: Failed to save domain rhel6 state error: cannot resolve symlink /var/lib/libvirt/qemu/save/rhel6.save: No such file or directory
-
- 25 1月, 2011 2 次提交
-
-
由 Eric Blake 提交于
Running 'make check' can sometimes fail in the gnulib/tests subdirectory, when doing an incremental build, because ./bootstrap generates a Makefile.am that tries to refer to ../../.. instead of ../.., and gets lost. This may be an upstream gnulib bug, where a more elegant solution will present itself in the future: http://thread.gmane.org/gmane.comp.lib.gnulib.bugs/24898 But in the meantime, I was able to reproduce both the issue, and this solution to work around it. * bootstrap.conf (bootstrap_epilogue): Ensure that no stray ../../.. components remain in gnulib/tests/Makefile.in. Reported by Serge Hallyn.
-
由 Cole Robinson 提交于
In QEMU, the card itself is a PCI device, but it requires a codec (either -device hda-output or -device hda-duplex) to actually output sound. Specifying <sound model='ich6'/> gives us -device intel-hda -device hda-duplex I think it's important that a simple <sound model='ich6'/> sets up a useful codec, to have consistent behavior with all other sound cards. This is basically Dan's proposal of <sound model='ich6'> <codec type='output' slot='0'/> <codec type='duplex' slot='3'/> </sound> without the codec bits implemented. The important thing is to keep a consistent API here, we don't want some <sound> devs require tweaking codecs but not others. Steps I see to accomplishing this: - every <sound> device has a <codec type='default'/> (unless codecs are manually specified) - <codec type='none'/> is required to specify 'no codecs' - new audio settings like mic=on|off could then be exposed in <sound> or <codec> in a consistent manner for all sound models v2: Use model='ich6' v3: Use feature detection, from eblake Set codec id, bus, and cad values v4: intel-hda isn't supported if -device isn't available v5: Comment spelling fixes
-
- 22 1月, 2011 7 次提交
-
-
由 Matthias Bolte 提交于
-
由 Eric Blake 提交于
This bug has been present since before the time that commit f8a519 (Dec 2008) tried to make the dispatch loop re-entrant. Dereferencing eventLoop.handles outside the lock risks crashing, since any other thread could have reallocated the array in the meantime. It's a narrow race window, however, and one that would have most likely resulted in passing bogus data to the callback rather than actually causing a segv, which is probably why it has gone undetected this long. * daemon/event.c (virEventDispatchHandles): Cache data while inside the lock, as the array might be reallocated once outside.
-
由 Eric Blake 提交于
* .gnulib: Update to latest, for maintainer-makefile fix. Reported by Matthias Bolte.
-
由 Cole Robinson 提交于
- Add augeas tests - Clarify vnc_auto_unix_socket precedence in qemu.conf
-
由 Cole Robinson 提交于
If vnc_auto_unix_socket is enabled, any VNC devices without a hardcoded listen or socket value will be setup to serve over a unix socket in /var/lib/libvirt/qemu/$vmname.vnc. We store the generated socket path in the transient VM definition at CLI build time.
-
由 Cole Robinson 提交于
QEMU supports serving VNC over a unix domain socket rather than traditional TCP host/port. This is specified with: <graphics type='vnc' socket='/foo/bar/baz'/> This provides better security access control than VNC listening on 127.0.0.1, but will cause issues with tools that rely on the lax security (virt-manager in fedora runs as regular user by default, and wouldn't be able to access a socket owned by 'qemu' or 'root'). Also not currently supported by any clients, though I have patches for virt-manager, and virt-viewer should be simple to update. v2: schema: Make listen vs. socket a <choice>
-
由 Cole Robinson 提交于
This will allow us to record transient runtime state in vm->def, like default VNC parameters. Accomplish this by adding an extra 'live' parameter to SetDefTransient, with similar semantics to the 'live' flag for AssignDef.
-