Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

4.150. libvirt

Updated libvirt packages that fix multiple bugs and add various enhancements are now available for Red Hat Enterprise Linux 6.
The libvirt library is a C API for managing and interacting with the virtualization capabilities of Linux and other operating systems. In addition, libvirt provides tools for remote management of virtualized systems.

Bug Fixes

BZ#710150
Due to a bug in the qemuAuditDisk() function, hot unplug failures were never audited, and a hot unplug success was audited as a failure. This bug has been fixed, and auditing of disk hot unplug operations now works as expected.
BZ#711151
Previously, a bug in the qemu-img command line arguments prevented the creation of encrypted volumes. This update fixes the bug, and encrypted volumes can now be successfully created.
BZ#711206
Previously, when a debug process was being activated, the act of preparing a debug message ended up with dereferencing a Universally Unique Identifier (UUID) prior to the NULL argument check. As a consequence, an API running the debug process sometimes terminated unexpectedly with a segmentation fault. With this update, a patch has been applied to address this issue, and crashes no longer occur in the described scenario.
BZ#742646
Due to a programming mistake in the initialization code of the libvirtd daemon, the QEMU driver could have failed to find the user or group ID of the qemu application on the system. As a consequence, libvirtd failed to start. With this update, the error has been corrected and libvirtd now starts as expected.
BZ#741217
If the QEMU driver failed to update information about currently allocated memory, installing a new virtual machine failed with the following error message:
ERROR    cannot send monitor command '{"execute":"query-balloon"}':
Connection reset by peer
With this update, the driver has been modified to not consider this behavior as fatal. Installation now proceeds and finishes as expected.
BZ#690695
Previously, when running the "virsh vol-create-from" command on a Logical Volume Manager (LVM) storage pool, performance of the command was very low and the operation consumed an excessive amount of time. This bug has been fixed in the virStorageVolCreateXMLFrom() function, and the performance problem of the command no longer occurs.
BZ#690175
When migrating a QEMU domain and restarting the libvirtd daemon, the migration was not properly canceled. The domain was left on the target host or ended up in an unexpected state on the source host. With this update, the libvirtd daemon tracks ongoing migrations in a persistent file, and properly cancels them when the daemon is being restarted.
BZ#738146
The "virsh dump" command can fail to dump the core of a domain if the user sets incorrect permissions for the destination directory. Previously, the virsh(1) man page did not provide any information about the permissions required to successfully complete a domain core dump. This information is now included in the man page.
BZ#734773
When shutting down a guest operating system, libvirt killed the QEMU process without giving it enough time to flush all disk I/O buffers. This led in certain cases to loss of data or corruption of the virtual disk. With this update, libvirt gives QEMU enough time to flush the buffers and exits instead of forcibly killing the process.
BZ#738148
When the user started a virtual machine, changed its definition, and migrated the virtual machine, the new settings were not available on the destination. With this update, the settings are transferred to the destination by a live XML file which includes current settings of the running virtual machine. Now, settings are kept during the migration.
BZ#669549
Previously, libvirt did not exercise enough control over whether a domain change should affect the running domain, the persistent configuration, or both. Various virsh commands were inconsistent, and attempts to change a configuration of a running domain did not persist to the next boot. With this update, several libvirt commands have new flags to distinguish between live and persistent configurations. The corresponding virsh commands can be used with the "--config" and "--live" flags to provide a more consistent interface. Management applications have finer control over whether various configuration changes affect hot plug, next boot, or both.
BZ#674537
Various logic bugs affected the handling of snapshots in libvirt. Among these, restarting the libvirtd daemon would lose track of the current snapshot, and a change in QEMU behavior would trigger a latent bug in libvirt's ability to restore certain snapshots. Snapshots were therefore unreliable and hard to manage. This update provides a number of bug fixes and flags to the existing snapshot management APIs, so that libvirt can provide all the snapshot features, as documented. Management applications can use system checkpoint snapshots for better control when rolling back to known stable states of a virtual machine.
BZ#677229
Previously, libvirt did not support attaching of interfaces to an inactive virtual machine by using the "virsh attach-interface" command. Users had to use workarounds, for example editing the whole domain by executing "virsh edit". This update adds support for attaching interfaces even to inactive virtual machines. As a result, users do not need to use the workarounds, but can use virsh directly.
BZ#727474
Previously, libvirt used an improper separator (comma) in the "lvs" command. This caused the regular expression, which is used to parse the "lvs" output, to not function correctly. In addition, libvirt did not use the right mechanism to format multiple XML "devices" elements for multiple device paths of a striped volume. As a consequence, creation of any logical pool failed for LVM volume groups with striped volumes. With this update, a different separator (hash) is used. Multiple device paths of a striped volume are parsed correctly and multiple XML "devices" elements are formated as expected. Users are now able to create logical pools which contain a striped volume, and get proper XML for the striped volume as well.
BZ#720269
If the source QEMU process was not able to connect to the destination process when migrating a QEMU domain, libvirt could report "undefined error". With this update, libvirt creates the connection to the destination QEMU process and makes QEMU use this pre-created connection. This allows libvirt to report meaningful errors if the connection attempt fails.
BZ#707257
If a NFS (Network File System) storage was configured to be accessible only by users from a supplementary group for a user whose identity was used to run QEMU processes, the libvirtd daemon in certain cases failed to access or create files on that storage. With this update, libvirtd properly initializes supplementary groups when changing identity to QEMU users and groups. This allows libvirtd to access and create such files.
BZ#698825
Previously, it was not possible to maximize the performance of a KVM guest using memory binding on a NUMA (Non-Uniform Memory Access) host if the guest was started by libvirt. This update introduces new XML definitions to support NUMA memory policy configuration. Users can now specify the NUMA memory policy by using the guest XML definitions. The performance can be adjusted by NUMA memory binding.
BZ#704144
The libvirt library uses the "boot=on" option to determine which disk is bootable. The previous version of the qemu-kvm utility did not support this option, and libvirt could not use it. As a consequence, when an IDE disk was added as the second storage with a virtio being set up as the first one by default, the operating system tried to boot from the IDE disk rather than the virtio disk and either failed to boot with the "No bootable disk" error message, or the system booted whatever operating system was on the IDE disk. With this update, the boot configuration is translated into bootindex, which provides control over which device is used for booting a guest operating system.
BZ#751900
Prior to this update, when a QEMU migration to a file was triggered, libvirt temporarily set the migration bandwith to "unlimited" in an attempt to speed up saving of the state of the virtual machine. A limitation in QEMU caused QEMU not to return from the migrate command until the migration itself was complete. This locked out the QEMU monitor response loop and the migration to file process could not be interrupted. With this update, migration to file can be monitored for progress or interruptions. Now, libvirt no longer ignores job info or abort commands during the migration to file process.
BZ#738970
The virsh(1) man page did not mention detailed information about the drivers used for the "attach-disk" command with QEMU domains. If the command on a QEMU domain failed with an incorrect driver, users were unaware of what driver name should be used with QEMU. To fix this problem, the manual page now specifies what the "driver" parameter can contain.
BZ#693203
Running the "virsh list" command could become unresponsive when a QEMU process tracked by the libvirtd daemon did not respond to the monitor command. With this update, "virsh list" no longer requires interaction with running QEMU processes and can therefore list all domains even if a guest becomes unresponsive.
BZ#691830
If the user wanted to take a screenshot of a running virtual machine, the user had to use other tools (for example, virt-manager). A new libvirt API, virDomainScreenshot, is provided with this update, and allows users to take screenshots if the hypervisor supports it. Now, users no longer need to use third-party tools to take screenshots, but can use libvirt directly.
BZ#682237
SPICE (the Simple Protocol for Independent Computing Environments) supports multiple compression settings for audio, images and streaming. With this update, the libvirt XML schema is extended to support these kinds of settings so that users can set SPICE compression options directly in libvirt.
BZ#682084
Previously, libvirt did not support virtual CPU pinning on inactive virtual machines by running the "virsh vcpupin" command. Users had to use workarounds instead. With this update, libvirt now supports virtual CPU pinning on inactive virtual machines. Users no longer need to use workarounds but can use virsh directly.
BZ#681458
Previously, libvirt did not support attaching devices to an inactive virtual machine by running the "virsh attach-device" command. Users had to use workarounds, for example had to edit the whole domain using "virsh edit". With this update, libvirt provides enhanced support for attaching devices even to inactive virtual machines. User no longer need to use their workarounds but can use virsh directly.
BZ#727088
Previously, the new storage type added to libvirt was not fully supported. As a consequence, directory type storage volumes were reported to be file storage volumes. The new volume type has been added to the public API. The volume type is now correctly reported and displayed in associated tools.
BZ#641087
Users were allowed to change the domain's CPU affinity dynamically in libvirt, however there was no persistent XML provided, and the settings were lost on the next domain start. This update introduces a new XML to support the persistent configuration of domain's CPU affinity. Also new flags ("--live, "--config", and "--current") are introduced for the "virsh vcpupin" command. Now, the domain's CPU affinity persists across the next start.
BZ#730750
Previously, libvirt attempted to load a managed save file instead of starting a domain from the beginning, even if the managed save file was damaged and could not be loaded. This could confuse users who were not aware of the problem. This update introduces a new command, "virsh start --force-boot", as well as improved logic which ensures that a managed save file is not loaded if it is corrupted. Use of managed save images no longer cause confusion.
BZ#728153
If both the SysV init and upstart scripts were installed, and the libvirtd daemon was managed by upstart, the SysV init script was unaware of this. As a consequence, the SysV init script reported confusing error messages. The user was unable to restart the daemon by using the SysV init script, and was also unaware of the fact, that libvirtd was managed by upstart. With this update, the SysV init script checks whether libvirtd is managed by upstart. In the positive case, the user is advised to use the upstart tools to manage libvirtd. Users are now able to restart the libvirtd daemon while using upstart.
BZ#728428
When restarting the libvirtd daemon, libvirt reloaded the domain configuration from the status XML if the XML existed (the domain was running). However, the original domain configuration was not recorded and the domain configuration could not be restored to the original one. As a consequence, the nonpersistent attached devices still existed after restarting libvirtd. With this update, the original domain configuration is recorded by assigning the persistent domain configuration to the newDef method if it's NULL and the domain is running. The nonpersistent attached devices no longer exist if libvirtd is restarted.
BZ#728654
The broken configuration file caused the libvirtd daemon to exit silently, with no error messages logged or any other indication of a problem. This could have confused the user as a consequence. Error handling messages have been added to the early start phases of libvirtd. Errors which occur during the start are now printed and logged.
BZ#678027
Previously, the DMI (Desktop Management Interface) data was not present on all architectures. Running the "virsh sysinfo" command failed on certain architectures because the DMI data was obtained from the missing /sys/devices/virtual/dmi tree. With this update, the DMI information is no longer fetched on non-Intel architectures. As a result, running the "virsh sysinfo" command works as expected.
BZ#730244
Previously, an invalid variable was used to construct error messages. If a migration command failed, the error message reported the remote URI to be "(null)" instead of the requested migration URI. The reason why the command failed was therefore unknown to the user. This update implements the correct variable which contains the migration URI. As a result, the correct migration URI is now reported if an error occurs.
BZ#667631
The monitor command in QEMU that provides migration information for SPICE was modified. As a consequence, libvirt was unable to send the migration information to SPICE, the session failed, and the migration terminated. This update modifies libvirt to adapt to the new monitor command. As a result, users can now perform a successful migration.
BZ#667624
The monitor command in QEMU that is used to change passwords for VNC and SPICE sessions was changed. As a consequence, libvirt was unable to set any password. This update modifies libvirt to adapt to the new command. As a result, users can successfully set passwords for VNC and SPICE sessions.
BZ#667620
Because QEMU changed the format of SPICE events, libvirt was not able to resend these event to users. This update modifies libvirt to adapt to the new format. As a result, SPICE events are successfully passed to users through libvirt.
BZ#589922
In certain cases, usually when the virt_use_nfs_selinux boolean was not set, SELinux policies prevented qemu from opening a disk image. As a consequence, qemu refused to start. This update provides a verbose error message which advises the user to set virt_use_nfs_selinux in the aforementioned scenario.
BZ#697742
Previously, libvirt did not remove the managed save file if a domain was undefined. When the user installed a new guest after destroying and undefining the previous one, the managed save file for the previous guest was still present, and the new guest failed to start because it would use a managed save file with the same name. This update introduces a new API, virDomainUndefineFlags, which allows users to specify flags (for example, "virsh undefine --managed-save"). The managed save file can now be successfully removed. If the user does not specify any option, a comprehensive error message provides additional information.
BZ#722862
Previously, the virsh(1) man page contained duplicate documentation of the "iface-name" command, did not provide sufficient documentation of the "iface-mac" command, and contained certain inconsistent option names. The man page has been modified to provide correct descriptions.
BZ#692355
Previously, libvirt assigned PCI IDs to virtual devices as needed. As a consequence, migration of guests could fail in certain cases. With this update, libvirt reserves specific device IDs for virtual device types, notably 0x01 for IDE controllers and 0x02 for VGA devices. When migrating guests with other device types on these device IDs, users need to manually edit the guest XML files to reassign devices away from reserved IDs.

Enhancements

BZ#705814
The libvirt packages have been upgraded to upstream version 0.9.4, which introduces new APIs for libvirt and adds various enhancements over the previous version.
BZ#632760
In certain scenarios, users want to adjust the traffic of a virtual machine, its specific NIC (Network Interface Controller), or whole virtual network. Prior to this update, users often manually ran scripts to set up traffic shaping. This update extends the network and interface XML definitions. Now, users can set bandwidth limitation, or specify average peak and burst rates directly in libvirt.
BZ#692769
Users can limit virtual CPUs of a virtual machine by using control groups (cgroups). However, the appropriate QEMU process needs to be placed into a specific cgroup. Prior to this update, libvirt was missing this feature, and users had to use their own workarounds. With this update, libvirt can place a process into a cgroup, which can also be specified by using the XML definition of a virtual machine. As a result, users can now set virtual CPU bandwidth limits directly in libvirt.
BZ#711598
With SGA BIOS, it is possible to send boot messages to a serial line instead of a VNC/SPICE session. With this update, libvirt contains enhanced virtual machine XML descriptions so that users can set a serial line that allows the showing of boot messages. Boot messages are now displayed on the serial console as expected.
BZ#643947
The physical network interface configuration can be different on each host machine, even though each host is using the same logical network. This update adds a virtual switch abstraction to libvirt. Virtual machines can be configured identically on every host, even if the physical connectivity is different.
BZ#698340
Previously, libvirt did not support setting of the ioeventfd feature for virtio disks or interfaces. QEMU could experience high CPU usage as a consequence. The support for this feature has been added in the XML definition of a virtual machine. Users can now enable the ioeventfd feature in order to lower CPU usage.
BZ#703851
The address used for listening for VNC connections to a libvirt guest was previously required to be an IP address. In cases where the guest migrates from one host to another, and the administrator wants the guest to be listening on a publicly visible interface, this address must be changed during migration. To make this change possible this update adds the option for specifying a listen network by name. Now, the guest can be migrated between the hosts, and its VNC listen address changes automatically as it migrates.
BZ#598792
The "--persistent" option for the "update-device" command was not implemented in virsh. Users experienced error messages saying that this feature was not supported. This update modifies libvirt to distinguish between the live and persistent XML definition of a virtual machine. Users can now change the definition of a virtual machine while the machine is running. The settings are applied after restarting the virtual machine.
BZ#632498
Running the "virsh dump" command against a virtual machine caused it to dump its memory. However, users often had to manually reboot the virtual machine after performing a dump. A new option, "--reset", has been implemented for "virsh dump", so that users can now use virsh instead of other tools.
BZ#677228
Previously, libvirt did not support attaching disks to an inactive virtual machine by using the "virsh attach-disk" command. Users had to use workarounds instead. This update provides enhanced support for attaching disks; disks can be attached even to inactive virtual machines. Now, users can use virsh directly instead of using workarounds.
BZ#569567
Changes made to host's network configuration by libvirt immediately and permanently modified host's configuration files. This caused the network to be unusable, and it was sometimes difficult to restore the original connectivity. This update adds new virsh commands, so that the current state of the network configuration can be saved and easily reverted.
BZ#634653
When migrating to a file, saving the state of a virtual machine led to creation of large files which filled the system cache. The system performance could therefore be affected. This update introduces the new "--bypass" option for operations that involve migration to file. This prevents the cache from being filled. Management application can now control large virtual machine state files.
All users of libvirt are advised to upgrade to these updated packages, which fix these bugs and add these enhancements.
Updated libvirt packages that fix one bug are now available for Red Hat Enterprise Linux 6.
The libvirt library is a C API for managing and interacting with the virtualization capabilities of Linux and other operating systems. In addition, libvirt provides tools for remote management of virtualized systems. The library also provides nwfilter support for fine-grained filtering of the network traffic reaching guests managed by libvirt.

Bug Fix

BZ#754182
Previously, nwfilter support was dependent on the ability to execute scripts in the /tmp directory, which is considered unsafe. With this ability blocked, guests relying on the nwfilter component were not allowed to start. The underlying code has been modified so that nwfilter no longer requires to execute scripts in the /tmp directory.
All users of libvirt are advised to upgrade to these updated packages, which fix this bug. After installing these updated packages, libvirtd must be restarted. Use the "service libvirtd restart" command for this update to take effect.
Updated libvirt packages that fix multiple bugs and add two enhancements are now available for Red Hat Enterprise Linux 6.
The libvirt library is a C API for managing and interacting with the virtualization capabilities of Linux and other operating systems.

Bug Fixes

BZ#768469
This update forces all libvirt managed KVM guests with virtio drives to run with the scsi=off option. This will prevent SCSI requests in guests being passed to underlying block devices on the host; however, a separate bug is preventing scsi=off from working correctly. A malicious, privileged guest user could issue a crafted request that would still be passed to the underlying block device.
A future qemu-kvm update will correct the scsi=off functionality, blocking such crafted requests, and allowing CVE-2011-4127 to be mitigated before the kernel update is applied.
As scsi=off may break legitimate pass through of SCSI requests, this update also adds a new value for the device attribute in the disk XML element, lun. This type is like the default "disk" device, but will allow SCSI requests from guests to be passed to the underlying block device on the host. (Using the lun device attribute causes the guest to run with scsi=on.)
Note: After installing the RHSA-2011:1849 kernel update, it will not be possible for guests to issue SCSI requests on virtio drives backed by partitions or LVM volumes, even if device='lun' is used. It will only be possible to issue SCSI requests on virtio drives backed by whole disks.
Refer to Red Hat Knowledgebase 67869 for details about CVE-2011-4127.
BZ#769674
Due to an error in the bridge network driver, libvirt did not respect network configuration properly. Therefore, if a network was set with the forward element set to mode=bridge", libvirt incorrectly added iptables rules for such a network every time the libvirtd daemon was restarted and the network was active. This could cause the network to become inaccessible. With this update, libvirt reloads iptables rules only if the forward element is set to mode=route, mode=nat, or mode=none.
BZ#769853
Previously, migration of a virtual machine failed if the machine had an ISO image attached as a CD-ROM drive and the ISO domain was inactive. With this update, libvirt introduces the new startupPolicy attribute for removable devices, which allows to mark CD-ROM and diskette drives as optional. With this option, virtual machines can now be started or migrated without removable drives if the source image is inaccessible.
BZ#770955
Under certain circumstances, a race condition between asynchronous jobs and query jobs could occur in the QEMU monitor. Consequently, after the QEMU guest was stopped, it failed to start again with the following error message:
error: Failed to start domain [domain name]
error: Timed out during operation cannot acquire state change lock
With this update, libvirt handles this situation properly, and guests now start as expected.
BZ#770957
The libvirt package was missing a dependency on the avahi package. The dependency is required due to mDNS support which is turned on by default. As a consequence, the libvirtd daemon failed to start if the libvirt package was installed on the system without Avahi. With this update, the dependency on avahi is now defined in the libvirt.spec file, and Avahi is installed along with libvirt.
BZ#770958
Due to several problems with security labeling, libvirtd became unresponsive when destroying multiple guest domains with disks on an unreachable NFS storage. This update fixes the security labeling problems and libvirtd no longer hangs under these circumstances.
BZ#770961
Previously, libvirt incorrectly released resources in the macvtap network driver in the underlying code for QEMU. As a consequence, after an attempt to create a virtual machine failed, a macvtap device that was created for the machine could not be deleted from the system. Any virtual machine using the same MAC address could not be created in such a case. With this update, an incorrect function call has been removed, and macvtap devices are properly removed from the system in the scenario described.
BZ#770966
Previously, libvirt defined a hard limit for the maximum number of domains (500) in Python bindings. As a consequence, the vdsmd daemon was unable to properly discover all virtual machines on the system with more than 500 guests. With this update, the number of domains is now determined dynamically and vdsmd correctly discovers all virtual machines.

Enhancements

BZ#759061
This update adds support for VMware vSphere Hypervisor (ESXi) 5 installations.
BZ#770959
When shutting down, a virtual machine had changed its status from the Up state to the Paused state before it was shutdown. The Paused state represented the state when the guest had been already stopped, but QEMU was flushing its internal buffers and was waiting for libvirt to kill it. But this state change could confuse users so this update adds respective events and modifies libvirt to use the shutdown state. A virtual machine now moves from the Up to Powering Down and then to Down state.
All users of libvirt are advised to upgrade to these updated packages, which fix these bugs and add these enhancements.
Updated libvirt packages that fix four bugs are now available for Red Hat Enterprise Linux 6.
The libvirt library is a C API for managing and interacting with the virtualization capabilities of Linux and other operating systems. In addition, libvirt provides tools for remote management of virtualized systems.

Bug Fixes

BZ#783453
Under certain circumstances, a rare race condition between the poll() event handler and the dmidecode utility could occur. This race could result in dmidecode waiting indefinitely to perform a read operation on the already closed file descriptor. As a consequence, it was impossible to perform any tasks for virtualized guests using the libvirtd management daemon, or perform certain tasks using the virt-manager utility, such as creating a new virtual machine. This update modifies the underlying code so that the race condition no longer occurs and libvirtd and virt-manager work as expected.
BZ#784785
Previously, when libvirt tried to attach certain SR-IOV (Single Root I/O Virtualization) devices to virtual guests, this attempts failed with the "Unable to reset PCI device" error messages. This patch modifies the underlying code so that these PCI devices can now be successfully attached to guests.
BZ#787620
When migrating a QEMU domain and using SPICE for a remote display, the migration was failing and the display was erratic under certain circumstances. This was happening because with the incoming migration connection open, QEMU was unable to accept any other connections on the target host. With this update, the underlying code has been modified to delay the migration connection until the SPICE client is connected to the target destination. The guest domains can now be successfully migrated without disrupting the display during the migration.
BZ#790779
Previously, if the libvirt package was built with avahi support, libvirt required the avahi package to be installed on the system as a prerequisite for its own installation. If the avahi package could not be installed on the system due to security concerns, installation of libvirt failed. This update modifies the libvirt.spec file to require only the avahi-libs package. The libvirt package is now successfully installed and libvirtd starts as expected.
All users of libvirt are advised to upgrade to these updated packages, which fix these bugs. After installing these updated packages, libvirtd must be restarted. Use the "service libvirtd restart" command for this update to take effect.
Updated libvirt packages that fix two bugs are now available for Red Hat Enterprise Linux 6.
The libvirt library is a C API for managing and interacting with the virtualization capabilities of Linux and other operating systems. In addition, libvirt provides tools for remote management of virtualized systems.

Bug Fixes

BZ#798177
If the user attempted to connect locally as a non-root user to the libvirtd daemon (using "qemu:///user"), the ".libvirt" directory was not created in the home directory. As a consequence, non-root users failed to use libvirt. This update ensures that the directory is created, and libvirt now works as expected for non-root users.
BZ#798906
The localtime_r() function used in the libvirt code was not async signal safe, which caused child processes to enter a deadlock when attempting to generate a log message. As a consequence, the virsh utility became unresponsive. This update applies backported patches and adds a new API for generating log time stamps in an async-signal safe manner. The virsh utility no longer hangs under these circumstances.
All users of libvirt are advised to upgrade to these updated packages, which fix these bugs. After installing these updated packages, libvirtd must be restarted. Use the "service libvirtd restart" command for this update to take effect.
Updated libvirt packages that fix one bug are now available for Red Hat Enterprise Linux 6.
The libvirt library is a C API for managing and interacting with the virtualization capabilities of Linux and other operating systems. In addition, libvirt provides tools for remote management of virtualized systems.

Bug Fix

BZ#806206
When a live migration of a guest was terminated abruptly (using the Ctrl+C key combination), the libvirt daemon could have failed to accept any future migration request of that guest with the following error message:
        error: Timed out during operation: cannot acquire state change lock
This update adds support for registering cleanup callbacks which are called for a domain when a connection is closed. The migration API is more robust to failures, and if a migration process is terminated, it can be restarted on a subsequent command.
All users of libvirt are advised to upgrade to these updated packages, which fix this bug. After installing these updated packages, libvirtd must be restarted. Use the "service libvirtd restart" command for this update to take effect.
Updated libvirt packages that fix two bugs are now available for Red Hat Enterprise Linux 6.
The libvirt library is a C API for managing and interacting with the virtualization capabilities of Linux and other operating systems. In addition, libvirt provides tools for remote management of virtualized systems.

Bug Fixes

BZ#826639
Due to a locking problem in one of the routines involved in the migration process, migrations could become unresponsive, for example, when repeatedly migrating a domain between two nodes. The locking problem has been fixed with this update, and migrating a guest is now successful in this scenario.
BZ#827047
Closing a file descriptor multiple times could, under certain circumstances, lead to a failure to execute the qemu-kvm binary. As a consequence, a guest failed to start. A patch has been applied to address this issue, so that the guest now starts successfully.
All users of libvirt are advised to upgrade to these updated packages, which fix these bugs.