[libvirt] [PATCH 4/7] Fix potential deadlock across fork() in QEMU driver
Cole Robinson
crobinso at redhat.com
Thu Jul 25 22:33:37 UTC 2013
On 07/23/2013 11:03 AM, Eric Blake wrote:
> From: "Daniel P. Berrange" <berrange at redhat.com>
>
> https://bugzilla.redhat.com/show_bug.cgi?id=964358
>
> The hook scripts used by virCommand must be careful wrt
> accessing any mutexes that may have been held by other
> threads in the parent process. With the recent refactoring
> there are 2 potential flaws lurking, which will become real
> deadlock bugs once the global QEMU driver lock is removed.
>
> Remove use of the QEMU driver lock from the hook function
> by passing in the 'virQEMUDriverConfigPtr' instance directly.
>
> Add functions to the virSecurityManager to be invoked before
> and after fork, to ensure the mutex is held by the current
> thread. This allows it to be safely used in the hook script
> in the child process.
>
> Signed-off-by: Daniel P. Berrange <berrange at redhat.com>
> (cherry picked from commit 61b52d2e3813cc8c9ff3ab67f232bd0c65f7318d)
>
> Conflicts:
> src/libvirt_private.syms - context
> src/qemu/qemu_process.c - no backport of qemud_driver struct rename
> src/security/security_manager.c - no backport of making the security driver self-locking; just expose the interface
ACK
- Cole
More information about the libvir-list
mailing list