-
-
Notifications
You must be signed in to change notification settings - Fork 30.8k
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 our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
gh-104456: Fix ref leak in _ctypes.COMError #104457
Conversation
Eclips4
commented
May 13, 2023
•
edited by bedevere-bot
Loading
edited by bedevere-bot
- Issue: test_ctypes are leaked #104456
Seems that related to #104020 |
🤖 New build scheduled with the buildbot fleet by @AlexWaygood for commit 8dbad09 🤖 If you want to schedule another build, you need to add the 🔨 test-with-refleak-buildbots label again. |
Thanks Alex for the buildbots start. But, no one from buildbots use a windows system. |
!buildbot Windows.*Refleak |
🤖 New build scheduled with the buildbot fleet by @AlexWaygood for commit 8dbad09 🤖 The command will test the builders whose names match following regular expression: The builders matched are: |
!buildbot .*Windows.Refleak. |
🤖 New build scheduled with the buildbot fleet by @AlexWaygood for commit 8dbad09 🤖 The command will test the builders whose names match following regular expression: The builders matched are: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please add a Py_tp_clear
slot and do the work there. You can call that function from dealloc. Also, the traverse function must be updated similarly.
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 phrase |
Also, in dealloc we first untrack from GC, then we clear. |
I have made the requested changes; please review again |
Thanks for making the requested changes! @erlend-aasland: please review the changes made to this pull request. |
I left some more remarks. I'll follow this up tomorrow. |
Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com>
Could you let me know if you've confirmed the error is fixed on Windows? @Eclips4 |
Yeah, refleak are gone: ./python -m test -R 3:3 test_ctypes
Running Debug|x64 interpreter...
0:00:00 Run tests sequentially
0:00:00 [1/1] test_ctypes
beginning 6 repetitions
123456
a=5, b=10, c=15
a=5, b=10, c=15
.a=5, b=10, c=15
a=5, b=10, c=15
.a=5, b=10, c=15
a=5, b=10, c=15
.a=5, b=10, c=15
a=5, b=10, c=15
.a=5, b=10, c=15
a=5, b=10, c=15
.a=5, b=10, c=15
a=5, b=10, c=15
.
test_ctypes passed in 31.2 sec
== Tests result: SUCCESS ==
1 test OK.
Total duration: 31.3 sec
Tests result: SUCCESS Also, thanks for your help! |
Thanks! |
* main: (29 commits) pythongh-101819: Fix _io clinic input for unused base class method stubs (python#104418) pythongh-101819: Isolate `_io` (python#101948) Bump mypy from 1.2.0 to 1.3.0 in /Tools/clinic (python#104501) pythongh-104494: Update certain Tkinter pack/place tests for Tk 8.7 errors (python#104495) pythongh-104050: Run mypy on `clinic.py` in CI (python#104421) pythongh-104490: Consistently define phony make targets (python#104491) pythongh-67056: document that registering/unregistering an atexit func from within an atexit func is undefined (python#104473) pythongh-104487: PYTHON_FOR_REGEN must be minimum Python 3.10 (python#104488) pythongh-101282: move BOLT config after PGO (pythongh-104493) pythongh-104469 Convert _testcapi/float.c to use AC (pythongh-104470) pythongh-104456: Fix ref leak in _ctypes.COMError (python#104457) pythongh-98539: Make _SSLTransportProtocol.abort() safe to call when closed (python#104474) pythongh-104337: Clarify random.gammavariate doc entry (python#104410) Minor improvements to typing docs (python#104465) pythongh-87092: avoid gcc warning on uninitialized struct field in assemble.c (python#104460) pythonGH-71383: IDLE - Document testing subsets of modules (python#104463) pythongh-104454: Fix refleak in AttributeError_reduce (python#104455) pythongh-75710: IDLE - add docstrings and comments to editor module (python#104446) pythongh-91896: Revert some very noisy DeprecationWarnings for `ByteString` (python#104424) Add a mention of PYTHONBREAKPOINT to breakpoint() docs (python#104430) ...
* main: (204 commits) pythongh-101819: Fix _io clinic input for unused base class method stubs (python#104418) pythongh-101819: Isolate `_io` (python#101948) Bump mypy from 1.2.0 to 1.3.0 in /Tools/clinic (python#104501) pythongh-104494: Update certain Tkinter pack/place tests for Tk 8.7 errors (python#104495) pythongh-104050: Run mypy on `clinic.py` in CI (python#104421) pythongh-104490: Consistently define phony make targets (python#104491) pythongh-67056: document that registering/unregistering an atexit func from within an atexit func is undefined (python#104473) pythongh-104487: PYTHON_FOR_REGEN must be minimum Python 3.10 (python#104488) pythongh-101282: move BOLT config after PGO (pythongh-104493) pythongh-104469 Convert _testcapi/float.c to use AC (pythongh-104470) pythongh-104456: Fix ref leak in _ctypes.COMError (python#104457) pythongh-98539: Make _SSLTransportProtocol.abort() safe to call when closed (python#104474) pythongh-104337: Clarify random.gammavariate doc entry (python#104410) Minor improvements to typing docs (python#104465) pythongh-87092: avoid gcc warning on uninitialized struct field in assemble.c (python#104460) pythonGH-71383: IDLE - Document testing subsets of modules (python#104463) pythongh-104454: Fix refleak in AttributeError_reduce (python#104455) pythongh-75710: IDLE - add docstrings and comments to editor module (python#104446) pythongh-91896: Revert some very noisy DeprecationWarnings for `ByteString` (python#104424) Add a mention of PYTHONBREAKPOINT to breakpoint() docs (python#104430) ...