[libvirt] [PATCH] tests: avoid data race

Eric Blake eblake at redhat.com
Wed Dec 15 17:26:41 UTC 2010


I got some spurious failures when commandhelper won the race and
ran to the point of parent detection prior to the intermediate
daemonizing process getting a chance to exit.  This fixes it.

* tests/commandhelper.c (main): Checking for re-parenting to
init(1) is racy; instead check that we belong to a new session.
---
 tests/commandhelper.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/tests/commandhelper.c b/tests/commandhelper.c
index 5b2f301..f400e8d 100644
--- a/tests/commandhelper.c
+++ b/tests/commandhelper.c
@@ -95,7 +95,7 @@ int main(int argc, char **argv) {
             fprintf(log, "FD:%d\n", i);
     }

-    fprintf(log, "DAEMON:%s\n", getppid() == 1 ? "yes" : "no");
+    fprintf(log, "DAEMON:%s\n", getpgrp() == getsid(0) ? "yes" : "no");
     char cwd[1024];
     if (!getcwd(cwd, sizeof(cwd)))
         return EXIT_FAILURE;
-- 
1.7.3.3




More information about the libvir-list mailing list