If passing a 'NULL' to virExec() for the stdout/err file descriptor it is intended that the child process get connected to /dev/null. This behaviour was previously broken when built with DEBUG enabled, and with Amy's recent logging change, it is now permanently broken. The problem this causes, is that the child process ends up still connected to the parent app's stderr/out. This causes things like Perl's test harness to hang waiting for end of file that will never come while libvirtd is running. THis patch puts virExec back to its original documented behaviour Daniel src/util.c | 4 ++++ 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/src/util.c b/src/util.c index f82cddc..178ff0c 100644 --- a/src/util.c +++ b/src/util.c @@ -376,6 +376,8 @@ __virExec(virConnectPtr conn, } else { childout = *outfd; } + } else { + childout = null; } if (errfd != NULL) { @@ -403,6 +405,8 @@ __virExec(virConnectPtr conn, } else { childerr = *errfd; } + } else { + childerr = null; } if ((pid = fork()) < 0) { -- 1.6.2.5 -- |: Red Hat, Engineering, London -o- http://people.redhat.com/berrange/ :| |: http://libvirt.org -o- http://virt-manager.org -o- http://ovirt.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :| -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list