[libvirt] [PATCH] tests: avoid test failure on rawhide gnutls
Daniel P. Berrange
berrange at redhat.com
Sun Jan 8 16:55:20 UTC 2012
On Fri, Jan 06, 2012 at 02:27:42PM -0700, Eric Blake wrote:
> I hit a VERY weird testsuite failure on rawhide, which included
> _binary_ output to stderr, followed by a hang waiting for me
> to type something! (Here, using ^@ for NUL):
>
> $ ./commandtest
> TEST: commandtest
> WARNING: gnome-keyring:: couldn't send data: Bad file descriptor
> .WARNING: gnome-keyring:: couldn't send data: Bad file descriptor
> .WARNING: gnome-keyring:: couldn't send data: Bad file descriptor
> WARNING: gnome-keyring:: couldn't send data: Bad file descriptor
> .8^@^@^@8^@^@^@^A^@^@^@^Bay^A^@^@^@)PRIVATE-GNOME-KEYRING-PKCS11-PROTOCOL-V-1
>
> I finally traced it to the fact that gnome-keyring, called via
> gnutls_global_init which is turn called by virNetTLSInit, opens
> an internal fd that it expects to communicate to via a
> pthread_atfork handler (never mind that it violates POSIX by
> using non-async-signal-safe functions in that handler:
> https://bugzilla.redhat.com/show_bug.cgi?id=772320).
>
> Our problem stems from the fact that we pulled the rug out from
> under the library's expectations by closing an fd that it had
> just opened. While we aren't responsible for fixing the bugs
> in that pthread_atfork handler, we can at least avoid the bugs
> by not closing the fd in the first place.
>
> * tests/commandtest.c (mymain): Avoid closing fds that were opened
> by virInitialize.
> ---
>
> Pushing under the build-breaker rule. It cost me the better part of
> a morning to track this one down, so I left a super-long comment
> to help the next person to read the file understand what we're
> fighting against.
ACK, nasty one to debug !
Daniel
More information about the libvir-list
mailing list