GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — TypeAliasType can leak memory if name is a str subclass · Issue #140000 · python/cpython Closed Labels interpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)topic-typingtype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error DescriptionBug reportBug description:TypeAliasType's traverse implementation does not visit its name. This means that we can leak memory if name is passed an instance of a mutable str subclass. from typing import TypeAliasType import weakref import gc class S(str): pass def still_alive(ref): obj = ref() if not isinstance(obj, S): return False T = obj.T if not isinstance(T, TypeAliasType): return False return T name = S("name") T = TypeAliasType(name, int) name.T = T ref = weakref.ref(name) assert still_alive(ref) del name del T gc.collect() gc.collect() assert still_alive(ref) del ref().T assert not still_alive(ref) CPython versions tested on:CPython main branch Operating systems tested on:macOS Linked PRs
Activity
MetadataMetadataAssigneesLabelsinterpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)topic-typingtype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error ProjectsMilestoneRelationshipsDevelopmentIssue actions |
| You are visitor 01402503 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |