[libvirt-users] global lock when executing hook scripts

Daniel P. Berrange berrange at redhat.com
Thu Jul 23 13:22:20 UTC 2015


On Thu, Jul 23, 2015 at 04:17:22PM +0300, Vasiliy Tolstov wrote:
> Hello. I'm try to understand, why in case of 20 workers libvirt fully
> locked when runs qemu hook (when domain starts) virsh list freezes.
> As i understand in case of using more workers it utilized to run hooks
> too, but as i see in pstree only main libvirt process executes hook.
> Why this happening?

The process for starting up a QEMU guest holds locks on various
data structures. These same locks are needed when running a variety
of other commands such as those run by virsh list. So those commands
will be blocked until the guest startup lock is released, which
in turns is pending on the hook script exiting. This why hook
scripts should never call back into libvirt APIs, and why they should
also try to be as fast as possible at execution.

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvirt-users mailing list