On 06.11.2013 16:17, Michal Privoznik wrote:
> On 06.11.2013 11:23, TSADOK, Shlomi (Shlomi) wrote:
>> [...]
>
>
http://libvirt.org/hooks.html#recursive
>
> Do not do this.
>
> Michal
>
Maybe I should explain a bit why this is not supported. It's true that
libvirt is multithreaded. However, not in terms of multiple write/modify
accesses to a single domain. That is, when a domain is being started up
it is a modify access. Meanwhile, at some point during the transaction
the startup hook script is called. If the script decides to start
another modify transaction an deadlock occurs.
There is also a limit to the number of threads which deal with jobs,
so even if the threads are all busy, your hook will stall and potentially
even deadlock if all creates are stuck in create calls with hooks running
even across different VMs.
Daniel
--
|: