On Fri, May 18, 2012 at 09:16:20AM +0100, Daniel P. Berrange wrote:
On Fri, May 18, 2012 at 11:55:05AM +0800, Daniel Veillard wrote:
[...]
> The other one raised is actually something I had initially
found
> with the first run on libxml2 so it's relatively consistent:
Yay libxml2 is not thread safe !
"The function rand() is not reentrant or thread-safe, since
it uses hidden state that is modified on each call. This
might just be the seed value to be used by the next call, or
it might be something more elaborate. In order to get
reproducible behavior in a threaded application, this state
must be made explicit; this can be done using the reentrant
function rand_r()."
You should probably validate libxml2 against all the functions
have blacklisted for libvirt in Makefile.nonreentrant
Actually I don't care about "reproducible behaviour" there, the
goal is precisely to introduce some randomness in the execution.
But better to fix this which is now done upstream and will be
in 2.8.0
http://git.gnome.org/browse/libxml2/commit/?id=379ebc1d774865fa92f2a8d80c...
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit
http://xmlsoft.org/
daniel(a)veillard.com | Rpmfind RPM search engine
http://rpmfind.net/
http://veillard.com/ | virtualization library
http://libvirt.org/