On 12/12/2011 08:31 AM, Jiri Denemark wrote:
When destroying a domain qemuDomainDestroy kills its qemu process
and
starts a new job, which means it unlocks the domain object and locks it
again after some time. Although the object is usually unlocked for a
pretty short time, chances are another thread processing an EOF event on
qemu monitor is able to lock the object first and does all the cleanup
by itself. This leads to wrong shutoff reason and lifecycle event detail
and virDomainDestroy API incorrectly reporting failure to destroy an
inactive domain.
Reported by Charlie Smurthwaite.
---
src/qemu/qemu_domain.h | 1 +
src/qemu/qemu_driver.c | 10 ++++++++++
src/qemu/qemu_process.c | 22 +++++++++++++++-------
3 files changed, 26 insertions(+), 7 deletions(-)
ACK.
--
Eric Blake eblake(a)redhat.com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org