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(a)redhat.com +1-801-349-2682
Libvirt virtualization library
http://libvirt.org