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 thescsi=off
option. This will prevent SCSI requests in guests being passed to underlying block devices on the host; however, a separate bug is preventingscsi=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 thescsi=off
functionality, blocking such crafted requests, and allowing CVE-2011-4127 to be mitigated before the kernel update is applied.Asscsi=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 thelun
device attribute causes the guest to run withscsi=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 ifdevice='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 tomode=bridge
", libvirt incorrectly added iptables rules for such a network every time thelibvirtd
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 theforward
element is set tomode=route
,mode=nat
, ormode=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, thelibvirtd
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 unreachableNFS
storage. This update fixes the security labeling problems andlibvirtd
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, amacvtap
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, andmacvtap
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, thevdsmd
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 andvdsmd
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.