Uh oh!
There was an error while loading. Please reload this page.
bpo-40334: Rewrite test_c_parser to avoid memory leaks - #19694
Conversation
vstinner
commented
Apr 23, 2020
Why do you remove tests? It may be worth it to explain it in the commit message. |
gvanrossum
left a comment
There was a problem hiding this comment.
I will land once tests pass.
5731030 to
5f04be3Comparelysnikolaou
commented
Apr 23, 2020
Commit message updated. Thanks for the advice. |
gvanrossum
commented
Apr 23, 2020
(Hmm, there's a plan to skip the tests rather than delete the file.) |
lysnikolaou
commented
Apr 23, 2020
Or maybe even fix them.. |
Previously every test was building an extension module and loading it into sys.modules. The tearDown function was thus not able to clean up correctly, resulting in memory leaks. With this PR every test function now builds the extension module and runs the actual test code in a new process (using assert_python_ok), so that sys.modules stays intact and no memory gets leaked.
5f04be3 to
4c02d3bComparelysnikolaou
commented
Apr 24, 2020
PR updated! It now fixes the tests that were causing the memory leaks, instead of removing them. (I didn't open a new one, because we needed to preserve the PR number) |
Uh oh!
There was an error while loading. Please reload this page.
bedevere-bot
commented
Apr 24, 2020
🤖 New build scheduled with the buildbot fleet by @pablogsal for commit fcd1ada 🤖 If you want to schedule another build, you need to add the ":hammer: test-with-buildbots" label again. |
pablogsal
commented
Apr 24, 2020
Checking with the buildbots to confirm that there were no more leaks. |
lysnikolaou
commented
Apr 24, 2020
On RHEL 7 it's only |
pablogsal
commented
Apr 24, 2020
Yup, all the buildbot failures are unrelated to this PR (and the refleaks ones do not leak anymore because of this) 🎉 |
* 'master' of github.com:python/cpython: (2949 commits) Add files in tests/test_peg_generator to the install target lists (pythonGH-19723) bpo-40398: Fix typing.get_args() for special generic aliases. (pythonGH-19720) bpo-40348: Fix typos in the programming FAQ (pythonGH-19729) bpo-38387: Formally document PyDoc_STRVAR and PyDoc_STR macros (pythonGH-16607) bpo-40401: Remove duplicate pyhash.h include from pythoncore.vcxproj (pythonGH-19725) bpo-40387: Improve queue join() example. (pythonGH-19724) bpo-40396: Support GenericAlias in the typing functions. (pythonGH-19718) Fix typo in Lib/typing.py (pythonGH-19717) Fix typo in object.__format__ docs (pythonGH-19504) bpo-40275: Avoid importing logging in test.support (pythonGH-19601) bpo-40275: Avoid importing socket in test.support (pythonGH-19603) bpo-40275: Avoid importing asyncio in test.support (pythonGH-19600) bpo-40279: Add some error-handling to the module initialisation docs example (pythonGH-19705) closes bpo-40385: Remove Tools/scripts/checkpyc.py (pythonGH-19709) bpo-40334: Add What's New sections for PEP 617 and PEP 585 (pythonGH-19704) bpo-40340: Separate examples more clearly in the programming FAQ (pythonGH-19688) bpo-40360: Deprecate lib2to3 module in light of PEP 617 (pythonGH-19663) bpo-40334: Rewrite test_c_parser to avoid memory leaks (pythonGH-19694) bpo-38061: subprocess uses closefrom() on FreeBSD (pythonGH-19697) bpo-38061: os.closerange() uses closefrom() on FreeBSD (pythonGH-19696) ...
Previously every test was building an extension module and
loading it into sys.modules. The tearDown function was thus
not able to clean up correctly, resulting in memory leaks.
With this PR every test function now builds the extension
module and runs the actual test code in a new process
(using assert_python_ok), so that sys.modules stays intact
and no memory gets leaked.
https://bugs.python.org/issue40334