Comment 3 for bug 953656

Revision history for this message
Daniel Berrange (berrange) wrote :

> As libvirt seems to have threading issues, perhaps we should scope every libvirt call in a global lock?

This won't solve the problem. The flaw seen here is a deadlock between 1 thread in libvirtd, and a child process it forks during VM startup, so can be seen even if you serialize all libvirt API calls.

> @Dan: since you are the author of the upstream patch, do you think it applies for us ? Which version of libvirt introduces the fix, > if any ?

The fixes are present in libvirt >= 0.9.8.

The fixes can be applied to older libvirt releases (eg 0.9.6/0.9.7) without too much trouble. For reference the fixes that Ubuntu libvirt maintainers would need to backport are:

commit 3ec128989606278635a7c5dfbeee959692d12e15
Author: Daniel P. Berrange <email address hidden>
Date: Tue Nov 29 12:11:01 2011 +0000

    Add internal APIs for dealing with time

commit 32d3ec7466a554f7a4a3e9d4017a24aa540ecf18
Author: Daniel P. Berrange <email address hidden>
Date: Tue Nov 29 12:32:31 2011 +0000

    Make logging async signal safe wrt time stamp generation

commit a8bb75a3e65f0ae866f3b3fd60c57b2aa2050017
Author: Daniel P. Berrange <email address hidden>
Date: Tue Nov 29 12:33:23 2011 +0000

    Remove time APIs from src/util/util.h