• Jason Madden's avatar
    Fix test__core_timer.py by not destroying the default loop. D'oh! · 4fae43f1
    Jason Madden authored
    Before I realized that was the root cause, I refactored to avoid
    starting the hub greenlet *at all*, and that also fixed the problem.
    
    The problem was that some versions of CPython using the libev-cext
    loop (and only that one) would crash garbage collecting a
    greenlet (presumably the hub greenlet, which was attached to a
    destroyed loop):
    
    0   libsystem_kernel.dylib        	0x00007fff66455e3e __pthread_kill + 10
    1   libsystem_pthread.dylib       	0x00007fff66594150 pthread_kill + 333
    2   libsystem_c.dylib             	0x00007fff663648fe raise + 26
    3   libsystem_platform.dylib      	0x00007fff66587f5a _sigtramp + 26
    4   ???                           	000000000000000000 0 + 0
    5   greenlet.cpython-35m-darwin.so	0x000000010d76b297 green_clear + 183
    6   org.python.python             	0x000000010c707e0c collect + 1824
    7   org.python.python             	0x000000010c7076e3 _PyGC_CollectNoFail + 43
    8   org.python.python             	0x000000010c6e81d4 PyImport_Cleanup + 968
    9   org.python.python             	0x000000010c6f1b49 Py_Finalize + 92
    10  org.python.python             	0x000000010c6f20d5 Py_Exit + 13
    11  org.python.python             	0x000000010c6f4631 handle_system_exit + 320
    12  org.python.python             	0x000000010c6f42a1 PyErr_PrintEx + 42
    
    We should take a look at that and see if we can do something more graceful.
    4fae43f1
test__queue.py 11.8 KB