libvirtthe library releases
pauseEvent before the QEMU processor emulator is actually stopped. Therefore, domains may be reported as suspended before they are actually suspended, which can confuse usage
libvirtlibrary. With this update,
pauseEvents start after QEMU is stopped on the screen, management applications are no longer blurred
Fixed limit for maximum sizeremote procedure call
messages that can be sent between
libvirtdDaemons and clients such as
VirginUtilities, is 65536 bytes. However, this limit is not always sufficient, and messages exceeding this limit may be discarded, preventing clients from obtaining important data. With this update, the incoming message buffer has been made dynamic, both sides, client and
libvirtd, now allocates the necessary memory for a given message, allowing larger messages to be sent.
Previously, this could result in migrating guests repeatedly between two machines using tunneled migrations
libvirtdThe demon locked unexpectedly. A bug in the code that locked remote drivers has been fixed and duplicate tunnel migrations of domains now work as expected.
libvirtAn API call is required to determine
libvirtlibrary. Therefore, a race condition can occur when the guest changes its state between the two calls to enumerate the started and stopped guests. This behavior causes the guest to disappear from both lists, as the count time is not considered part of the list. This update adds a new API function that allows gathering the guest list with a single call while the driver is locked. This guarantees that no guest changes its state before the list is collected, so the guest no longer disappears in the described scenario.
libvirtMany useful error messages returned by external programs such as QEMU are not reported, only command errors are reported. Therefore, some problems are difficult to find their cause or solution by looking at the error output. With this update, if an external command is issued by
libvirtterminates with error, with standard error output as
libvirterror. As a result, it is now easier to diagnose problems because better information is available.
In some cases, closing a file descriptor multiple times may result in an inability to executeqemu-kvmbinary. As a result, the guest could not start. A patch has been applied to address this issue so that the guest can now launch successfully.
Before this update,
libvirtInappropriate detection procedures were used to det
and the processor topology of the system. As a result, some advanced multiprocessor systems have incorrect topology detection and management applications cannot utilize the full potential of the system. Now the detection has been improved to correctly identify the topology even on modern systems.
libvirtThe library has hooks to call user-written scripts on guest start or stop, but no hooks to call per-guest scripts on guest start or stop
libvirtdThe daemon itself is restarted. Therefore, some customizations that require additional action are not delivered
libvirtwhen it might fail
libvirtdis restarted. For example, packet forwarding rules installed to redirect incoming connections to specific guests can be overridden
libvirtof“to refresh”Its own iptables packet forwarding rules break the established connection forwarding. Improvements in this update
libvirtuse a new one“reconnect”hook; QEMU hook-scripts påkaldes som“reconnect”Each time for each active guest
libvirtdRestart. Users can now write scripts to identify“reconnect”Events such as reloading user-supplied iptables forwarding rules when this event occurs. Therefore even in
On some NUMA architectures,
libvirtCannot handle and expose NUMA topologies, sometimes causing performance degradation. With this update,
libvirtIt is possible to parse and expose the NUMA topology on such machines and do proper CPU placement to avoid performance degradation.
undefinedcommand supports deleting volumes associated with domains. When using this command, the volume is passed as an additional parameter, and if the user adds a trailing string after the base command, that string will be interpreted as the volume to delete. Previously, volumes were checked after guest removal, which could lead to user errors. With this update, a volume parameter check is performed before the removal process so that errors can be reported sensibly. As a result, commands with incorrect parameters failed before attempting to remove the guest, and the host system remained in a healthy state.
Due to several flaws in the implementation of keep-alive messages used to detect disconnected or non-functional peers, these connections and peers may be mistakenly considered disconnected or non-functional, and keep-alive Active messages is therefore disabled by default in Red Hat Enterprise Linux 6.3. The implementation of keep-alive messages has been fixed and it is now enabled by default.
Previously, reverse relationships in checks used during callback detection prevented multiple callbacks from being detected. This update applies a patch to fix this and more callbacks can now be registered.
spicesIt takes time for the server to transfer its internal state to the target client at the end of the migration process. Earlier,
libvirtLibraries can kill source QEMU and
spicesbefore the server sends its internal state. This behavior causes the target client to become unresponsive. With this update,
libvirtwait until the end
spicesThe server no longer responds in this situation.
ThornlockDaemon is used to lock resources used by domains, failed lock attempts if such resources are read-only. Therefore, it is not possible to start a domain using a CD-ROM drive. This bug has been fixed and
ThornlockNow works correctly with read-only devices.
libvirtThe library does not support S4 (Suspend-to-Disk) events on QEMU domains. Therefore, the management application cannot detect whether the guest is suspended to disk or powered off. With this update, support for S4 events has been added and management applications can now request to receive S4 events.
libvirtLibraries are reconfigured and under certain conditions,
libvirtSearches for non-existent options when used externally
VirginA utility on such a machine causes the system to terminate with a segmentation fault. The underlying source code has been modified to fix this bug and users can now use
Virginon the configured machine
Previously, the check condition used to check whether a field XML change in a saved file was successful was reversed. Therefore,
VirginThe tool reports failure in this check even if it was successful, and vice versa. This update applies a patch to fix this bug and the success and failure of this check is now reported correctly.
Disk hot swap is divided into two parts:
qemuMonitorAddDrive()After the call is
qemuMonitorAddDevice()call. When the first part succeeds but the second part fails,
libvirtThe first part could not be rolled back, even though the disk hotplug failed, the device was still in use. With this update, the rollback of adding drives is performed correctly in the described scenario, and disk hotplugging now works as expected.
signals intelligenceWhen the signal is not blocked
virDomainGetBlockJobInfo()function is performed. Therefore, try to terminate the process initialized by the command
- ventOptions specified using the CTRL+C shortcut did not work correctly. This update applies a patch to prevent
virDomainGetBlockJobInfo()and terminating a process with the CTRL+C shortcut now works as expected.
Previously, an unspecified error with a meaningless error code was returned when the guest agent did not respond. Therefore, the management application cannot identify why the guest agent is hung, whether the guest agent is not configured, or unavailable. This update introduces a new
VIR_ERR_AGENT_UNRESPONSIVEError codes and error message correction. As a result, management applications can now identify why a guest agent is hanging.
due to an error in the program
libvirtcode, two mutually exclusive situations can arise. In the first case, the guest operating system may not detect that it is being suspended because the suspend routine is handled by the hypervisor. In the second case, cooperation with the guest operating system is required, for example during time synchronization after the recovery routine. Therefore, the suspend routine on the domain can be called successfully
libvirtReturns that the operation succeeded and actually failed. This update adds additional checks to prevent
libvirtsuspend a domain from
Due to recent changes in port allocations,spices
gate andSpice TLS
The ports are the same. Therefore, a QEMU domain starts with two options configured to use the same port, andSpice TLS
Ports cannot be assigned to a port twice. With this update, the port assignment has been fixed and QEMU domains now work correctly in this case.
A virtual guest can have a network interface connected to oneSR-IOV
(single-root I/O virtualization) virtual functions for devices (frequency conversion
macvtapthe driver is in pass-through mode and connects from there to a
802.1Qbhsuitable circuit breaker. Previously, when closing the guest,
libvirtIncorrect setting of the physical properties of the SR-IOV device (
) replacefrequency conversion
offline instead of setupfrequency conversion
offline. The following are examples of interface types that may be affected:
When used by the host for its own network connections, the host network will be adversely affected, possibly completely disabled, whenever the guest is shut down or when the guest's network devices are disconnected. The underlying source code has been modified to correct this error andPF
closely linked tofrequency conversion
macvtapThe driver now continues to work in the described scenario.
Red Hat Enterprise Linux 6.3 implements
block copyFunctionality prior to upstream versions of QEMU. Since then, several improvements have been made to the upstream version of the feature. Hence previous versions
libvirtLibraries cannot fully cope
block copyfeature in the current version of QEMU. With this update,
block copyfunctionality has been updated to the upstream version of QEMU, and
libvirtable to manage all versions of
libvirtSet the default USB controller in the XML configuration file during direct migration to a Red Hat Enterprise Linux 6.1 host. These hosts do not support USB controllers in XML files. Therefore, direct migration to these hosts fails. This update prevents
libvirtThe default USB controller is included in the XML configuration file during live migration, and live migration works fine in the described scenario.
When the QEMU process is destroyed
libvirt, the cleanup operation releases some internal structures and locks. But since the user can destroy the QEMU process at the same time,
libvirtContains the QEMU driver mutex to protect the domain list, its state, etc. Previously, a function tried to lock the QEMU driver mutex when it was already locked, causing deadlocks. The code has been changed to always check if the mutex is free before trying to lock it, which fixes this bug.
when. . . when
been_uuidpossibility exists in
libvirtd configuration filedocument,
augeas libvirtLens could not parse the file. This error has been corrected and
augeas libvirtThe lens is now resolving
libvirtd configuration fileAs expected in the described scenario.
Previously, duplicate MAC addresses were handled differently between a live connection or disconnection of a network device and a persistent connection or disconnection. As a result, a persistent connection interface to a device with a MAC address matching an existing device may fail even if a live connection interface to such a device succeeds. This behavior is inconsistent and sometimes causes the wrong device to detach from the guest. With this update,
libvirtChanged to allow duplicate MAC addresses in all cases, and check for unique PCI addresses to distinguish between multiple devices with the same MAC address.
qemu-kvm -helpCommands are executed each time the guest is started to learn about the features available in QEMU. On machines with many guests, this behavior can cause noticeable delays in the startup of all guests. This update changes that
libvirtStores a cache of information about QEMU until the QEMU timestamp changes. Therefore,
libvirtIt is faster when you start the machine with different guests.
ESX 5.1The server has not been fully tested. Therefore, connect to
ESX 5.1Causes a warning to be returned. this
ESX 5.1The server has been properly tested and connections to it are now working as expected.
In some cases,
utility programThe process failed to write data to disk and the kernel did not report out of space error when saving domain (
ENOSPC). With this update,
datasync()Describes the functions in the scenario to force data to be written to disk or to catch write errors. So if a write error occurs, it is now correctly caught and reported.
some operations i
libvirtDo this only if the domain is suspended to prevent data corruption. However, if the restore fails, the management application is not notified because no event is sent. This update introduces
VIR_DOMAIN_EVENT_SUSPENDED_API_ERROREvents and management applications can now more closely track domain status and act accordingly.
libvirtCould not find a suitable CPU model for the host CPU, even if the topology is registered correctly, it will not provide the CPU topology in the host function. Therefore, applications that use the host CPU topology but not the CPU model cannot see the topology in host functions. With this update, the host capacity XML description includes the host CPU topology, even if the host CPU model is unknown.
emulator pinAbility to set CPU affinity for QEMU domain processes. However, this behavior overrides
vcpu placement="auto"Setting when creating a cgroup hierarchy for domain processes. This CPU affinity is set using the advisory node set from
numberDemon. With this update,
emulator pinOption to change CPU affinity for domain processes if
vcpu locationset to
numberDaemons are supported as expected.
libvirtLibraries allow users to cancel migrations in progress. Previously, if an attempt was made to cancel a migration during the preparation phase of the migration, QEMU would miss the request and not cancel the migration. With this update,
virDomainAbortJob()The function sets a flag when a cancellation request is made and checks this flag before the main phase of the migration begins. Therefore, migrations are now correctly canceled even during the preparation phase.
Some AMD processors include modules reported by the kernel as threads and cores. Earlier,
libvirtThe processor topology detection code cannot detect these modules. finally,
libvirtThe actual number of processors is reported twice. This bug has been fixed by reporting a topology that sums the total number of processors reported in the system. Must join though
virCapabilities()Function. In addition, documentation is provided for spare output.
Note that for performance reasons users should be instructed to use function output for topology detection purposes. NUMA topology has an important impact on performance, but the physical topology can differ from this.
due to change
virStorageBackendLogicalCreateVol()feature, deleted the volume type setting. Therefore, a logical volume is seen as a file without any format, and
libvirtThey cannot be cloned. This update provides a patch to set the volume type and
libvirtThe logical volume is cloned as expected.
When the saved file cannot be opened,
virFileWrapperFdCatchError()function is called
libvirtdThe daemon terminated unexpectedly due to a NULL pointer dereference. With this update,
virFileWrapperFdCatchError()The function is only called when the file is open, the daemon will now not crash but report an error.
virDomainGetXMLDesc()The function is executed on an unresponsive domain and the call is also responsive. With this update, QEMU ships
balloon changeEvent when memory usage on the domain changes, so it
virDomainGetXMLDesc()Stop querying unresponsive domains. Therefore,
virDomainGetXMLDesc()In the described scenario, the call no longer hangs.