STINNER Victor <[email protected]> added the comment:
This bug is really hard to reproduce on Windows. It depends on flake8 is run.
It's a random crash in the last GC collection at Python exit.
Crash related to AST in interpreter_clear() remains me bpo-41796.
Extract of the code:
static void
interpreter_clear(PyInterpreterState *interp, PyThreadState *tstate)
{
...
_PyAST_Fini(interp);
...
/* Last garbage collection on this interpreter */
_PyGC_CollectNoFail(tstate);
_PyGC_Fini(interp);
...
}
The crash occurs in _PyGC_CollectNoFail().
_PyAST_Fini() clears references to AST types in the interpreter AST state. AST
type instances hold a reference to the their heap type:
static int
ast_traverse(AST_object *self, visitproc visit, void *arg)
{
Py_VISIT(Py_TYPE(self));
Py_VISIT(self->dict);
return 0;
}
But the crash happens when self->dict is deallocated.
----------
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue44184>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com