classification
Title: Crash during "make coverage-report"
Type: crash Stage: resolved
Components: Versions: Python 3.6
process
Status: closed Resolution: out of date
Dependencies: Superseder:
Assigned To: Nosy List: iritkatriel, skip.montanaro
Priority: normal Keywords:

Created on 2015-05-28 17:01 by skip.montanaro, last changed 2021-11-05 19:48 by iritkatriel. This issue is now closed.

Files
File name Uploaded Description Edit
running skip.montanaro, 2015-05-28 17:01
Messages (3)
msg244323 - (view) Author: Skip Montanaro (skip.montanaro) * (Python triager) Date: 2015-05-28 17:01
While trying out some of the auxiliary make targets on an openSUSE
12.2 system, I got a segfault during the test phase of the
coverage-report target. Several Python processes were running as part
of the test when the crash occurred. The resulting crash causes the
rest of the test process(es) to hang. Ctl-C is required to get back to
a shell prompt.

Here's the traceback reported in the terminal window:

...
  File "/home/skipm/3rdParty/python/cpython/Lib/json/scanner.py", line 38 in _scan_once
  File "/home/skipm/3rdParty/python/cpython/Lib/json/decoder.py", line 185 in JSONObject
  File "/home/skipm/3rdParty/python/cpython/Lib/json/scanner.py", line 38 in _scan_once
  ...
Traceback (most recent call last):
  File "/home/skipm/3rdParty/python/cpython/Lib/runpy.py", line 170, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/skipm/3rdParty/python/cpython/Lib/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/skipm/3rdParty/python/cpython/Lib/test/__main__.py", line 3, in <module>
    regrtest.main_in_temp_cwd()
  File "/home/skipm/3rdParty/python/cpython/Lib/test/regrtest.py", line 1560, in main_in_temp_cwd
    main()
  File "/home/skipm/3rdParty/python/cpython/Lib/test/regrtest.py", line 738, in main
    raise Exception("Child error on {}: {}".format(test, result[1]))
Exception: Child error on test_json: Exit code -11
^CException ignored in: <module 'threading' from '/home/skipm/3rdParty/python/cpython/Lib/threading.py'>
Traceback (most recent call last):
  File "/home/skipm/3rdParty/python/cpython/Lib/threading.py", line 1297, in _shutdown
    t.join()
  File "/home/skipm/3rdParty/python/cpython/Lib/threading.py", line 1063, in join
    self._wait_for_tstate_lock()
  File "/home/skipm/3rdParty/python/cpython/Lib/threading.py", line 1079, in _wait_for_tstate_lock
    elif lock.acquire(block, timeout):
KeyboardInterrupt
make: *** [coverage-report] Interrupt

I noticed that while it crashes reproducibly, it's not always in the
same place. Here's a traceback from a crash in test_exceptions.py:

...
  File "/home/skipm/3rdParty/python/cpython/Lib/test/test_exceptions.py", line 476 in f
  File "/home/skipm/3rdParty/python/cpython/Lib/test/test_exceptions.py", line 476 in f
  File "/home/skipm/3rdParty/python/cpython/Lib/test/test_exceptions.py", line 476 in f
  ...
Traceback (most recent call last):
  File "/home/skipm/3rdParty/python/cpython/Lib/runpy.py", line 170, in _run_module_as_main
    "__main__", mod_spec)
  File "/home/skipm/3rdParty/python/cpython/Lib/runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "/home/skipm/3rdParty/python/cpython/Lib/test/__main__.py", line 3, in <module>
    regrtest.main_in_temp_cwd()
  File "/home/skipm/3rdParty/python/cpython/Lib/test/regrtest.py", line 1560, in main_in_temp_cwd
    main()
  File "/home/skipm/3rdParty/python/cpython/Lib/test/regrtest.py", line 738, in main
    raise Exception("Child error on {}: {}".format(test, result[1]))
Exception: Child error on test_exceptions: Exit code -11
^CException ignored in: <module 'threading' from '/home/skipm/3rdParty/python/cpython/Lib/threading.py'>
Traceback (most recent call last):
  File "/home/skipm/3rdParty/python/cpython/Lib/threading.py", line 1297, in _shutdown
    t.join()
  File "/home/skipm/3rdParty/python/cpython/Lib/threading.py", line 1063, in join
    self._wait_for_tstate_lock()
  File "/home/skipm/3rdParty/python/cpython/Lib/threading.py", line 1079, in _wait_for_tstate_lock
    elif lock.acquire(block, timeout):
KeyboardInterrupt

I've attached the output of pgrep showing the Python processes which
were left running. Here's the stack trace from the core file:

# 0
raise () from /lib64/libc.so.6
# 1
abort () from /lib64/libc.so.6
# 2
Py_FatalError (msg=0x775528 "Py_EndInterpreter: not the last thread") at Python/pylifecycle.c:1374
# 3
Py_EndInterpreter (tstate=0x25b41c0) at Python/pylifecycle.c:826
# 4
run_in_subinterp (self=0x7f9dd8b9d9a8, args=0x7f9dd8b92e80) at /home/skipm/3rdParty/python/cpython/Modules/_testcapimodule.c:2627
# 5
PyCFunction_Call (func=0x7f9dd8babd38, args=0x7f9dd8b92e80, kwds=0x0) at Objects/methodobject.c:109
# 6
call_function (pp_stack=0x7fffc68bda98, oparg=1) at Python/ceval.c:4653
# 7
PyEval_EvalFrameEx (f=0x260ae08, throwflag=0) at Python/ceval.c:3198
# 8
_PyEval_EvalCodeWithName (_co=0x7f9dd8c5bc00, globals=0x7f9dd8c9ffc8, locals=0x7f9dd8c9ffc8, args=0x0, argcount=0, kws=0x0, kwcount=0, defs=0x0, defcount=0, kwdefs=0x0, closure=0x0, name=0x0, qualname=0x0) at Python/ceval.c:3964
# 9
PyEval_EvalCodeEx (_co=0x7f9dd8c5bc00, globals=0x7f9dd8c9ffc8, locals=0x7f9dd8c9ffc8, args=0x0, argcount=0, kws=0x0, kwcount=0, defs=0x0, defcount=0, kwdefs=0x0, closure=0x0) at Python/ceval.c:3985
#10
PyEval_EvalCode (co=0x7f9dd8c5bc00, globals=0x7f9dd8c9ffc8, locals=0x7f9dd8c9ffc8) at Python/ceval.c:777
#11
run_mod (mod=0x264dfb8, filename=0x7f9dd8c67eb0, globals=0x7f9dd8c9ffc8, locals=0x7f9dd8c9ffc8, flags=0x7fffc68bfe80, arena=0x263e470) at Python/pythonrun.c:970
#12
PyRun_StringFlags (str=0x7f9dd8c5c050 "if 1:\n", ' ' <repeats 12 times>, "import _testcapi\n\n", ' ' <repeats 12 times>, "_testcapi.run_in_subinterp('if 1:\\n", ' ' <repeats 12 times>, "import os\\n", ' ' <repeats 12 times>, "import threading\\n", ' ' <repeats 12 times>, "import time\\n\\n", ' ' <repeats 12 times>, "def f():\\n", ' ' <repeats 15 times>..., start=257, globals=0x7f9dd8c9ffc8, locals=0x7f9dd8c9ffc8, flags=0x7fffc68bfe80) at Python/pythonrun.c:894
#13
PyRun_SimpleStringFlags (command=0x7f9dd8c5c050 "if 1:\n", ' ' <repeats 12 times>, "import _testcapi\n\n", ' ' <repeats 12 times>, "_testcapi.run_in_subinterp('if 1:\\n", ' ' <repeats 12 times>, "import os\\n", ' ' <repeats 12 times>, "import threading\\n", ' ' <repeats 12 times>, "import time\\n\\n", ' ' <repeats 12 times>, "def f():\\n", ' ' <repeats 15 times>..., flags=0x7fffc68bfe80) at Python/pythonrun.c:421
#14
run_command (command=0x259ecc0 L"if 1:\n", ' ' <repeats 12 times>, "import _testcapi\n\n", ' ' <repeats 12 times>, "_testcapi.run_in_subinterp('if 1:\\n", ' ' <repeats 12 times>, "import os\\n", ' ' <repeats 12 times>, "import threading\\n", ' ' <repeats 12 times>, "import time\\n\\n", ' ' <repeats 12 times>, "def f():\\n", ' ' <repeats 15 times>..., cf=0x7fffc68bfe80) at Modules/main.c:279
#15
Py_Main (argc=6, argv=0x259e010) at Modules/main.c:706
#16
main (argc=6, argv=0x7fffc68c0098) at ./Programs/python.c:69
msg404204 - (view) Author: Irit Katriel (iritkatriel) * (Python committer) Date: 2021-10-18 17:48
3.6 is no longer maintained. Is this still an issue on 3.9+?
msg405823 - (view) Author: Irit Katriel (iritkatriel) * (Python committer) Date: 2021-11-05 19:48
Please reopen or create a new issue if you see it on a current python version.
History
Date User Action Args
2021-11-05 19:48:31iritkatrielsetstatus: pending -> closed
resolution: out of date
messages: + msg405823

stage: resolved
2021-10-18 17:48:11iritkatrielsetstatus: open -> pending
nosy: + iritkatriel
messages: + msg404204

2015-05-28 17:01:01skip.montanarocreate