- 20 4月, 2016 23 次提交
-
-
由 Jason J. Herne 提交于
virTypedParamsValidate currently uses an index based check to find duplicate parameters. This check does not work. Consider the following simple example: We have only 2 keys A (multiples allowed) B (multiples NOT allowed) We are given the following list of parameters to check: A A B If you work through the validation loop you will see that our last iteration through the loop has i=2 and j=1. In this case, i > j and keys[j].value.i will indicate that multiples are not allowed. Both conditionals are satisfied so an incorrect error will be given: "parameter '%s' occurs multiple times" This patch replaces the index based check with code that remembers the name of the last parameter seen and only triggers the error case if the current parameter name equals the last one. This works because the list is sorted and duplicate parameters will be grouped together. In reality, we hit this bug while using selective block migration to migrate a guest with 5 disks. 5 was apparently just the right number to push i > j and hit this bug. virsh migrate --live guestname --copy-storage-all --migrate-disks vdb,vdc,vdd,vde,vdf qemu+ssh://dsthost/systemSigned-off-by: NJason J. Herne <jjherne@linux.vnet.ibm.com> Reviewed-by: NEric Farman <farman@linux.vnet.ibm.com> (cherry picked from commit 0e570a6a)
-
由 John Ferlan 提交于
Commit id '4b75237f' seems to have triggered Coverity into finding at least one memory leak in xen_xl.c for error path for cleanup where the listenAddr would be leaked. Reviewing other callers, it seems that qemu_parse_command.c would have the same issue, so just it too. (cherry picked from commit 727a3c58)
-
由 Jim Fehlig 提交于
To ensure the libvirt libxl driver will build with future versions of Xen where the libxl API may change in incompatible ways, explicitly use LIBXL_API_VERSION 0x040200. The libxl driver does use new libxl APIs that have been added since Xen 4.2, but currently it does not make use of any changes made to existing APIs such as libxl_domain_create_restore or libxl_set_vcpuaffinity. The version can be bumped if/when the libxl driver consumes the changed APIs. Further details can be found in the following discussion thread https://www.redhat.com/archives/libvir-list/2016-April/msg00178.htmlSigned-off-by: NJim Fehlig <jfehlig@suse.com> (cherry picked from commit e7440656)
-
由 Richard W.M. Jones 提交于
In a few places in libvirt we busy-wait for events, for example qemu creating a monitor socket. This is problematic because: - We need to choose a sufficiently small polling period so that libvirt doesn't add unnecessary delays. - We need to choose a sufficiently large polling period so that the effect of busy-waiting doesn't affect the system. The solution to this conflict is to use an exponential backoff. This patch adds two functions to hide the details, and modifies a few places where we currently busy-wait. Signed-off-by: NRichard W.M. Jones <rjones@redhat.com> (cherry picked from commit beaa447a)
-
由 Cole Robinson 提交于
Move some API specific documentation out of -docs package and into -devel, and some end user docs out of -devel and into -docs, then drop the -devel dep on -docs. This is more in line with the suggested Fedora guidelines. https://bugzilla.redhat.com/show_bug.cgi?id=1310155 (cherry picked from commit feffcc03)
-
由 Cole Robinson 提交于
Take setlocale/gettext error handling pattern from tools/virsh-* and use it for all standalone binaries via a new shared virGettextInitialize routine. The virsh* pattern differed slightly from other callers. All users now consistently: * Ignore setlocale errors. virsh has done this forever, presumably for good reason. This has been partially responsible for some bug reports: https://bugzilla.redhat.com/show_bug.cgi?id=1312688 https://bugzilla.redhat.com/show_bug.cgi?id=1026514 https://bugzilla.redhat.com/show_bug.cgi?id=1016158 * Report the failed function name * Report strerror (cherry picked from commit e7db2278)
-
由 Cole Robinson 提交于
https://bugzilla.redhat.com/show_bug.cgi?id=1147737 (cherry picked from commit 0f8be253)
-
由 Cole Robinson 提交于
We use device-mapper to enumerate all dm devices, and filter out the list of multipath devices by checking the target_type string name. The code however cancels all scanning if we encounter target_type=NULL I don't know how to reproduce that situation, but a user was hitting it in their setup, and inspecting the lvm2/device-mapper code shows many places where !target_type is explicitly ignored and processing continues on to the next device. So I think we should do the same https://bugzilla.redhat.com/show_bug.cgi?id=1069317 (cherry picked from commit 8f8c0feb)
-
由 Cole Robinson 提交于
The watchdog cli refactoring in 4666b762 dropped the temporary variable we use to convert to action=dump to action=pause for the qemu cli, and stored the converted value in the domain structure. Our other watchdog handling code then treated it as though the user requested action=pause, which broke action=dump handling. Revive the temporary variable to fix things. (cherry picked from commit a91177c8)
-
由 Cole Robinson 提交于
Trying to reload/SIGUSR1 virtlogd or virtlockd fails with: error : virNetDaemonRun:747 : internal error: Not all servers restored, cannot run server Commit 252610f7 changed the daemon state json to allow tracking multiple servers. However it missed clearing dmn->srvObject after the json is empty, like the previous code paths handled. Later on in virNewDaemonRun, dmn->srvObject is expected to be empty otherwise we throw the above error. https://bugzilla.redhat.com/show_bug.cgi?id=1311013 (cherry picked from commit 9b69f022)
-
由 Ján Tomko 提交于
Commit 119cd06e started setting the primary bool for the first user-specified video even if user omitted the 'primary' attribute. However this was done before the addition of the implicit device. This broke startup of transient qemu domains with no <video>: https://bugzilla.redhat.com/show_bug.cgi?id=1325757 Move this default to virDomainDefPostParseInternal, after the addition of the implicit video device, to catch the implicit video as well. (cherry picked from commit 6d8b6d28)
-
由 Cole Robinson 提交于
https://bugzilla.redhat.com/show_bug.cgi?id=1303885 (cherry picked from commit cdced012)
-
由 Martin Kletzander 提交于
Commit c3bd0019 forgot to cleanup after itself. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1325043Signed-off-by: NMartin Kletzander <mkletzan@redhat.com> (cherry picked from commit 16b41728)
-
由 Andrea Bolognani 提交于
The check is supposed to stop users from trying to compile virt-login-shell on Windows by erroring out during the configure phase; however, there are two flaws in it: * the value of "x$with_win" is compared to "yes" instead of "xyes" (note the "x" in the first string) * "test" is not being used, so the script will actually try to run a command called "x$with_win" instead of performing string comparison This patch fixes both issues. (cherry picked from commit ccf58bd7)
-
由 Roman Bogorodskiy 提交于
FreeBSD lacks ENODATA, and viruuid.c redefines it to EIO, but it's not actually using it. On the other hand, we have virrandom.c that's using ENODATA. So make this re-definition common by moving it to internal.h, so all the current and possible future users don't need to care about that. (cherry picked from commit edc028d1)
-
由 Wei Liu 提交于
In the latest libxenlight code, libxl_domain_create_restore accepts a new argument. Update libvirt's libxl driver for that. Use the macro provided by libxenlight to detect which version should be used. The new parameter (send_back_fd) is set to -1 because libvirt provides no such fd. Signed-off-by: NWei Liu <wei.liu2@citrix.com> Message-id: 1459866012-27081-1-git-send-email-wei.liu2@citrix.com (cherry picked from commit 216650f1)
-
由 Peter Krempa 提交于
The new perf code didn't bother to clear a pointer in 'priv' causing a double free or other memory corruption goodness if a VM failed to start. Clear the pointer after freeing the memory. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1324757 (cherry picked from commit 03e8d5fb)
-
由 Peter Krempa 提交于
For device hotplug, the new alias ID needs to be checked in the list rather than using the count of devices. Unplugging a device that is not last in the array will make further hotplug impossible due to alias collision. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1324551 (cherry picked from commit be6e92f5)
-
由 Guido Günther 提交于
to avoid the test failure 7) Test driver "xen" ... 2016-03-31 12:53:26.950+0000: 22430: debug : virDriverLoadModule:54 : Module load xen 2016-03-31 12:53:26.950+0000: 22430: error : virDriverLoadModule:73 : failed to load module /build/libvirt-1.3.3~rc1/debian/build/src/.libs/libvirt_driver_xen.so /build/libvirt-1.3.3~rc1/debian/build/src/.libs/libvirt_driver_xen.so: undefined symbol: xlu_cfg_destroy FAILED (cherry picked from commit 12b239a9)
-
- 15 4月, 2016 3 次提交
-
-
由 Pavel Hrdina 提交于
fdstream.c: In function 'virFDStreamWrite': fdstream.c:390:29: error: logical 'or' of equal expressions [-Werror=logical-op] if (errno == EAGAIN || errno == EWOULDBLOCK) { ^~ Fedora rawhide now uses gcc 6.0 and there is a bug with -Wlogical-op producing false warnings. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69602 Use GCC pragma push/pop and ignore -Wlogical-op for GCC that supports push/pop pragma and also has this bug. Signed-off-by: NPavel Hrdina <phrdina@redhat.com> (cherry picked from commit d713a6b1)
-
由 Pavel Hrdina 提交于
Signed-off-by: NPavel Hrdina <phrdina@redhat.com> (cherry picked from commit 7fb81831)
-
由 Ján Tomko 提交于
Some places already check for "virt-" prefix as well as plain "virt". virQEMUCapsHasPCIMultiBus did not, resulting in multiple PCI devices having assigned the same unnumbered "pci" alias. Add a test for the "virt-2.6" machine type which also omits the <model type='virtio'/> in <interface>, to check if qemuDomainDefaultNetModel works too. https://bugzilla.redhat.com/show_bug.cgi?id=1325085 (cherry picked from commit f06ca25d)
-
- 06 4月, 2016 1 次提交
-
-
由 Daniel Veillard 提交于
- docs/news.html.in libvirt.spec.in: update for release - po/*.po*: regenerated
-
- 05 4月, 2016 8 次提交
-
-
由 Boris Fiuczynski 提交于
Signed-off-by: NBoris Fiuczynski <fiuczy@linux.vnet.ibm.com>
-
由 John Ferlan 提交于
Commit id '3992ff14' added the prototype for networkGetActualType with 1 parameter, but added 2 ATTRIBUTE_NONNULL's (assume from a cut-n-paste), just remove (2).
-
由 John Ferlan 提交于
Commit id '59e7ef3c' misapplied a merge of commit id '01924475' to place the "-chardev" command after formatting the character backend value.
-
由 John Ferlan 提交于
Commit id 'e6944a52' misapplied a merge of commit id '01924475' to place the "-chardev" command after formatting the character backend value.
-
由 John Ferlan 提交于
Commit id '3cdcc910' misapplied a merge of commit id '01924475' to place the "-chardev" command after formatting the character backend value.
-
由 John Ferlan 提交于
Commit id '0e1e7ade' misapplied a merge of commit id '01924475' to place the "-chardev" command after formatting the character backend value.
-
由 John Ferlan 提交于
Commit id '5ab86400' misapplied a merge of commit id '01924475' to place the "-chardev" command after formatting the character backend value.
-
由 John Ferlan 提交于
Commit id '858bafeb' misapplied a merge of commit id '01924475' to place the "-chardev" command after formatting the character backend value.
-
- 04 4月, 2016 5 次提交
-
-
由 Martin Kletzander 提交于
Commit d77ffb68 added not only reporting of the PCI header type, but also parsing of that information. However, because there was no parsing done for the other sub-PCI capabilities, if there was any other capability then a valid header type name (like phys_function or virt_functions) the parsing would fail. This prevented passing node device XMLs that we generated into our own functions when dealing with, e.g. with SRIOV cards. Instead of reworking the whole parsing, just fix this one occurence and remove a test for it for the time being. Future patches will deal with the rest. Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
-
由 Laine Stump 提交于
Starting with commit f8e712fe, if you start a domain that has an <interface type='hostdev' (or that has <interface type='network'> where the network is a pool of devices for hostdev assignment), when you later try to add *another* interface (of any kind) with hotplug, the function qemuAssignDeviceNetAlias() fails as soon as it sees a "hostdevN" alias in the list of interfaces), causing the attach to fail. This is because (starting with f8e712fe) the device alias names are assigned during the new function qemuProcessPrepareDomain(), which is called *before* networkAllocateActualDevice() (which is called from qemuProcessPrepareHost(), which is called from qemuProcessLaunch()). Prior to that commit, networkAllocateActualDevice() was called first. The problem with this is that the alias for interfaces that are really a hostdev (<interface type='hostdev'>) is of the form "hostdevN" (just like other hostdevs), while other interfaces are "netN". But if you don't know that the interface is going to be a hostdev at the time you assign the alias name, you can't name it differently. (As far as I've seen so far, the change in name by itself wouldn't have been a problem (other than just an outwardly noticeable change in behavior) except for the abovementioned failure to attach/detach new interfaces. Rather than take the chance that there may be other not-yet-revealed problems associated with changing the alias name, this patch changes the way that aliases are assigned to restore the old behavior. Old: In the past, assigning an alias to an interface was skipped if it was seen that the interface was type='hostdev' - we knew that the hostdev part of the interface was also in the list of hostdevs (that's part of what happens in networkAllocateActualDevice()) and it would be assigned when all the other hostdev aliases were assigned. New: When assigning an alias to an interface, we haven't yet called networkAllocateActualDevice() to construct the hostdev part of the interface, so we can't just wait for the loop that creates aliases for all the hostdevs (there's nothing on that list for this device yet!). Instead we handle it immediately in the loop creating interface aliases, by calling the new function networkGetActualType() to determine if it is going to be hostdev, and if so calling qemuAssignDeviceHostdevAlias() instead. Some adjustments have to be made to both qemuAssignDeviceHostdevAlias() and to qemuAssignDeviceNetAlias() to accommodate this. In both of them, an error return from qemuDomainDeviceAliasIndex() is no longer considered an error; instead it's just ignored (because it almost certainly means that the alias string for the device was "net" when we expected "hostdev" or vice versa). in qemuAssignDeviceHostdevAlias() we have to look at all interface aliases for hostdevN in addition to looking at all hostdev aliases (this wasn't necessary in the past, because both the interface entry and the hostdev entry for the device already pointed at the device info; no longer the case since the hostdev entry hasn't yet been setup). Fortunately the buggy behavior hasn't yet been in any official release of libvirt.
-
由 Laine Stump 提交于
In certain cases, we need to assign a hostdevN-style alias in a case when we don't have a virDomainHostdevDefPtr (instead we have a virDomainNetDefPtr). Since qemuAssignDeviceHostdevAlias() doesn't use anything in the virDomainHostdevDef except the alias string itself anyway, this patch just changes the arguments to pass a pointer to the alias pointer instead.
-
由 Laine Stump 提交于
There are times when it's necessary to learn the actual type of a network connection before any resources have been allocated (e.g. during qemuProcessPrepareDomain()), but in the past it was necessary to call networkAllocateActualDevice() in order to have the actual type filled in. This new function returns the type of network that *will be* setup once it actually happens, but without making any changes on the host.
-
由 Martin Kletzander 提交于
The paths have the domain ID in them. Without cleaning them, they would contain the same ID even after multiple restarts. That could cause various problems, e.g. with access. Add function qemuDomainClearPrivatePaths() for this as a counterpart of qemuDomainSetPrivatePaths(). Signed-off-by: NMartin Kletzander <mkletzan@redhat.com>
-