]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
STABLE14-solaris10-afsd-waitpid-to-clean-contract-20051013
authorChas Williams <chas@cmf.nrl.navy.mil>
Thu, 13 Oct 2005 22:00:11 +0000 (22:00 +0000)
committerDerrick Brashear <shadow@dementia.org>
Thu, 13 Oct 2005 22:00:11 +0000 (22:00 +0000)
FIXES 22317

it seems like this might be a bug in solaris10 when handling contracts
of exiting chilren who have created kernel threads.  the rxlistener is
a kernel thread on solaris and the child that starts the kernel_thread
returns and exits.

(cherry picked from commit ae7d5f250d96b7350ee369a74f71a89d646ddccc)

src/afsd/afsd.c

index 623b18ca4a49e3eec3d850048ee957602fe431fd..0ff7fa8fd22c970bed4348181574a963f9b0a140 100644 (file)
@@ -78,6 +78,7 @@ RCSID
 #include <errno.h>
 #include <sys/time.h>
 #include <dirent.h>
+#include <sys/wait.h>
 
 
 #ifdef HAVE_SYS_PARAM_H
@@ -1799,6 +1800,9 @@ mainproc(struct cmd_syndesc *as, char *arock)
                     enable_process_stats);
        exit(1);
     }
+#ifdef AFS_SUN510_ENV
+    waitpid((pid_t) -1, NULL, 0);
+#endif
 #endif
     if (afsd_verbose)
        printf("%s: Forking rx callback listener.\n", rn);