> 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
> 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 3ec128989606278 635a7c5dfbeee95 9692d12e15
Author: Daniel P. Berrange <email address hidden>
Date: Tue Nov 29 12:11:01 2011 +0000
Add internal APIs for dealing with time
commit 32d3ec7466a554f 7a4a3e9d4017a24 aa540ecf18
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 a8bb75a3e65f0ae 866f3b3fd60c57b 2aa2050017
Author: Daniel P. Berrange <email address hidden>
Date: Tue Nov 29 12:33:23 2011 +0000
Remove time APIs from src/util/util.h