FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

bpo-40334: Rewrite test_c_parser to avoid memory leaks by lysnikolaou · Pull Request #19694 · python/cpython · GitHub

Repository navigation

bpo-40334: Rewrite test_c_parser to avoid memory leaks - #19694

Merged
pablogsal merged 3 commits into
python:masterfrom
lysnikolaou:remove-test-cparser
Apr 24, 2020
Merged

pablogsal merged 3 commits into
python:masterfrom
lysnikolaou:remove-test-cparser

Conversation

lysnikolaou commented Apr 23, 2020 •
edited
Loading

Copy link
Copy Markdown
Member

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

Copy link
Copy Markdown
Member

Why do you remove tests? It may be worth it to explain it in the commit message.

gvanrossum left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason Spam Abuse Off Topic Outdated Duplicate Resolved Low Quality

I will land once tests pass.

Copy link
Copy Markdown
Member Author

Why do you remove tests? It may be worth it to explain it in the commit message.

Commit message updated. Thanks for the advice.

Copy link
Copy Markdown
Member

(Hmm, there's a plan to skip the tests rather than delete the file.)

Copy link
Copy Markdown
Member Author

(Hmm, there's a plan to skip the tests rather than delete the file.)

Or maybe even fix them..

lysnikolaou marked this pull request as draft April 23, 2020 23:45
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.
lysnikolaou force-pushed the remove-test-cparser branch from 5f04be3 to 4c02d3b Compare April 24, 2020 10:45
lysnikolaou changed the title bpo-40334: Remove test_c_parser from test_peg_generator bpo-40334: Rewrite test_c_parser to avoid memory leaks Apr 24, 2020
lysnikolaou marked this pull request as ready for review April 24, 2020 10:47

Copy link
Copy Markdown
Member Author

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)

pablogsal added the 🔨 test-with-buildbots Test PR w/ buildbots; report in status section label Apr 24, 2020

Copy link
Copy Markdown

🤖 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.

bedevere-bot removed the 🔨 test-with-buildbots Test PR w/ buildbots; report in status section label Apr 24, 2020

Copy link
Copy Markdown
Member

Checking with the buildbots to confirm that there were no more leaks.

Copy link
Copy Markdown
Member Author

On RHEL 7 it's only test_threading that leaks now.

Copy link
Copy Markdown
Member

On RHEL 7 it's only test_threading that leaks now.

Yup, all the buildbot failures are unrelated to this PR (and the refleaks ones do not leak anymore because of this) 🎉

pablogsal merged commit 24ffe70 into python:master Apr 24, 2020
lysnikolaou deleted the remove-test-cparser branch April 24, 2020 13:52
CuriousLearner added a commit to CuriousLearner/cpython that referenced this pull request Apr 27, 2020
* '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)
  ...
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode characters
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

skip news tests Tests in the Lib/test dir

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants


Back | FazBrowse Home | New Git URL