[Python-Dev] [Windows, buildbot] kill_python.c mystery
Tim Peters
tim.peters at gmail.com
Thu Jul 27 02:02:37 CEST 2006
Rarely I'll be running the Python tests in my sandbox from a DOS box,
and the test run will just end. Like so:
C:\Code\python\PCbuild>python -E -tt ../lib/test/regrtest.py -uall -rw
test_softspace
test_codecmaps_kr
...
test_float
test_userdict
C:\Code\python\PCbuild>
No indication of success or failure -- the process just vanishes mid-stream.
Today I noticed this happened when the buildbot started to run tests,
and I'm 100% sure it's due to this code in
Tools/buildbot/kill_python.c (the buildbot log files showed that
kill_python.c killed /some/ Python process, and the Python running
release-build tests in my sandbox was the only plausible candidate):
if ((strstr(path, "build\\pcbuild\\python_d.exe") != NULL) ||
(strstr(path, "build\\python.exe") != NULL)) {
printf("Terminating %s (pid %d)\n", path, pids[i]);
if (!TerminateProcess(hProcess, 1)) {
The second clause in the first `if` looks for a substring match on:
build\python.exe
and that just happens to match a suffix of:
C:\Code\python\PCbuild\python.exe
which is the release-build Python I happen to be running in my sandbox.
Why is the second clause there? That is, are we /trying/ to kill a
release-build Python running from the user's sandbox, and if so why?
Introducing the second clause was the sole change in rev 46817, and
the checkin comment doesn't really explain it:
Port cygwin kill_python changes from 2.4 branch.
Since I don't know what it's trying to accomplish, I hesitate to
change it. It's quite clear what the first clause is trying to
accomplish, and that one hasn't caused any problems.
More information about the Python-Dev
mailing list