half-ogre / qed

A minimal continuous integration server running on .NET for repositories hosted on GitHub
MIT License
49 stars 15 forks source link

Periodically sweep old builds and mark them as failed if they've timed out #37

Closed half-ogre closed 10 years ago

forki commented 10 years ago

Important: Try to kill all "new" processes. If you look at teamcity.codebetter.com then this is the no. 1 pain point. Some builds create lot's of zombie NUnit processes and lots of other stuff. This slows the system down to the point where nothing works anymore.

FAKE keeps track of which processes it has created and tries to kill all of them in end. But if FAKE dies, then I don't know if the child processes survive. It would be good if a CI server would do the same.

half-ogre commented 10 years ago

FAKE keeps track of which processes it has created and tries to kill all of them in end. But if FAKE dies, then I don't know if the child processes survive. It would be good if a CI server would do the same.

Yeah, that's how I was thinking of handling it. Store the PIDs somewhere, and when a build has run too long, kill 'em all in the sweep.