[issue7808] test_bsddb3 leaks references
Jesús Cea Avión j...@jcea.es added the comment: I have problem getting your changes working in python 3.x. Yes, pybsddb supports py3k. The problem is line sys.exc_traceback = sys.last_traceback = None, that throws the following error under python 3.x: File /home/pybsddb/build/lib.solaris-2.10-i86pc-3.1/bsddb3/tests/test_compare.py, line 215, in verifyStderr sys.exc_info()[2] = sys.last_traceback = None TypeError: 'tuple' object does not support item assignment The line is automatically translated by 2to3. Any suggestion?. I guess in 3.x we can change the line to sys.exc_clear(), and forget about the None asignment. What do you think?. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue7808 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue7808] test_bsddb3 leaks references
Jesús Cea Avión j...@jcea.es added the comment: Patch up-ported to pybsddb 4.8.4. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue7808 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue7808] test_bsddb3 leaks references
Florent Xicluna florent.xicl...@gmail.com added the comment: Jesús, your patch looks good. I prefer your approach. My use of the weakrefs was an ugly workaround, I admit. Maybe the close() method in the C module should be in charge of DECREFing the handlers and freeing memory. I did not look further in this direction. Attached patch is quite the same as yours. I just simplified the dummy() handler. -- Added file: http://bugs.python.org/file16546/issue7808_bsddb3_refleak_v2TOv3_mod.diff ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue7808 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue7808] test_bsddb3 leaks references
Jesús Cea Avión j...@jcea.es added the comment: I confirm the leaks in the C code. How do you find them? I see your point with the weakrefs in the unittest, but I don't see why they are so important. We are creating a GC cycle, yes, but the GC will collect it eventually, beside the reference counters being fooled because the cycle. Are you using a tool to find cycles? I am committing your patch upstream and I need to understand the rationale :). Thanks!. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue7808 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue7808] test_bsddb3 leaks references
Florent Xicluna florent.xicl...@gmail.com added the comment: The tool is called regrtest: ~ $ ./python -m test.regrtest -R 2:3: -uall test_bsddb3 Some devs and some buildbots hunt refleaks in the test suite. Even if the test-related refleaks are not important, they may hide real refleaks in the source code. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue7808 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue7808] test_bsddb3 leaks references
Ezio Melotti ezio.melo...@gmail.com added the comment: You need a debug build of Python to use -R: ./configure --with-pydebug make See also: http://www.python.org/dev/faq/#how-do-i-create-a-debug-build-of-python -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue7808 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue7808] test_bsddb3 leaks references
Florent Xicluna florent.xicl...@gmail.com added the comment: I confirm the leaks in the C code. How do you find them? I've done it manually, disabling some tests, and running regrtest -R repeatedly until I isolate the function which is responsible. Then I studied the source code, looking for the missing DECREFs. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue7808 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue7808] test_bsddb3 leaks references
Jesús Cea Avión j...@jcea.es added the comment: I have spend a few hours trying to understand the issue deeply, and I have an easier to understand version. It is bigger, but explain the issue good enough to use in a production program. Please, Florent, review. It pass the leak test. I rather prefer this patch because the weak references were sort of magic, and this new code actually shows what you should use in production. If you think the patch is OK, it will be integrated in pybsddb 4.8.4 and then backported for python 2.7. I also solved an undesired coupling between Replication Manager and Base Replication testsuites. -- Added file: http://bugs.python.org/file16537/issue7808_bsddb3_refleak_v2TOv3.diff ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue7808 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue7808] test_bsddb3 leaks references
Jesús Cea Avión j...@jcea.es added the comment: Florent, Could you explain the changes to the unittest?. I don't understand them. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue7808 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue7808] test_bsddb3 leaks references
Florent Xicluna florent.xicl...@gmail.com added the comment: Could you explain the changes to the unittest? The reference to self in the hooks were preventing the GC of the test case, as far as I understand, because it creates a cycle. When using weak references, there's no more dead cycles. It is my own explanation, maybe it's not exactly what happens. For the sys.traceback, I could not explain it better than the FAQ: http://docs.python.org/faq/design.html#how-does-python-manage-memory I may add a small comment in test_replication to explain the usage of weakref. -- ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue7808 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue7808] test_bsddb3 leaks references
Changes by Florent Xicluna la...@yahoo.fr: Removed file: http://bugs.python.org/file16039/issue7808_bsddb3_refleak.diff ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue7808 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue7808] test_bsddb3 leaks references
Florent Xicluna la...@yahoo.fr added the comment: Patch updated for latest trunk. -- Added file: http://bugs.python.org/file16183/issue7808_bsddb3_refleak_v2.diff ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue7808 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue7808] test_bsddb3 leaks references
Changes by Ezio Melotti ezio.melo...@gmail.com: -- nosy: +ezio.melotti ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue7808 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue7808] test_bsddb3 leaks references
Changes by Florent Xicluna la...@yahoo.fr: -- nosy: +pitrou ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue7808 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue7808] test_bsddb3 leaks references
Changes by Florent Xicluna la...@yahoo.fr: -- type: performance - resource usage ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue7808 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue7808] test_bsddb3 leaks references
New submission from Florent Xicluna la...@yahoo.fr: Patch proposed to fix the refleaks. -- keywords: +patch stage: - patch review Added file: http://bugs.python.org/file16039/issue7808_bsddb3_refleak.diff ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue7808 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue7808] test_bsddb3 leaks references
Changes by Florent Xicluna la...@yahoo.fr: -- components: Extension Modules nosy: flox priority: normal severity: normal status: open title: test_bsddb3 leaks references type: performance versions: Python 2.6, Python 2.7 ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue7808 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue7808] test_bsddb3 leaks references
Changes by Florent Xicluna la...@yahoo.fr: -- nosy: +jcea ___ Python tracker rep...@bugs.python.org http://bugs.python.org/issue7808 ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com