classification
Title: test_sys triggers a fatal python error when run under coverage.py
Type: crash Stage: resolved
Components: Versions: Python 3.2
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: brett.cannon, georg.brandl
Priority: release blocker Keywords: patch

Created on 2011-01-23 00:18 by brett.cannon, last changed 2011-01-23 23:06 by brett.cannon. This issue is now closed.

Files
File name Uploaded Description Edit
issue10985.diff brett.cannon, 2011-01-23 21:21 Make test_sys.test_recursionlimit_recovery CPython-only & sys.gettrace() is false
Messages (6)
msg126865 - (view) Author: Brett Cannon (brett.cannon) * (Python committer) Date: 2011-01-23 00:18
If you run test_sys under coverage.py with ``./python.exe -m coverage run --pylib Lib/test/regrtest.py test_sys`` you get::

  Fatal Python error: Cannot recover from stack overflow

Have not taken the time to try to figure out exactly what code is triggering the recursion, but coverage.py is being used w/o its extension coverage support. Could be caused by coverage.py, but I'm a bit surprised that it's a fatal error instead of a recursion limit exception.
msg126866 - (view) Author: Brett Cannon (brett.cannon) * (Python committer) Date: 2011-01-23 00:28
Ran the test under verbose mode at Antoine's suggestion; test triggering the failure is test_recursionlimit_recovery
msg126867 - (view) Author: Brett Cannon (brett.cannon) * (Python committer) Date: 2011-01-23 00:34
The comment on the test says its brittle and sensitive to nothing mucking around with recursion depth, so the test probably need a unittest.skipIf check for a trace function.
msg126900 - (view) Author: Brett Cannon (brett.cannon) * (Python committer) Date: 2011-01-23 21:21
I have a patch for this which makes it a CPython-only test along with being conditional if a trace function is set. Making it a release blocker to see if Georg will let me commit it.
msg126905 - (view) Author: Brett Cannon (brett.cannon) * (Python committer) Date: 2011-01-23 22:23
Georg cleared the commit; just waiting for a test run with coverage.py to finish before committing.
msg126907 - (view) Author: Brett Cannon (brett.cannon) * (Python committer) Date: 2011-01-23 23:06
r88153 w/ a review by Georg Brandl
History
Date User Action Args
2011-01-23 23:06:35brett.cannonsetstatus: open -> closed
nosy: brett.cannon, georg.brandl
messages: + msg126907

resolution: accepted -> fixed
stage: commit review -> resolved
2011-01-23 22:23:16brett.cannonsetnosy: brett.cannon, georg.brandl
messages: + msg126905
resolution: accepted
stage: test needed -> commit review
2011-01-23 21:21:57brett.cannonsetfiles: + issue10985.diff
priority: normal -> release blocker

nosy: + georg.brandl
messages: + msg126900

keywords: + patch
2011-01-23 00:34:57brett.cannonsetmessages: + msg126867
2011-01-23 00:28:16brett.cannonsetmessages: + msg126866
2011-01-23 00:18:05brett.cannoncreate