New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Many test failures/errors on Python 3.4b1 #306
Comments
Thanks @cgohlke, I will give it a look ASAP. |
OK, IMO this is a serious bug that is triggered by the new object finalization strategy (see [1], [2]) introduced in Python 3.4. If my understanding is correct, with the new finalization scheme implemented in Python 3.4 "an object's finalizer is always called exactly once, even if it was resurrected afterwards". If my understanding of the problem is correct we need a complete redesign of the node cache, the new implementation should not rely on the I made some attempt to use the weak ref callbacks [4] instead of the Any help/hint to fix this issue is very welcome. [1] http://docs.python.org/3.4/whatsnew/3.4.html#pep-442-safe-object-finalization |
Hi @avalentino, I agree that this is a major issue. It is probably worth a version v3.1 once it is fixed. Have you put your attempts to tackle this somewhere. Weak refs were what sprang to mind immediately for me too and I agree that we need to move away from del now that the semantics have changed. The importance of this should not be understated. |
Hi @scopatz,
I totally agree.
Well, the idea is to add a callback to weakrefs stored in the File._aliveNodes dictionary so that the callback can take in charge of moving nodes to the File._deadNodes dictionary before they are deleted (in this case the Unfortunately it seems that we cannot rely on the fact that the weakref callback is called before the object finalizer, the A solution like the one described above would have, if we are able to get a working version, would have a relatively small impact on the code. [1] https://gist.github.com/avalentino/8103133 |
Closed by #311. |
Using tables-3.0.0 on Windows with Python 3.4b1 64 bit, numpy-MKL-1.8.0, and numexpr-2.2.2,
tables.test()
fails badly. Note that numpy and numexpr pass all tests on Python 3.4, and also tables on Python 3.3 passes all tests using the exactly the same compiler, compiler options, and C libraries. Looks like files are not getting closed.The text was updated successfully, but these errors were encountered: