Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork33.3k
gh-124872: Replace enter/exit events with "switched"#125532
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
Uh oh!
There was an error while loading.Please reload this page.
Conversation
With that PR, admin@Admins-MacBook-Air~/p/cpython (revert-of-revert)> ./python.exe-mtest-R3:3test_capiUsingrandomseed:9920954540:00:00loadavg:26.10Run1testsequentiallyinasingleprocess0:00:00loadavg:26.10 [1/1]test_capibeginning6repetitions.Showingnumberofleaks (.for0orless,Xfor10ormore)123:456XX. ...test_capipassedin43.3sec==Testsresult:SUCCESS==1testOK.Totalduration:43.4secTotaltests:run=985skipped=67Totaltestfiles:run=1/1Result:SUCCESS |
I suggest to wait after Python 3.14.0 alpha1 release to retry this change. |
Why? We can debug and fix the ref leak. @rhansen Please build CPython with |
vstinner commentedOct 15, 2024 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
me:
It's just that there aremany broken buildbots, I think that this change can wait for 3.14.0a2. |
FYI, I ran the test suite in hunt refleaks mode locally and it succeeded: ==Testsresult:SUCCESS==25testsskipped:test.test_asyncio.test_windows_eventstest.test_asyncio.test_windows_utilstest.test_gdb.test_backtracetest.test_gdb.test_cfunctiontest.test_gdb.test_cfunction_fulltest.test_gdb.test_misctest.test_gdb.test_pretty_printtest.test_multiprocessing_fork.test_managertest.test_multiprocessing_fork.test_misctest.test_multiprocessing_fork.test_processestest.test_multiprocessing_fork.test_threadstest_androidtest_dbm_gnutest_devpolltest_epolltest_free_threadingtest_launchertest_msvcrttest_perf_profilertest_perfmapstest_startfiletest_winapitest_winconsoleiotest_winregtest_wmi11testsskipped (resourcedenied):test_cursestest_peg_generatortest_pyrepltest_smtpnettest_socketservertest_tkintertest_ttktest_urllib2nettest_urllibnettest_winsoundtest_zipfile64442testsOK.Totalduration:20min5secTotaltests:run=44,347skipped=2,182Totaltestfiles:run=467/478skipped=25resource_denied=11Result:SUCCESS |
@Eclips4 thanks for fixing the leak!
I sympathize, really sorry about breaking them and causing pain :/ Can we try landing this PR since it appears it should solve the issue? I'm afraid if we wait on this for a month to get it merged it will go stale and we just forget. I'd try again and if it fails we wait? If however you really don't want to do it, then fine. |
Since we're about to release a1 tonight, I'd wait with landing this until right after a1. We won't forget about it. |
Actually,@hugovk should make the call. |
Yeah, same call, thanks :) |
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.
Apologies for the breakage, and thank you for debugging!
Is a blurb required now that there's an API change between v3.14.0a1 and v3.14.0a2?
Also, would you mind fixing up the commit message, authorship info, etc. on the first commit:
git -c sequence.editor='sed -i -e "1s/^pick/edit/"' rebase -i main&&git commit --amend -C 843d28f59d2&&git rebase --continue
Uh oh!
There was an error while loading.Please reload this page.
Oh I was reading the schedule wrong. I didn't realize Victor wants to delay it just one day, essentially, I thought we were talking one month to merge this. Absolutely can wait a few days. |
Thanks, a1 is now out, merge whenever you're ready. |
Sorry about that! I definitely will do it. |
…4776)Users want to know when the current context switches to a differentcontext object. Right now this happens when and only when a contextis entered or exited, so the enter and exit events are synonymous with"switched". However, if the changes proposed forpythongh-99633 areimplemented, the current context will also switch for reasons otherthan context enter or exit. Since users actually care about contextswitches and not enter or exit, replace the enter and exit events witha single switched event.The former exit event was emitted just before exiting the context.The new switched event is emitted after the context is exited to matchthe semantics users expect of an event with a past-tense name. Ifusers need the ability to clean up before the switch takes effect,another event type can be added in the future. It is not added herebecause YAGNI.I skipped 0 in the enum as a matter of practice. Skipping 0 makes iteasier to troubleshoot when code forgets to set zeroed memory, and italigns with best practices for other tools (e.g.,https://protobuf.dev/programming-guides/dos-donts/#unspecified-enum).
Co-authored-by: Victor Stinner <vstinner@python.org>
Co-authored-by: Richard Hansen <rhansen@rhansen.org>
Eclips4 commentedOct 16, 2024 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
@rhansen it seems I have done it. If you agree, I will merge it. (I'm actually do not understand why for |
GitHub is correct when saying:
|
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.
LGTM
Should this get tested with the refleak buildbots? |
I don't think so. I tested test_capi manually, and@Eclips4ran the whole test suite with |
bee112a intopython:mainUh oh!
There was an error while loading.Please reload this page.
…5532)Users want to know when the current context switches to a differentcontext object. Right now this happens when and only when a contextis entered or exited, so the enter and exit events are synonymous with"switched". However, if the changes proposed forpythongh-99633 areimplemented, the current context will also switch for reasons otherthan context enter or exit. Since users actually care about contextswitches and not enter or exit, replace the enter and exit events witha single switched event.The former exit event was emitted just before exiting the context.The new switched event is emitted after the context is exited to matchthe semantics users expect of an event with a past-tense name. Ifusers need the ability to clean up before the switch takes effect,another event type can be added in the future. It is not added herebecause YAGNI.I skipped 0 in the enum as a matter of practice. Skipping 0 makes iteasier to troubleshoot when code forgets to set zeroed memory, and italigns with best practices for other tools (e.g.,https://protobuf.dev/programming-guides/dos-donts/#unspecified-enum).Co-authored-by: Richard Hansen <rhansen@rhansen.org>Co-authored-by: Victor Stinner <vstinner@python.org>
Uh oh!
There was an error while loading.Please reload this page.
test_capileaks references #125512📚 Documentation preview 📚:https://cpython-previews--125532.org.readthedocs.build/