[Python-Dev] Stable buildbots

Paul Moore p.f.moore at gmail.com
Sun Jan 30 20:37:40 CET 2011


On 23 November 2010 23:18, David Bolen <db3l.net at gmail.com> wrote:
> Trent Nelson <trent at snakebite.org> writes:
>
>> That's interesting.  (That kill_python.exe doesn't kill the wedged
>> processes, but pskill does.)  kill_python is pretty simple, it just
>> calls TerminateProcess() after acquiring a handle with the relevant
>> PROCESS_TERMINATE access right.  (...)
>>
>> Are you calling pskill with the -t flag? i.e. kill process and all
>> dependents?  That might be the ticket, especially if killing the child
>> process that wedged select() is waiting on causes it to return, and
>> thus, makes it killable.
>
> Nope, just "pskill python_d".  Haven't bothered to check the pskill
> source but I'm assuming it's just a basic TerminateProcess. Ideally my
> quickest workaround would just be to replace the kill_python in the
> buildbot tools script with that command but of course they could get
> updated on checkouts and I'm not arguing it's generally appropriate enough
> to belong in the source.

After a long, long time (:-(), I'm finally getting a chance to look at
this. I've patched buildbot as mentioned earlier in the thread, but I
don't see where I should put the pskill command to make it work. At
the moment, I have scheduled tasks to pskill python_d and
vsjitdebugger. The python_d one runs daily and the debugger one
hourly. (I daren't kill python_d too often, or I'll start killing
in-progress tests, I assume). The vsjitdebugger one is there because I
think it solves the CRT popup issue (I'll add the autoit script as
well, but as I'm running as a service, I'm not sure the popup will
alwats be visible for the autoit script to pick up...)

Presumably, you're inserting a pskill command somewhere into the
actual build process. I don't know much about buildbot, but I thought
that was controlled by the master and/or the Python build scripts,
neither of which I can change.

If I want to add a pskill command just after a build/test has run
(i.e., about where kill_python runs at the moment) how do I do that?

Thanks,
Paul.


More information about the Python-Dev mailing list