From: Richard Oudkerk Date: Thu, 17 Oct 2013 11:10:45 +0000 (+0100) Subject: Try strace instead of gdb to see what wedged child is doing. X-Git-Tag: v3.4.0a4~88 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e4508eebb43bfc563192bb60a510d8d91cc6129d;p=thirdparty%2FPython%2Fcpython.git Try strace instead of gdb to see what wedged child is doing. --- diff --git a/Lib/test/_test_multiprocessing.py b/Lib/test/_test_multiprocessing.py index ac1b2a79b734..d2b9403680cc 100644 --- a/Lib/test/_test_multiprocessing.py +++ b/Lib/test/_test_multiprocessing.py @@ -273,7 +273,10 @@ class _TestProcess(BaseTestCase): @classmethod def _test_terminate(cls): + print('signal.getsignal(SIGTERM) =', signal.getsignal(signal.SIGTERM)) + print('starting sleep') time.sleep(100) + print('finished sleep') def test_terminate(self): if self.TYPE == 'threads': @@ -313,12 +316,11 @@ class _TestProcess(BaseTestCase): except RuntimeError: print('os.waitpid() =', os.waitpid(p.pid, os.WNOHANG)) import subprocess - p = subprocess.Popen(['gdb', sys.executable, str(p.pid)], - stdin=subprocess.PIPE) try: - p.communicate(b'bt 50', timeout=10) + subprocess.check_call(['strace', '-p', str(p.pid)], + timeout=10) except subprocess.TimeoutExpired: - p.kill() + pass raise finally: signal.signal(signal.SIGALRM, old_handler)