classification
Title: asyncio: segfault in test_env_var_debug() on non-debug Windows buildbot
Type: behavior Stage: resolved
Components: asyncio, Windows Versions: Python 3.6, Python 3.5
process
Status: closed Resolution: fixed
Dependencies: Superseder:
Assigned To: Nosy List: gvanrossum, paul.moore, steve.dower, tim.golden, vstinner, yselivanov, zach.ware
Priority: normal Keywords:

Created on 2015-06-20 07:38 by vstinner, last changed 2015-06-24 19:23 by zach.ware. This issue is now closed.

Messages (6)
msg245551 - (view) Author: STINNER Victor (vstinner) * (Python committer) Date: 2015-06-20 07:38
It looks like buildbot slave crashs since:
http://buildbot.python.org/all/builders/AMD64%20Windows8.1%20Non-Debug%203.x/builds/23
or
http://buildbot.python.org/all/builders/AMD64%20Windows8.1%20Non-Debug%203.x/builds/22

Changes: changeset a1b76c1c3be8409565af71b02b84685233276120

======================================================================
FAIL: test_env_var_debug (test.test_asyncio.test_base_events.BaseEventLoopTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "B:\buildarea\3.x.ware-win81-release\build\lib\test\test_asyncio\test_base_events.py", line 680, in test_env_var_debug
    PYTHONASYNCIODEBUG='')
  File "B:\buildarea\3.x.ware-win81-release\build\lib\test\support\script_helper.py", line 135, in assert_python_ok
    return _assert_python(True, *args, **env_vars)
  File "B:\buildarea\3.x.ware-win81-release\build\lib\test\support\script_helper.py", line 121, in _assert_python
    err))
AssertionError: Process return code is 3221225477
command line: ['B:\\buildarea\\3.x.ware-win81-release\\build\\PCbuild\\amd64\\python.exe', '-X', 'faulthandler', '-c', 'import asyncio\nloop = asyncio.get_event_loop()\nprint(loop.get_debug())']

stdout:
---

---

stderr:
---
Fatal Python error: Segmentation fault

Current thread 0x00000390 (most recent call first):
  File "B:\buildarea\3.x.ware-win81-release\build\lib\functools.py", line 423 in decorating_function
  File "B:\buildarea\3.x.ware-win81-release\build\lib\ipaddress.py", line 1963 in IPv6Address
  File "B:\buildarea\3.x.ware-win81-release\build\lib\ipaddress.py", line 1869 in <module>
  File "<frozen importlib._bootstrap>", line 222 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 661 in exec_module
  File "<frozen importlib._bootstrap>", line 673 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 958 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 969 in _find_and_load
  File "B:\buildarea\3.x.ware-win81-release\build\lib\ssl.py", line 90 in <module>
  File "<frozen importlib._bootstrap>", line 222 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 661 in exec_module
  File "<frozen importlib._bootstrap>", line 673 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 958 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 969 in _find_and_load
  File "B:\buildarea\3.x.ware-win81-release\build\lib\asyncio\sslproto.py", line 5 in <module>
  File "<frozen importlib._bootstrap>", line 222 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 661 in exec_module
  File "<frozen importlib._bootstrap>", line 673 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 958 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 969 in _find_and_load
  File "<frozen importlib._bootstrap>", line 222 in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1016 in _handle_fromlist
  File "B:\buildarea\3.x.ware-win81-release\build\lib\asyncio\proactor_events.py", line 16 in <module>
  File "<frozen importlib._bootstrap>", line 222 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 661 in exec_module
  File "<frozen importlib._bootstrap>", line 673 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 958 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 969 in _find_and_load
  File "<frozen importlib._bootstrap>", line 222 in _call_with_frames_removed
  File "<frozen importlib._bootstrap>", line 1016 in _handle_fromlist
  File "B:\buildarea\3.x.ware-win81-release\build\lib\asyncio\windows_events.py", line 13 in <module>
  File "<frozen importlib._bootstrap>", line 222 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 661 in exec_module
  File "<frozen importlib._bootstrap>", line 673 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 958 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 969 in _find_and_load
  File "B:\buildarea\3.x.ware-win81-release\build\lib\asyncio\__init__.py", line 46 in <module>
  File "<frozen importlib._bootstrap>", line 222 in _call_with_frames_removed
  File "<frozen importlib._bootstrap_external>", line 661 in exec_module
  File "<frozen importlib._bootstrap>", line 673 in _load_unlocked
  File "<frozen importlib._bootstrap>", line 958 in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 969 in _find_and_load
  File "<string>", line 1 in <module>
---
msg245561 - (view) Author: Zachary Ware (zach.ware) * (Python committer) Date: 2015-06-20 13:34
Note that it's not necessarily that changeset; I think build 22 is around when the buildbot started actually doing non-debug builds (the buildmaster and buildslave scripts in Tools/buildbot had no support for a non-debug build before then).

I'll try to run the tests a little further back soon.
msg245565 - (view) Author: Steve Dower (steve.dower) * (Python committer) Date: 2015-06-20 16:16
Presumably it's from the C implementation of lru cache
msg245647 - (view) Author: Zachary Ware (zach.ware) * (Python committer) Date: 2015-06-22 20:39
Actually, it looks like it's due to PEP 492:

C:\Users\Zachary\code\hg.python.org\3.5>hg bisect -b
The first bad revision is:
changeset:   96411:d1959cafc68c
branch:      3.5
parent:      96407:e59966bb6de5
parent:      96410:b7b73029c825
user:        Yury Selivanov <yselivanov@sprymix.com>
date:        Sat May 30 21:02:34 2015 -0400
summary:     Issue 24004: Support Awaitables (pep 492) in @asyncio.coroutine decorator

Not all ancestors of this changeset have been checked.
Use bisect --extend to continue the bisection from
the common ancestor, 943fa0e8b6a4.
msg245651 - (view) Author: Yury Selivanov (yselivanov) * (Python committer) Date: 2015-06-22 21:50
Hi Zachary,

This is extremely strange.  The test doesn't even start the loop, it only creates it, and prints out what 'get_debug' says.

It can't be 'sys.set_coroutine_wrapper' either, as it's only called when a loop is running, or when it's about to start/stop running.

The change in "96411:d1959cafc68c" can only affect running coroutines, but I don't think the tests invokes any.

asyncio itself does not even have any 'async def' functions (only in test_pep492.py)...
msg245771 - (view) Author: Zachary Ware (zach.ware) * (Python committer) Date: 2015-06-24 19:23
Well, whatever it was, 44253ce374fc21402c15cbce9c2be0e184610882 seems to have fixed it.  As of build 35 on 3.x and build 31 on 3.5, test_asyncio passes on the Non-Debug Windows bot.
History
Date User Action Args
2015-06-24 19:23:48zach.waresetstatus: open -> closed
resolution: fixed
messages: + msg245771

stage: needs patch -> resolved
2015-06-22 21:50:09yselivanovsetmessages: + msg245651
2015-06-22 20:39:18zach.waresettype: behavior
stage: needs patch
messages: + msg245647
versions: + Python 3.5
2015-06-20 16:16:38steve.dowersetmessages: + msg245565
2015-06-20 13:34:54zach.waresetmessages: + msg245561
2015-06-20 07:38:54vstinnercreate