This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: test_faulthandler failure
Type: behavior Stage: needs patch
Components: Tests Versions: Python 3.3
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: vstinner Nosy List: belopolsky, pitrou, python-dev, vstinner
Priority: normal Keywords: buildbot

Created on 2011-04-04 21:08 by pitrou, last changed 2022-04-11 14:57 by admin. This issue is now closed.

Messages (4)
msg132970 - (view) Author: Antoine Pitrou (pitrou) * (Python committer) Date: 2011-04-04 21:08
http://www.python.org/dev/buildbot/all/builders/x86%20XP-4%203.x/builds/4334/steps/test/logs/stdio

======================================================================
FAIL: test_dump_tracebacks_later (test.test_faulthandler.FaultHandlerTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "D:\cygwin\home\db3l\buildarea\3.x.bolen-windows\build\lib\test\test_faulthandler.py", line 420, in test_dump_tracebacks_later
    self.check_dump_tracebacks_later()
  File "D:\cygwin\home\db3l\buildarea\3.x.bolen-windows\build\lib\test\test_faulthandler.py", line 417, in check_dump_tracebacks_later
    self._check_dump_tracebacks_later(repeat, cancel, None)
  File "D:\cygwin\home\db3l\buildarea\3.x.bolen-windows\build\lib\test\test_faulthandler.py", line 404, in _check_dump_tracebacks_later
    self.assertRegex(trace, regex)
AssertionError: Regex didn't match: '^Thread 0x[0-9a-f]+:\n  File "<string>", line 12 in func\n  File "<string>", line 27 in <module>$' not found in 'Thread 0x00000100:\n  File "<string>", line 12 in func\n  File "<string>", line 27 in <module>\nTraceback (most recent call last):\n  File "<string>", line 27, in <module>\n  File "<string>", line 16, in func\nAssertionError: 0.997999906539917 < 1.125'

======================================================================
FAIL: test_dump_tracebacks_later_cancel (test.test_faulthandler.FaultHandlerTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "D:\cygwin\home\db3l\buildarea\3.x.bolen-windows\build\lib\test\test_faulthandler.py", line 426, in test_dump_tracebacks_later_cancel
    self.check_dump_tracebacks_later(cancel=True)
  File "D:\cygwin\home\db3l\buildarea\3.x.bolen-windows\build\lib\test\test_faulthandler.py", line 417, in check_dump_tracebacks_later
    self._check_dump_tracebacks_later(repeat, cancel, None)
  File "D:\cygwin\home\db3l\buildarea\3.x.bolen-windows\build\lib\test\test_faulthandler.py", line 406, in _check_dump_tracebacks_later
    self.assertEqual(trace, '')
AssertionError: 'Traceback (most recent call last):\n  File "<string>", line 27, in <module>\n   [truncated]... != ''
- Traceback (most recent call last):
-   File "<string>", line 27, in <module>
-   File "<string>", line 16, in func
- AssertionError: 0.9980001449584961 < 1.125

======================================================================
FAIL: test_dump_tracebacks_later_file (test.test_faulthandler.FaultHandlerTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "D:\cygwin\home\db3l\buildarea\3.x.bolen-windows\build\lib\test\test_faulthandler.py", line 429, in test_dump_tracebacks_later_file
    self.check_dump_tracebacks_later(file=True)
  File "D:\cygwin\home\db3l\buildarea\3.x.bolen-windows\build\lib\test\test_faulthandler.py", line 415, in check_dump_tracebacks_later
    self._check_dump_tracebacks_later(repeat, cancel, filename)
  File "D:\cygwin\home\db3l\buildarea\3.x.bolen-windows\build\lib\test\test_faulthandler.py", line 394, in _check_dump_tracebacks_later
    trace, exitcode = self.get_output(code, filename)
  File "D:\cygwin\home\db3l\buildarea\3.x.bolen-windows\build\lib\test\test_faulthandler.py", line 61, in get_output
    self.assertEqual(output, '')
AssertionError: 'Traceback (most recent call last):\n  File "<string>", line 27, in <module>\n   [truncated]... != ''
- Traceback (most recent call last):
-   File "<string>", line 27, in <module>
-   File "<string>", line 16, in func
- AssertionError: 0.9980001449584961 < 1.125
- sys:1: ResourceWarning: unclosed file <_io.BufferedWriter name='c:\\docume~1\\db3l\\locals~1\\temp\\tmph6ch7_'>

======================================================================
FAIL: test_dump_tracebacks_later_repeat (test.test_faulthandler.FaultHandlerTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "D:\cygwin\home\db3l\buildarea\3.x.bolen-windows\build\lib\test\test_faulthandler.py", line 423, in test_dump_tracebacks_later_repeat
    self.check_dump_tracebacks_later(repeat=True)
  File "D:\cygwin\home\db3l\buildarea\3.x.bolen-windows\build\lib\test\test_faulthandler.py", line 417, in check_dump_tracebacks_later
    self._check_dump_tracebacks_later(repeat, cancel, None)
  File "D:\cygwin\home\db3l\buildarea\3.x.bolen-windows\build\lib\test\test_faulthandler.py", line 404, in _check_dump_tracebacks_later
    self.assertRegex(trace, regex)
AssertionError: Regex didn't match: '^Thread 0x[0-9a-f]+:\n  File "<string>", line 12 in func\n  File "<string>", line 27 in <module>\nThread 0x[0-9a-f]+:\n  File "<string>", line 12 in func\n  File "<string>", line 27 in <module>$' not found in 'Thread 0x00000ff4:\n  File "<string>", line 12 in func\n  File "<string>", line 27 in <module>\nThread 0x00000ff4:\n  File "<string>", line 12 in func\n  File "<string>", line 27 in <module>\nTraceback (most recent call last):\n  File "<string>", line 27, in <module>\n  File "<string>", line 16, in func\nAssertionError: 0.9700000286102295 < 1.125'
msg132975 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2011-04-04 21:31
I wrote the assertion while dump_tracebacks_later() was implemented using SIGALRM + alarm(timeout). A simple fix for this issue is just to remove the assertion. But... I'm curious, and I would like to understand.

The problem is on the following code:

    timeout = 0.5
    pause = timeout * 2.5
    # on Windows XP, b-a gives 1.249931 after sleep(1.25)
    min_pause = pause * 0.9
    a = time.time()
    time.sleep(pause)
    b = time.time()
    faulthandler.cancel_dump_tracebacks_later()
    # Check that sleep() was not interrupted
    assert (b - a) >= min_pause, "{{}} < {{}}".format(b - a, min_pause)

So time.sleep(1.25) gives a time delta of 0.998 or 0.970 seconds. Hum, this value is close to 1.0 seconds, but not to 1.25 seconds.

I see different reasons why the assertion may fail:

 * sleep() was really interrupted (by faulthandler thread writing the tracebacks?)
 * time.time() and/or sleep() are not accurate on Windows XP
msg132978 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2011-04-04 21:42
New changeset 8da8cd1ba9d9 by Victor Stinner in branch 'default':
Issue #11765: don't test time.sleep() in test_faulthandler
http://hg.python.org/cpython/rev/8da8cd1ba9d9
msg132979 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2011-04-04 21:44
8da8cd1ba9d9 should fix this issue. Please reopen it if it doesn't solved it.
History
Date User Action Args
2022-04-11 14:57:15adminsetgithub: 55974
2011-04-04 21:44:10vstinnersetstatus: open -> closed
resolution: fixed
messages: + msg132979
2011-04-04 21:42:35python-devsetnosy: + python-dev
messages: + msg132978
2011-04-04 21:31:37vstinnersetnosy: + belopolsky
messages: + msg132975
2011-04-04 21:08:55pitroucreate