STINNER Victor <vstin...@redhat.com> added the comment:

Failing assertion:

    /* The stack of exception states should contain just this thread. */
    assert(tstate->exc_info->previous_item == NULL);

"test_multiprocessing_fork passed in 9 min 13 sec"

Oh. A child process crashed on "self.pid = os.fork()" in 
"/Lib/multiprocessing/popen_fork.py", line 70 in _launch", but the test still 
pass.

os.fork() calls PyOS_AfterFork_Child() which starts by calling 
_PyGILState_Reinit() which ends with 
"_PyThreadState_DeleteExcept(current_tstate);".

_PyThreadState_DeleteExcept() creates a "garbage" list of thread states, and 
then call PyThreadState_Clear() on each thread. Finally, one call to 
PyThreadState_Clear() fails on the assertion.

I'm not sure that the assertion takes in account the case of specific case of 
fork().

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<https://bugs.python.org/issue33612>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to