Message247287
I think you may need to instrument TemporaryDirectory._cleanup to be sure, but it sounds like its being run twice.
now, you're not using it like a context manager (at least as far as your code shows), so it must be happening from the weakref.
https://docs.python.org/3/library/weakref.html#weakref.finalize is the relevant docs for that.
The code looks ok as long as finalize triggers once and only once. Perhaps it should call the finalize() rather than manually calling _cleanup, in cleanup, but I don't see that that should make much difference. I would have thought it a deliberate attempt to avoid some bit of code (e.g. the resource warning), but since its a shared helper, thats not it.
And finalize._exitfunc looks entirely sane to me.
So - I suggest adding a call to print_stack in TemporaryDirectory._cleanup, to see the entire stack, and then hopefully we'll see two such printouts when this error happens, and be able to pinpoint how it's being called twice. |
|
Date |
User |
Action |
Args |
2015-07-24 15:42:42 | rbcollins | set | recipients:
+ rbcollins, Ilya.Kulakov |
2015-07-24 15:42:42 | rbcollins | set | messageid: <1437752562.5.0.2763427767.issue24699@psf.upfronthosting.co.za> |
2015-07-24 15:42:42 | rbcollins | link | issue24699 messages |
2015-07-24 15:42:41 | rbcollins | create | |
|