New submission from Charles-François Natali:
test_subprocess fails on OpenBSD/NetBSD buildbots:
http://buildbot.python.org/all/builders/AMD64 NetBSD 5.1.2 [SB]
2.7/builds/158/steps/test/logs/stdio
"""
======================================================================
ERROR: test_kill_dead (test.test_subprocess.POSIXProcessTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
File
"/home/cpython/buildslave/2.7.snakebite-netbsd51-amd64-1/build/Lib/test/test_subprocess.py",
line 940, in test_kill_dead
self._kill_dead_process('kill')
File
"/home/cpython/buildslave/2.7.snakebite-netbsd51-amd64-1/build/Lib/test/test_subprocess.py",
line 913, in _kill_dead_process
getattr(p, method)(*args)
File
"/home/cpython/buildslave/2.7.snakebite-netbsd51-amd64-1/build/Lib/subprocess.py",
line 1506, in kill
self.send_signal(signal.SIGKILL)
File
"/home/cpython/buildslave/2.7.snakebite-netbsd51-amd64-1/build/Lib/subprocess.py",
line 1496, in send_signal
os.kill(self.pid, sig)
OSError: [Errno 3] No such process
======================================================================
ERROR: test_send_signal_dead (test.test_subprocess.POSIXProcessTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
File
"/home/cpython/buildslave/2.7.snakebite-netbsd51-amd64-1/build/Lib/test/test_subprocess.py",
line 936, in test_send_signal_dead
self._kill_dead_process('send_signal', signal.SIGINT)
File
"/home/cpython/buildslave/2.7.snakebite-netbsd51-amd64-1/build/Lib/test/test_subprocess.py",
line 913, in _kill_dead_process
getattr(p, method)(*args)
File
"/home/cpython/buildslave/2.7.snakebite-netbsd51-amd64-1/build/Lib/subprocess.py",
line 1496, in send_signal
os.kill(self.pid, sig)
OSError: [Errno 3] No such process
======================================================================
ERROR: test_terminate_dead (test.test_subprocess.POSIXProcessTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
File
"/home/cpython/buildslave/2.7.snakebite-netbsd51-amd64-1/build/Lib/test/test_subprocess.py",
line 944, in test_terminate_dead
self._kill_dead_process('terminate')
File
"/home/cpython/buildslave/2.7.snakebite-netbsd51-amd64-1/build/Lib/test/test_subprocess.py",
line 913, in _kill_dead_process
getattr(p, method)(*args)
File
"/home/cpython/buildslave/2.7.snakebite-netbsd51-amd64-1/build/Lib/subprocess.py",
line 1501, in terminate
self.send_signal(signal.SIGTERM)
File
"/home/cpython/buildslave/2.7.snakebite-netbsd51-amd64-1/build/Lib/subprocess.py",
line 1496, in send_signal
os.kill(self.pid, sig)
OSError: [Errno 3] No such process
"""
According to POSIX, kill shoudln't fail with ESRCH on a zombie processes:
"""
Existing implementations vary on the result of a kill() with pid indicating an
inactive process (a terminated process that has not been waited for by its
parent). Some indicate success on such a call (subject to permission checking),
while others give an error of [ESRCH]. Since the definition of process lifetime
in this volume of POSIX.1-2008 covers inactive processes, the [ESRCH] error as
described is inappropriate in this case. In particular, this means that an
application cannot have a parent process check for termination of a particular
child with kill(). (Usually this is done with the null signal; this can be done
reliably with waitpid().)
"""
----------
components: Tests
keywords: buildbot, needs review, patch
messages: 178045
nosy: neologix
priority: low
severity: normal
stage: patch review
status: open
title: test_subprocess failure on OpenBSD/NetBSD buildbots
type: behavior
versions: Python 2.7, Python 3.2, Python 3.3, Python 3.4
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue16762>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com