7.128. libvirt Red Hat Enterprise Linux 6 | Red Hat customer portal (2023)


this herelibvirtthe library releasespauseEvent before the QEMU processor emulator is actually stopped. Therefore, domains may be reported as suspended before they are actually suspended, which can confuse usagelibvirtlibrary. With this update,pauseEvents start after QEMU is stopped on the screen, management applications are no longer blurredlibvirt.

BZ#797279, BZ#808980, BZ#869557

Fixed limit for maximum size

remote procedure call

messages that can be sent betweenlibvirtdDaemons and clients such asVirginUtilities, 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 andlibvirtd, 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 migrationslibvirtdThe 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.


Previously severallibvirtAn API call is required to determinelibvirtlibrary. 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.


For,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 bylibvirtterminates with error, with standard error output aslibvirterror. 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.


Earlier,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 stoplibvirtdThe daemon itself is restarted. Therefore, some customizations that require additional action are not deliveredlibvirtwhen it might faillibvirtdis restarted. For example, packet forwarding rules installed to redirect incoming connections to specific guests can be overriddenlibvirtofto refreshIts own iptables packet forwarding rules break the established connection forwarding. Improvements in this updatelibvirtuse a new onereconnecthook; QEMU hook-scripts påkaldes somreconnectEach time for each active guestlibvirtdRestart. Users can now write scripts to identifyreconnectEvents such as reloading user-supplied iptables forwarding rules when this event occurs. Therefore even inlibvirtdRestart.


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.


this hereundefinedcommand 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.


this herespicesIt 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 andspicesbefore the server sends its internal state. This behavior causes the target client to become unresponsive. With this update,libvirtwait until the endspicesmigrant. result,spicesThe server no longer responds in this situation.


usingThornlockDaemon 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 andThornlockNow works correctly with read-only devices.


Earlier,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.


Since installedvdsmdaemon processlibvirtLibraries are reconfigured and under certain conditions,libvirtSearches for non-existent options when used externallyvdsm.Therefore userVirginA 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 useVirginon the configured machinevdsmas expected.


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 isqemuMonitorAddDevice()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.


earliersignals intelligenceWhen the signal is not blockedvirDomainGetBlockJobInfo()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 preventsignals intelligenceperiodvirDomainGetBlockJobInfo()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 newVIR_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 programlibvirtcode, 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 successfullypausestate andlibvirtReturns that the operation succeeded and actually failed. This update adds additional checks to preventlibvirtsuspend a domain frompausestatus.


Due to recent changes in port allocations,


gate and

Spice TLS

The ports are the same. Therefore, a QEMU domain starts with two options configured to use the same port, and

Spice 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 one


(single-root I/O virtualization) virtual functions for devices (

frequency conversion

) usemacvtapthe driver is in pass-through mode and connects from there to a802.1Qbhsuitable circuit breaker. Previously, when closing the guest,libvirtIncorrect setting of the physical properties of the SR-IOV device (


) replace

frequency conversion



offline instead of setup

frequency conversion

offline. The following are examples of interface types that may be affected:


Therefore, if


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 and


closely linked to

frequency conversion

UsedmacvtapThe driver now continues to work in the described scenario.


Red Hat Enterprise Linux 6.3 implementsblock copyFunctionality prior to upstream versions of QEMU. Since then, several improvements have been made to the upstream version of the feature. Hence previous versionslibvirtLibraries cannot fully copeblock copyfeature in the current version of QEMU. With this update,block copyfunctionality has been updated to the upstream version of QEMU, andlibvirt.Therefore,libvirtable to manage all versions ofblock copyfunction.


For,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 preventslibvirtThe 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 destroyedlibvirt, 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. . . whenbeen_uuidpossibility exists inlibvirtd configuration filedocument,augeas libvirtLens could not parse the file. This error has been corrected andaugeas libvirtThe lens is now resolvinglibvirtd 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.


For,libvirtcalledqemu-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 thatlibvirtStores a cache of information about QEMU until the QEMU timestamp changes. Therefore,libvirtIt is faster when you start the machine with different guests.


Earlier,ESX 5.1The server has not been fully tested. Therefore, connect toESX 5.1Causes a warning to be returned. thisESX 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,libvirtcalldatasync()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 ilibvirtDo 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 introducesVIR_DOMAIN_EVENT_SUSPENDED_API_ERROREvents and management applications can now more closely track domain status and act accordingly.


whenlibvirtCould 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.


For,libvirtis supportedemulator pinAbility to set CPU affinity for QEMU domain processes. However, this behavior overridesvcpu placement="auto"Setting when creating a cgroup hierarchy for domain processes. This CPU affinity is set using the advisory node set fromnumberDemon. With this update,libvirtnot allowedemulator pinOption to change CPU affinity for domain processes ifvcpu locationset towas.results,numberDaemons are supported as expected.


this herelibvirtLibraries 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 thoughvirCapabilities()Function. In addition, documentation is provided for spare output.

to note

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 changevirStorageBackendLogicalCreateVol()feature, deleted the volume type setting. Therefore, a logical volume is seen as a file without any format, andlibvirtThey cannot be cloned. This update provides a patch to set the volume type andlibvirtThe logical volume is cloned as expected.


When the saved file cannot be opened,virFileWrapperFdCatchError()function is calledVoiddebate. Therefore,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.


everytimevirDomainGetXMLDesc()The function is executed on an unresponsive domain and the call is also responsive. With this update, QEMU shipsballoon changeEvent when memory usage on the domain changes, so itvirDomainGetXMLDesc()Stop querying unresponsive domains. Therefore,virDomainGetXMLDesc()In the described scenario, the call no longer hangs.

Top Articles
Latest Posts
Article information

Author: Lilliana Bartoletti

Last Updated: 05/30/2023

Views: 6242

Rating: 4.2 / 5 (73 voted)

Reviews: 80% of readers found this page helpful

Author information

Name: Lilliana Bartoletti

Birthday: 1999-11-18

Address: 58866 Tricia Spurs, North Melvinberg, HI 91346-3774

Phone: +50616620367928

Job: Real-Estate Liaison

Hobby: Graffiti, Astronomy, Handball, Magic, Origami, Fashion, Foreign language learning

Introduction: My name is Lilliana Bartoletti, I am a adventurous, pleasant, shiny, beautiful, handsome, zealous, tasty person who loves writing and wants to share my knowledge and understanding with you.