Bug 1125 - [UPDATE REQUEST] [UPSTREAM UPDATE] libvirt
: [UPDATE REQUEST] [UPSTREAM UPDATE] libvirt
Status: RESOLVED FIXED
Product: Server Bugs
Classification: ROSA Server
Component: Main Packages
: unspecified
: All Linux
: Normal normal
: ---
Assigned To: Andrew Lukoshko
: ROSA Server Bugs
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2012-11-23 13:19 MSK by Andrew Lukoshko
Modified: 2012-11-27 13:18 MSK (History)
1 user (show)

See Also:
RPM Package:
ISO-related:
Bad POT generating:
Upstream:
vladimir.potapov: qa_verified+
andrew.lukoshko: published_server+


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Andrew Lukoshko 2012-11-23 13:19:45 MSK
Updated libvirt from RHEL6 upstream.

Advisory:
* When libvirt could not find a suitable CPU model for a host CPU, it would not
provide the CPU topology in host capabilities even though the topology was
detected correctly. Consequently, applications that work with the host CPU
topology but not with the CPU model could not see the topology in host
capabilities. With this update, the host capabilities XML description contains
the host CPU topology even if the host CPU model is unknown.

* Previously, the fixed limit for the maximum size of an RPC message that could
be supplied to the libvirtd daemon (65536 bytes) was not always sufficient.
Consequently, messages that were longer than that could be dropped, leaving a
client unable to fetch important data. With this update, the buffer for incoming
messages has been made dynamic and libvirtd now allocates as much memory as is
needed for a given message, thus allowing to send much bigger messages.

* Prior to this update, libvirt used an unsuitable detection procedure to detect
NUMA and processor topology of a system. Consequently, topology of some advanced
multi-processor systems was detected incorrectly and management applications
could not utilize the full potential of the system. Now, the detection has been
improved and the topology is properly recognized even on modern systems.


* Under certain circumstances, the iohelper process failed to write data to disk
while saving a domain and kernel did not report an out-of-space error (ENOSPC).
With this update, libvirt calls the fdatasync() function in the described
scenario to force the data to be written to disk or catch a write error. As a
result, if a write error occurs, it is now properly caught and reported.


* Certain operations in libvirt can be done only when a domain is paused to
prevent data corruption. However, if a resuming operation failed, the management
application was not notified since no event was sent. This update introduces the
VIR_DOMAIN_EVENT_SUSPENDED_API_ERROR event and management applications can now
keep closer track of domain states and act accordingly.

* Libvirt allows users to cancel an ongoing migration. Previously, if an attempt
to cancel the migration was made in the migration preparation phase, qemu missed
the request and the migration was not canceled. With this update, the
virDomainAbortJob() function sets a flag when a cancel request is made and this
flag is checked before the main phase of the migration starts. As a result, a
migration can now be properly canceled even in the preparation phase.


* When a qemu process is being destroyed by libvirt, a clean-up operation frees
some internal structures and locks. However, since users can destroy qemu
processes at the same time, libvirt holds the qemu driver lock to protect the
list of domains and their states, among other things. Previously, a function
tried to set up the qemu driver lock when it was already up, creating a
deadlock. The code has been modified to always check if the lock is free before
attempting to set it up, thus fixing this bug.

http://rhn.redhat.com/errata/RHBA-2012-1484.html

Build lists:
https://abf.rosalinux.ru/build_lists/848306
https://abf.rosalinux.ru/build_lists/848307
Comment 1 Vladimir Potapov 2012-11-26 18:58:20 MSK
libvirt-0.9.10-21.res6.6
********************* RHEL Advisory *******************
* When libvirt could not find a suitable CPU model for a host CPU, it would not
provide the CPU topology in host capabilities even though the topology was
detected correctly. Consequently, applications that work with the host CPU
topology but not with the CPU model could not see the topology in host
capabilities. With this update, the host capabilities XML description contains
the host CPU topology even if the host CPU model is unknown.

* Previously, the fixed limit for the maximum size of an RPC message that could
be supplied to the libvirtd daemon (65536 bytes) was not always sufficient.
Consequently, messages that were longer than that could be dropped, leaving a
client unable to fetch important data. With this update, the buffer for incoming
messages has been made dynamic and libvirtd now allocates as much memory as is
needed for a given message, thus allowing to send much bigger messages.

* Prior to this update, libvirt used an unsuitable detection procedure to detect
NUMA and processor topology of a system. Consequently, topology of some advanced
multi-processor systems was detected incorrectly and management applications
could not utilize the full potential of the system. Now, the detection has been
improved and the topology is properly recognized even on modern systems.


* Under certain circumstances, the iohelper process failed to write data to disk
while saving a domain and kernel did not report an out-of-space error (ENOSPC).
With this update, libvirt calls the fdatasync() function in the described
scenario to force the data to be written to disk or catch a write error. As a
result, if a write error occurs, it is now properly caught and reported.


* Certain operations in libvirt can be done only when a domain is paused to
prevent data corruption. However, if a resuming operation failed, the management
application was not notified since no event was sent. This update introduces the
VIR_DOMAIN_EVENT_SUSPENDED_API_ERROR event and management applications can now
keep closer track of domain states and act accordingly.

* Libvirt allows users to cancel an ongoing migration. Previously, if an attempt
to cancel the migration was made in the migration preparation phase, qemu missed
the request and the migration was not canceled. With this update, the
virDomainAbortJob() function sets a flag when a cancel request is made and this
flag is checked before the main phase of the migration starts. As a result, a
migration can now be properly canceled even in the preparation phase.


* When a qemu process is being destroyed by libvirt, a clean-up operation frees
some internal structures and locks. However, since users can destroy qemu
processes at the same time, libvirt holds the qemu driver lock to protect the
list of domains and their states, among other things. Previously, a function
tried to set up the qemu driver lock when it was already up, creating a
deadlock. The code has been modified to always check if the lock is free before
attempting to set it up, thus fixing this bug.
******************************************************************
QA Verified