STINNER Victor <vstin...@python.org> added the comment:

For me, there are different issues:

* PyType_FromSpec() must fail if a type is declared with Py_TPFLAGS_HAVE_GC but 
its tp_traverse function is NULL.
* _ssl.SSLError must implement the tp_traverse slot

Moreover, in debug mode, PyObject_GC_Track() calls the traverse function to 
ensure that it's safe to call it. PyObject_GC_Track() must crash of tp_traverse 
is NULL. If it didn't track, it means that the _ssl.SSLError instance was not 
tracked by the GC. Is that ok? Objects implementing the GC protocol should be 
tracked by the GC, no?

An exception is *likely* to be part of a reference cycle because it contains a 
traceback which contains frames which contains variables, and one variable can 
be the exception.

----------

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

Reply via email to