[Buildbot-devel] Fwd: canceling a build?

Greg Ward gerg.ward+buildbot at gmail.com
Fri Feb 1 17:42:48 UTC 2008


On Feb 1, 2008 11:48 AM, Stefan Seefeld <seefeld at sympatico.ca> wrote:
> Really ? The toplevel make should 'own' all its child-processes, and
> when it dies, its children should die with it. You'd have to take extra
> steps to have a child process start a new process group. I don't think
> make does that.

That's what I thought at first too.  But my experiments on Linux have
demonstrated that "kill 5322" does *not* necessarily kill all of
process' 5322's children.  And when Buildbot stops a build, *or* when
you stop the slave Buildbot, any processes that are children of
Buildbot's children keep running.  Like I said, killing the process
group works for me.

I suspect that Buildbot needs two changes for this to work:
  * each build step should start a new process group (call
os.setsid()) after fork()ing
    but before exec()ing
  * when stopping a build step (e.g. on explicit user request, or when
the daemon is
    shutdown), Buildbot should kill the whole process group (negative
process ID)

Again, I think this is System V signal handling.  Not sure how modern BSDs work.

Greg




More information about the devel mailing list