Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

gh-104415: Fix refleak tests fortyping.ByteString deprecation#104416

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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged
JelleZijlstra merged 2 commits intopython:mainfromsobolevn:issue-104415
May 12, 2023

Conversation

sobolevn
Copy link
Member

@sobolevnsobolevn commentedMay 12, 2023
edited by bedevere-bot
Loading

@bedevere-botbedevere-bot added the testsTests in the Lib/test dir labelMay 12, 2023
@sobolevnsobolevn added skip news 🔨 test-with-refleak-buildbotsTest PR w/ refleak buildbots; report in status section labelsMay 12, 2023
@bedevere-bot
Copy link

🤖 New build scheduled with the buildbot fleet by@sobolevn for commite8f6c3d 🤖

If you want to schedule another build, you need to add the🔨 test-with-refleak-buildbots label again.

@bedevere-botbedevere-bot removed the 🔨 test-with-refleak-buildbotsTest PR w/ refleak buildbots; report in status section labelMay 12, 2023
Copy link
Member

@AlexWaygoodAlexWaygood left a comment
edited
Loading

Choose a reason for hiding this comment

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

Looks good; I can reproduce the refleak locally, and confirmed this fixes it. So I'm happy to merge this to get the buildbots green again. Thanks!

I'm slightly confused about why this is necessary, though: I thought the warnings registry was cleared in theclear_caches function here:

defclear_caches():
# Clear the warnings registry, so they can be displayed again
formodinsys.modules.values():
ifhasattr(mod,'__warningregistry__'):
delmod.__warningregistry__

And thatclear_caches was called after each run when using the-R option:

# Clear caches
clear_caches()

Copy link
Member

@AlexWaygoodAlexWaygood left a comment
edited
Loading

Choose a reason for hiding this comment

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

The root cause is that we cacheByteString inglobals() here:

cpython/Lib/typing.py

Lines 3584 to 3586 inb2c1b4d

ByteString=globals()["ByteString"]=_DeprecatedGenericAlias(
collections.abc.ByteString,0,removal_version=(3,14)
)

Butlibregrtest.utils.clear_caches doesn't know about that cache. It only knows to perform the cleanup functions we have intyping._cleanups:

try:
typing=sys.modules['typing']
exceptKeyError:
pass
else:
forfintyping._cleanups:
f()

A better fix would be to do this instead:

diff --git a/Lib/typing.py b/Lib/typing.pyindex bf7bd24197..cc38ef9b46 100644--- a/Lib/typing.py+++ b/Lib/typing.py@@ -3586,3 +3586,13 @@ def __getattr__(attr):             )         return ByteString     raise AttributeError(f"module 'typing' has no attribute {attr!r}")+++def _remove_ByteString_from_globals():+    try:+        del globals()["ByteString"]+    except KeyError:+        pass+++_cleanups.append(_remove_ByteString_from_globals)

And not touch anything intest_typing.py.

@bedevere-bot
Copy link

A Python core developer has requested some changes be made to your pull request before we can consider merging it. If you could please address their requests along with any other requests in other reviews from core developers that would be appreciated.

Once you have made the requested changes, please leave a comment on this pull request containing the phraseI have made the requested changes; please review again. I will then notify any core developers who have left a review that you're ready for them to take another look at this pull request.

Copy link
Member

@AlexWaygoodAlexWaygood left a comment

Choose a reason for hiding this comment

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

Thanks!

@AlexWaygood
Copy link
Member

I'll run the refleak buildbots again, just to double check this fixes things (it does on my machine)

@AlexWaygoodAlexWaygood added the 🔨 test-with-refleak-buildbotsTest PR w/ refleak buildbots; report in status section labelMay 12, 2023
@bedevere-bot
Copy link

🤖 New build scheduled with the buildbot fleet by@AlexWaygood for commit023a615 🤖

If you want to schedule another build, you need to add the🔨 test-with-refleak-buildbots label again.

@bedevere-botbedevere-bot removed the 🔨 test-with-refleak-buildbotsTest PR w/ refleak buildbots; report in status section labelMay 12, 2023
@JelleZijlstraJelleZijlstra merged commit5b8cd5a intopython:mainMay 12, 2023
carljm added a commit to carljm/cpython that referenced this pull requestMay 12, 2023
* main:pythongh-91896: Fixup some docs issues following ByteString deprecation (python#104422)pythonGH-104371: check return value of calling `mv.release` (python#104417)pythongh-104415: Fix refleak tests for `typing.ByteString` deprecation (python#104416)pythonGH-86275: Implementation of hypothesis stubs for property-based tests, with zoneinfo tests (python#22863)pythonGH-103082: Filter LINE events in VM, to simplify tool implementation. (pythonGH-104387)pythongh-93649: Split gc- and allocation tests from _testcapimodule.c (pythonGH-104403)pythongh-104389: Add 'unused' keyword to Argument Clinic C converters (python#104390)pythongh-101819: Prepare _io._IOBase for module state (python#104386)pythongh-104413: Fix refleak when super attribute throws AttributeError (python#104414)  Fix refleak in `super_descr_get` (python#104408)pythongh-87526: Remove dead initialization from _zoneinfo parse_abbr() (python#24700)pythongh-91896: Improve visibility of `ByteString` deprecation warnings (python#104294)pythongh-104371: Fix calls to `__release_buffer__` while an exception is active (python#104378)pythongh-104377: fix cell in comprehension that is free in outer scope (python#104394)pythongh-104392: Remove _paramspec_tvars from typing (python#104393)pythongh-104396: uuid.py to skip platform check for emscripten and wasi (pythongh-104397)pythongh-99108: Refresh HACL* from upstream (python#104401)pythongh-104301: Allow leading whitespace in disambiguated pdb statements (python#104342)
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Reviewers

@AlexWaygoodAlexWaygoodAlexWaygood approved these changes

@gvanrossumgvanrossumAwaiting requested review from gvanrossum

@Fidget-SpinnerFidget-SpinnerAwaiting requested review from Fidget-Spinner

@JelleZijlstraJelleZijlstraAwaiting requested review from JelleZijlstraJelleZijlstra is a code owner

Assignees
No one assigned
Labels
skip newstestsTests in the Lib/test dir
Projects
None yet
Milestone
No milestone
Development

Successfully merging this pull request may close these issues.

4 participants
@sobolevn@bedevere-bot@AlexWaygood@JelleZijlstra

[8]ページ先頭

©2009-2025 Movatter.jp