[libvirt] [PATCH v2 07/14] libxl: fix deadlock in libxlReconnectDomain

Jim Fehlig jfehlig at suse.com
Wed Jul 3 20:51:50 UTC 2013


On 06/12/2013 07:54 PM, Marek Marczykowski-Górecki wrote:
> Use virDomainObjListRemoveLocked instead of virDomainObjListRemove, as
> driver->domains is already taken by virDomainObjListForEach.
>
> Above deadlock can be triggered when libvirtd is started after some
> domain have been started by hand (in which case driver will not find
> libvirt-xml domain config).
>
> Signed-off-by: Marek Marczykowski-Górecki <marmarek at invisiblethingslab.com>
> ---
>   src/libxl/libxl_driver.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c
> index df31001..b2cff5b 100644
> --- a/src/libxl/libxl_driver.c
> +++ b/src/libxl/libxl_driver.c
> @@ -1100,7 +1100,7 @@ libxlReconnectDomain(virDomainObjPtr vm,
>   out:
>       libxlVmCleanup(driver, vm, VIR_DOMAIN_SHUTOFF_UNKNOWN);
>       if (!vm->persistent)
> -        virDomainObjListRemove(driver->domains, vm);
> +        virDomainObjListRemoveLocked(driver->domains, vm);
>       else
>           virObjectUnlock(vm);
>   

Trivial once 6/14 ACK'ed.

ACK and pushed.

Regards,
Jim




More information about the libvir-list mailing list