On 27/11/18 19:44, Eric Blake wrote: > On 11/27/18 12:35 PM, Paolo Bonzini wrote: >> Subprocesses are created by glib without leaving the file descriptors >> open. Therefore, g_test_message (and assertion failures, but those >> trigger when things are going bad anyway) will think that it is writing >> to the log file descriptor, but while actually stomping on the QMP >> file descriptor or similar. This causes spurious failures, which are >> as nice to debug as the reader can imagine. While I have opened a >> pull request on GLib, this will probably take a while to propagate >> to distros. >> >> I found this while working on qgraph, but the fix is generic. >> >> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> >> --- >> include/glib-compat.h | 6 ++++++ >> 1 file changed, 6 insertions(+) > > Wow. I don't envy the debug session that you went through to finally > realize this problem.
It only took me 4 hours actually, but not really the fun kind of debugging. :( Lots of cursing when I found the culprit... > Reviewed-by: Eric Blake <ebl...@redhat.com> > > I think this is safe for 3.1-rc3 if you want it there, as minimizing > spurious test failures is a good thing. I suspect it is the cause of QTEST_VHOST_USER_FIXME but I am not sure it is. In any case, I was not planning to merge it in 3.1-rc3 since we do not have any case where it breaks CI or maintainers' tests. Paolo