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 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list