ca7d7a6ad69056034c50055a4baa31466c1f04e4
galt
  Wed Jun 26 17:35:06 2013 -0700
fixing dumpstack to use _exit instead of exit so that the child cleanup will not close the mysql connections that are shared with the parent process.
diff --git src/lib/pipeline.c src/lib/pipeline.c
index 417bd31..9a0a936 100644
--- src/lib/pipeline.c
+++ src/lib/pipeline.c
@@ -413,31 +413,31 @@
 int status;
 pid_t pid = waitpid(-pl->groupLeader, &status, 0);
 if (pid < 0)
     errnoAbort("waitpid failed");
 if (WIFSIGNALED(status))
     errAbort("process pipeline terminated on signal %d", WTERMSIG(status));
 assert(WIFEXITED(status));
 
 if ((WEXITSTATUS(status) != 0) && !(pl->options & pipelineNoAbort))
     errAbort("pipeline exited with %d", WEXITSTATUS(status));
 return WEXITSTATUS(status);
 }
 
 static void pipelineExec(struct pipeline* pl, int stdinFd, int stdoutFd, int stderrFd,
                          void *otherEndBuf, size_t otherEndBufSize)
-/* Fork the group leader, which then launches all all processes in a pipeline,
+/* Fork the group leader, which then launches all processes in a pipeline,
  * stdinFd and stdoutFd are the ends of the pipeline, stderrFd is applied to
  * all processes, including group leader */
 {
 assert(pl->groupLeader < 0);  // should not be set
 if ((pl->groupLeader = fork()) < 0)
     errnoAbort("can't fork");
 if (pl->groupLeader == 0)
     {
     groupLeaderRun(pl, stdinFd, stdoutFd, stderrFd, otherEndBuf, otherEndBufSize);
     exit(1); // doesn't return to here
     }
 else
     {
     // parent also must also setpgid to prevent race condition
     if (setpgid(pl->groupLeader, pl->groupLeader) != 0)