New submission from Antoine Pitrou:

This is a tricky issue I'm sometimes seeing when running Numba's test suite, 
and I can't seem to write a reproducer. Somtimes I'm seeing the following 
messages:

Exception ignored in: <function 
_OverloadedBase._make_finalizer.<locals>.finalizer at 0x7f1466487c80>
Traceback (most recent call last):
  File "/home/antoine/numba/numba/dispatcher.py", line 59, in finalizer
    if shutting_down():
NameError: free variable 'shutting_down' referenced before assignment in 
enclosing scope

So what does it correspond to? The code is here:
https://github.com/numba/numba/blob/master/numba/dispatcher.py#L47

Basically, there's no way 'shutting_down' can be referenced before 
assignment... except if it has been cleared. And the only thing which can clear 
it here is the GC (namely, cell objects' tp_clear() method).

I'm not sure what the exact trigger for reproduction is. It does have to 
feature a reference cycle involving the closure; perhaps the trashcan mechanism 
comes into play as well. Also, the closure must be invoked on collection of 
something in the cycle, so a weakref callback could be nice.

----------
messages: 225012
nosy: pitrou, tim.peters
priority: normal
severity: normal
status: open
title: cell object cleared too early?
versions: Python 3.4, Python 3.5

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

Reply via email to