1.107. libvirt
1.107.1. RHBA-2009:1424: bug fix update
Note
This update has already been released (prior to the GA of this release) as errata RHBA-2009:1424
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 remotely managing virtualized systems.
These updated libvirt packages fix the following bug:
* the PIT clock is the programmable interrupt timer clock, which triggers interrupts at certain counts, and is the default clock for Red Hat Enterprise Linux KVM guests. Guests which used the PIT experienced clock drift due to interrupt re-injection. The "-no-kvm-pit-reinject" option has now been added to the KVM command line, which solves potential clock drift on Red Hat Enterprise Linux KVM guests. (BZ#517903)
All libvirt users are advised to upgrade to these updated packages, which resolve this issue.
1.107.2. RHBA-2010:0205: bug fix and enhancement update
Updated
libvirt
packages that fix several bugs and introduce feature enhancements are now available for Red Hat Enterprise Linux 5.
These updated packages fix the following bugs:
- On Xen guests, the netfront and RTL8192 network drivers could run concurrently, bringing up two network interfaces where only one was configured. The two interfaces would share the same MAC address and could cause networking difficulties. Support for a netfront interface model has been added, meaning only the single netfront interface is configured.
- The storage pool deletion routine did not distinguish between files and directories when removing data. As a result, inactive storage pools could not be deleted. With this update, files and directories are removed appropriately, allowing inactive storage pools to be deleted.
- When adding a new physical host PCI device,
libvirt
would not attempt to reset the PCI bus if other functions or devices were present on the same bus. Some PCI devices could not utilized for virtualization as a result. Attempts to reset the PCI bus will now be made, allowing affected devices to be used for virtualization. - Devices attached to a guest in managed mode were not automatically re-attached to the host OS when the guest shut down. Manual intervention was required to use these devices again when the guest is re-started. Managed mode devices will now be re-attached to the host when the guest shuts down, allowing them to be automatically used when the guest is re-started..
- The Xen driver was not checking that guest domains with the same UUID also had the same name. Using the
virsh edit
command to change the name of a Xen domain would make a new copy of the configuration file with the new name, but not alter the original configuration file. UUIDs and names for guest domains are now checked to ensure they match. Attempting to change the name of a domain using thevirsh edit
command will now return an error message and not make any change to the system. - Valid values for the credit scheduler parameter are in the range
0
-65534
. A value of65535
was being accepted as valid, but would not alter the scheduler configuration. With this release, only values within the valid range are accepted. - Using the
info
command to change memory values on a KVM guest showed that inactive KVM guest memory was not being reported correctly. Memory reporting for unused domains was corrected in theqemu
driver and the info command now returns the correct value. - Running the command
virsh vol-key volname
was sometimes resulting in a segmentation fault. A change was made to the way pool objects are handled and the key lookup no longer crashes. - Using the pool parameter with the
virsh vol-path
command would result in errors. Thevirsh vol-path
command was altered to support the pool parameter and the errors no longer occur. - The
virsh find-storage-pool-sources
command failed to find anydir/nfs/netfs
pool sources and failed withunknown failure
. The error reporting was fixed and the command now works as expected. - The
virsh nodedev-create
command resulted in an out of memory error. This was found to be a false positive. The checks were updated, and the error now only occurs if there is an actual memory problem. - Two different methods were using the same name for different
libvirt
entry points, which created a device error when creating nodes. One of the methods was renamed and node creation now works as expected. - Running the
virsh nodedev-destroy
command to destroy a NIC interface causedlibvirtd
to hang indefinitely. The locking issue was found and rectified and thelibvirtd
crash no longer occurs. - Running the
virsh vol-delete
command produced afailed to connect to the hypervisor
error andlibvirtd
needed to be restarted. The code was altered to refresh allocation and permissions information, but not capacity information, and the command now works as expected. - When an XML configuration file was generated using
virsh dumpxml
for a running virtual machine, it contained parameters used for backwards compatibility with previous versions.virt-xml-validate
would report that the generated file was not valid because of these legacy parameters. The validate program was altered to accept the parameters used in the generated XML file, which now validates correctly. - Running concurrent TLS connections under the
libvirt
python wrapper causedlibvirt
to crash. Changes were made to the way thatGNUTLS
handles threading and the crash no longer occurs. libvirt
was not reporting current vCPU and pCPU placement or the vCPU execution time counter accurately. The behavior was changed so thatlibvirt
doesn't find out the affinity when set withtaskset
, but does when set withvirsh vcpupin
. The reporting is now correct.- Creating npiv devices works as expected, but puts error messages into the
/var/log/messages
file. The Opened WWN path/sys/class/fc_host//host5/port_name
for reading message was updated and the error messages no longer appear in the log file. - The
virsh
man page described “most operations” as being asynchronous, which is not the case. The man page was updated to state that most operations are synchronous except creation and shutdown of domains. - Guests that use the default source clock try to compensate for lost ticks by reading the TSC as well. This can cause the guest clock to go out of synchronization. All Red Hat Enterprise Linux guests now unconditionally add
--no-kvm-pit-reinjection
to theqemu
command line, and the guest no longer falls out of synchronization. libvirt
would not perform a power management reset if there were other functions on the device. The PCI Power Management reset only affects individual functions, and not the whole device. The check for other functions was removed, so that where both are available, the whole device reset is preferred over individual function resets.- When a migration was performed to a virtual machine that had been paused, the virtual machine would no longer be paused after the migration had completed. The behavior of
qemu-kvm
was changed so that it no longer 'forgets' the virtual machine is paused, and it will now stay paused during a migration. libvirt
was ordering disks unecessarily. When a new disk was added, it would sometimes shift the boot disk later in the list, causing the user to be unable to boot. The sorting algorithm was changed, and will now insert a new disk as far to the end of the list as possible, while being ordered correctly with other disks on the same bus. This resolved booting errors caused by disk ordering.- A typographical error in an XML domain file caused
libvirtd
to suffer a segmentation fault. A check was added, and a typing mistake will now causelibvirtd
to fail gracefully and produce a meaningful error report. - Devices that are assigned below a non-ACS switch can cause transactions to bypass the VT-d hardware and the validation process.
libvirt
now successfully blocks devices between non-ACS switches, unless the user specifies the permissive='yes' attribute for <hostdev>, so all transactions now undergo validation by default. - When querying Xen remotely virsh would sometimes raise an "unknown failure" error. The semantics were modified and where possible, the error is now more informative.
- When using
xen+ssh://
to connect to a host, sometimes an RPC entry point would not be available anddominfo
would raise an uninformativeerror: unknown procedure
error. The error reporting was changed and it now reports as an unsupported entry point. - When a network created a bridge, it would only be enabled if the host had an IP on that bridge. This would cause the bridge creation to fail quietly, and packets would not be passed as expected. The error messages were improved for bridge creation and deletion, and if a failure occurs, it will now produce an informative error.
- HVM VT-d PCI passthrough attach and detach was not working correctly and devices could not be hotplugged. The attach and detach code now has additional checks and hotplugging functions as expected.
- When
virt-manager
tried to attach a PCI device to a Xen guest, it calledvirNodeDeviceReset
and subsequently crashed. The Xen driver was updated, and it now checks if a given PCI device is assigned to another guest, so that PCI devices can be attached as expected. - When the host was running the KVM hypervisor, the
libvirtd
process was occasionally unable to connect to the hypervisor. In this case,qemu-kvm
failed to start, and gave a false NUMAout of memory
error. The error handling was changed so that NUMA errors are now non-fatal. Errors are now logged, and connection progresses as expected. libvirt
was found to be incorrectly detecting machine types supported by KVM. This meant that KVM guests which did not specify any machine type could not be created. This also caused some rare problems that would cause/distribution/virt/install
to fail.libvirt
was updated to correctly detect and identify KVM-supported machine types.
These updated packages add the following enhancements:
- Support has been added for assigning Single Root I/O Virtualization (SR-IOV) devices to
qemu
guests. - Implementation of the
virsh dump
command for QEMU/KVM guests is included in this release. - Support was added to
libvirt
for KVM PCI device assignment hotplug. - Added
-mem-prealloc
to the KVM command line when using hugepage. libvirt
now allows the creation of more than 256 guests, and more than 150 DHCP leases.- The
-M rhel5.4
arguments are now passed by default when launchingqemu-kvm
. This improves backward migration ability.
Users of
libvirt
are advised to upgrade to these updated packages, which resolve these issues and add these enhancements.