[libvirt] [PATCHv3] qemu: fix crash when mixing sync and async monitor jobs

Eric Blake eblake at redhat.com
Mon Aug 1 17:02:10 UTC 2011


On 07/29/2011 08:53 PM, Wen Congyang wrote:
> At 07/30/2011 05:37 AM, Eric Blake write:
>> On 07/29/2011 03:32 PM, Eric Blake wrote:
>>> Currently, we attempt to run sync job and async job at the same time. It
>>> means that the monitor commands for two jobs can be run in any order.
>>>
>>
>>>
>>> v3: incorporate Wen's feedback - in particular, virProcessStartCPUs
>>> now checks for return type, restarting libvirt does not use an
>>> async job, and I didn't hit the deadlock in the same scenarios as
>>> I tested under v2.
>>> I still need to do migration testing before I'm convinced that this
>>> is right, but it's doing a lot better.
>>
>> Nope, just got a deadlock, by sending SIGINT (^C) during the middle of
>> virsh managedsave. I'll have to keep looking for that culprit...
> 
> I think it's not a deadlock. Some threads of libvirtd quited, but the
> thread
> to do managedsave does not quit, and it is blocked in qemuMonitorSend(),
> and there is no thread to do monitor IO.

Then that sounds like an independent bug - ctrl-C of libvirtd should be
able to cleanly kill a thread in qemuMonitorSend; but since you are less
likely to kill libvirtd, I think this second issue is not a show-stopper
to releasing 0.9.4.

I'll try to investigate it further, and opened this to remind me:

https://bugzilla.redhat.com/show_bug.cgi?id=727254

-- 
Eric Blake   eblake at redhat.com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org




More information about the libvir-list mailing list