Message301075
Antoine: "I doubt it. If that was the case, the reference count would increase as well."
The bug is really weird :-)
Antoine: "Actually, leak2.py doesn't attempt to cleanup anything between runs, so it can't be reliable for detecting leaks. You lack dash_R_cleanup() somewhere."
I simplified dash_R_cleanup() and at the end, it was empty :-) I don't see how the test_current_frames() would need to clear any kind of cache.
Maybe:
* sys._clear_type_cache()
* gc.collect()
* C function clear_freelists() of gcmodule.c
But I tried to call these functions, and it doesn't change anything.
I don't see how calling set.add() and set.discard() would impact any cache, except of maybe of a free list?
The strange thing is that calling dangling.clear() explicitly in test_current_frames() "fixes the leak" (hides the bug?). But any tiny change on this file also hides the bug. The script is very fragile. |
|
Date |
User |
Action |
Args |
2017-08-31 23:48:23 | vstinner | set | recipients:
+ vstinner, brett.cannon, pitrou, zach.ware |
2017-08-31 23:48:23 | vstinner | set | messageid: <1504223303.13.0.241300965127.issue31217@psf.upfronthosting.co.za> |
2017-08-31 23:48:23 | vstinner | link | issue31217 messages |
2017-08-31 23:48:23 | vstinner | create | |
|