René's URL Explorer Experiment


Title: [3.15] gh-159963: Don't hold parent package import locks while a submodule executes (GH-159965) by miss-islington · Pull Request #160630 · python/cpython · GitHub

Open Graph Title: [3.15] gh-159963: Don't hold parent package import locks while a submodule executes (GH-159965) by miss-islington · Pull Request #160630 · python/cpython

X Title: [3.15] gh-159963: Don't hold parent package import locks while a submodule executes (GH-159965) by miss-islington · Pull Request #160630 · python/cpython

Description: The Python programming language. Contribute to python/cpython development by creating an account on GitHub.

Open Graph Description: Since gh-83065 (3.15.0), the first import of pkg.mod kept pkg's module lock until pkg/mod.py had finished executing. Threads that needed only the finished pkg stayed blocked for that long, and...

X Description: Since gh-83065 (3.15.0), the first import of pkg.mod kept pkg's module lock until pkg/mod.py had finished executing. Threads that needed only the finished pkg stayed blocked for that long,...

Mail addresses
68491+gpshead@users.noreply.github.com

Opengraph URL: https://github.com/python/cpython/pull/160630

X: @github

direct link

Domain: github.com

react-profiling0
react-import-mapreact,react-dom,react-dom/client,react-dom/profiling,react-is,react-reconciler,react/compiler-runtime,react/jsx-dev-runtime,react/jsx-runtime,scheduler@d5750093facf
route-pattern/_view_fragments/voltron/pull_requests/show/:user_id/:repository/:id/pull_request_layout(.:format)
route-controllervoltron_pull_requests_fragments
route-actionpull_request_layout
fetch-noncev2:b9f2c9b9-f766-7294-2c27-7e22ef2b793b
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idC536:1CAA92:5F51AC:7B9C8E:6AED2A80
html-safe-nonce3bcfb128a16c123480fef5d5a1988d92be8961d5290d23c320f71b9d89a69480
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJDNTM2OjFDQUE5Mjo1RjUxQUM6N0I5QzhFOjZBRUQyQTgwIiwidmlzaXRvcl9pZCI6IjI1MjkxMjUwNzIwOTc4NDc5MzYiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ==
visitor-hmacc27b34750203a32048b8286a07e8537e6b6c57c7bc18f333e7c8e10d2ab48dfe
hovercard-subject-tagpull_request:5000329058
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///voltron/pull_requests_fragments/pull_request_layout
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/_view_fragments/voltron/pull_requests/show/python/cpython/160630/pull_request_layout
twitter:imagehttps://opengraph.githubassets.com/2c446cf4a4c1a71c60be920629a15cb8ad357a3c400f0d71b6a8de44436ac136/python/cpython/pull/160630
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/2c446cf4a4c1a71c60be920629a15cb8ad357a3c400f0d71b6a8de44436ac136/python/cpython/pull/160630
og:image:altSince gh-83065 (3.15.0), the first import of pkg.mod kept pkg's module lock until pkg/mod.py had finished executing. Threads that needed only the finished pkg stayed blocked for that long, and...
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
og:author:usernamemiss-islington
hostnamegithub.com
expected-hostnamegithub.com
None9d95365dda0576efe9b71f45807595e396bd0ca9286fba5367a05048e6ddf8f2
turbo-cache-controlno-cache
go-importgithub.com/python/cpython git https://github.com/python/cpython.git
octolytics-dimension-user_id1525981
octolytics-dimension-user_loginpython
octolytics-dimension-repository_id81598961
octolytics-dimension-repository_nwopython/cpython
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id81598961
octolytics-dimension-repository_network_root_nwopython/cpython
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release98b41fa4b5635ceb45a4c54320fced73817ff290
ui-targetfull
theme-color#1e2327
color-schemelight dark
react-app-namepull-requests

Links:

Skip to contenthttps://github.com/python/cpython/pull/160630#start-of-content
https://github.com/
Sign inhttps://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fpull%2F160630
GitHubRepository hosting, code review, and collaborationhttps://github.com/platform
CopilotAI coding agent for tasks, projects, and automated workhttps://github.com/features/copilot
ActionsCI/CD and automationhttps://github.com/features/actions
Code QualityQuality analysis, fixes, and enforcementhttps://github.com/features/code-quality
CodespacesCloud development environmentshttps://github.com/features/codespaces
Code SecurityVulnerability detection and remediationhttps://github.com/security/advanced-security/code-security
Secret ProtectionSecret scanning and leak preventionhttps://github.com/security/advanced-security/secret-protection
All Featureshttps://github.com/features
Documentationhttps://docs.github.com/en
Traininghttps://learn.github.com/skills
Certificationshttps://learn.github.com/credentials
Build with Copilothttps://github.com/features/ai
Customize Copilothttps://docs.github.com/en/copilot/how-tos/copilot-on-github/customize-copilot/customize-copilot-overview
Integrationshttps://github.com/marketplace
Trending reposhttps://github.com/trending
GitHub Sponsorshttps://github.com/open-source/sponsors
Developer articleshttps://github.com/resources/articles
ChangelogYour source for the latest features, improvements, and fixes across GitHub products, all in one place.https://github.blog/changelog/
Enterpriseshttps://github.com/enterprise
Teamhttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
See all industrieshttps://github.com/solutions/industry
Why GitHubhttps://github.com/why-github
Customer Storieshttps://github.com/customer-stories
Business insightshttps://github.com/solutions/executive-insights
Trust Centerhttps://github.com/trust-center
GitHub Advanced SecurityEnterprise-grade code securityhttps://github.com/security/advanced-security
Copilot for businessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Documentationhttps://docs.github.com/en
Resource centerhttps://github.com/resources
Bloghttps://github.blog/
Events & webinarshttps://github.com/resources/events
Community Forumhttps://github.com/orgs/community/discussions
Customer Storieshttps://github.com/customer-stories
Integrationshttps://github.com/marketplace
Customer supporthttps://help.github.com/
Traininghttps://learn.github.com/skills
GitHub Statushttps://www.githubstatus.com/
Abouthttps://github.com/about
Partnershttps://github.com/partners
Changeloghttps://github.blog/changelog/
GitHub UniverseThe event for developers, by developers — talks, workshops, and what’s next for GitHub.https://githubuniverse.com/
Pricinghttps://github.com/pricing
Sign inhttps://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fpull%2F160630
Sign uphttps://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fvoltron%2Fpull_requests_fragments%2Fpull_request_layout&source=header-repo&source_repo=python%2Fcpython
Reloadhttps://github.com/python/cpython/pull/160630
Reloadhttps://github.com/python/cpython/pull/160630
Reloadhttps://github.com/python/cpython/pull/160630
pythonhttps://github.com/python
cpythonhttps://github.com/python/cpython
Codehttps://github.com/python/cpython
Issues5k+ (5k+)https://github.com/python/cpython/issues
Pull requests2.3k (2.3k)https://github.com/python/cpython/pulls
Actionshttps://github.com/python/cpython/actions
Projectshttps://github.com/python/cpython/projects
Security and qualityhttps://github.com/python/cpython/security
Insightshttps://github.com/python/cpython/pulse
https://github.com/python/cpython
gpsheadhttps://github.com/gpshead
python:3.15https://github.com/python/cpython/tree/3.15
miss-islington:backport-7159b15-3.15https://github.com/miss-islington/cpython/tree/backport-7159b15-3.15
Conversationhttps://github.com/python/cpython/pull/160630
Commits2 (2)https://github.com/python/cpython/pull/160630/commits
Checkshttps://github.com/python/cpython/pull/160630/checks
Files changedhttps://github.com/python/cpython/pull/160630/files
[3.15] gh-159963: Don't hold parent package import locks while a submodule executes (GH-159965)https://github.com/python/cpython/pull/160630#top
gpsheadhttps://github.com/gpshead
python:3.15https://github.com/python/cpython/tree/3.15
miss-islington:backport-7159b15-3.15https://github.com/miss-islington/cpython/tree/backport-7159b15-3.15
https://github.com/miss-islington
miss-islingtonhttps://github.com/miss-islington
Oct 25, 2026https://github.com/python/cpython/pull/160630#issue-6019045931
Please reload this pagehttps://github.com/python/cpython/pull/160630
gh-83065https://github.com/python/cpython/issues/83065
gh-83065https://github.com/python/cpython/issues/83065
7159b15https://github.com/python/cpython/commit/7159b152a0b6205941ad7f14ced3f7d9ec20f68b
3.15 regression: concurrent first imports can fail or hang without any import cycle #159963https://github.com/python/cpython/issues/159963
#159963https://github.com/python/cpython/issues/159963
Please reload this pagehttps://github.com/python/cpython/pull/160630
https://github.com/gpshead
https://github.com/miss-islington
pythongh-159963https://github.com/python/cpython/issues/159963
: Don't hold parent package import locks while a submo…https://github.com/python/cpython/pull/160630/commits/ec42c281a8aa4e7e450e5146266ab9cc482e452e
ec42c28https://github.com/python/cpython/pull/160630/commits/ec42c281a8aa4e7e450e5146266ab9cc482e452e
pythonGH-159965https://github.com/python/cpython/pull/159965
pythongh-83065https://github.com/python/cpython/issues/83065
pythongh-83065https://github.com/python/cpython/issues/83065
7159b15https://github.com/miss-islington/cpython/commit/7159b152a0b6205941ad7f14ced3f7d9ec20f68b
https://github.com/miss-islington
miss-islingtonhttps://github.com/miss-islington
FFY00https://github.com/FFY00
brettcannonhttps://github.com/brettcannon
ericsnowcurrentlyhttps://github.com/ericsnowcurrently
ncoghlanhttps://github.com/ncoghlan
warsawhttps://github.com/warsaw
code ownershttps://github.com/python/cpython/blob/1196c345377181de5510c5adece5d1ab7e010973/.github/CODEOWNERS#L261
October 25, 2026 00:06https://github.com/python/cpython/pull/160630#event-34156364231
https://github.com/apps/bedevere-app
bedevere-apphttps://github.com/apps/bedevere-app
awaiting review https://github.com/python/cpython/issues?q=state%3Aopen%20label%3A%22awaiting%20review%22
Oct 25, 2026https://github.com/python/cpython/pull/160630#event-34156366545
3.15 regression: concurrent first imports can fail or hang without any import cycle #159963 https://github.com/python/cpython/issues/159963
gh-159963: Don't hold parent package import locks while a submodule executes #159965 https://github.com/python/cpython/pull/159965
https://github.com/apps/bedevere-app
bedevere-apphttps://github.com/apps/bedevere-app
sprint https://github.com/python/cpython/issues?q=state%3Aopen%20label%3Asprint
Oct 25, 2026https://github.com/python/cpython/pull/160630#event-34156370975
https://github.com/apps/github-project-automation
github-project-automationhttps://github.com/apps/github-project-automation
Sprinthttps://github.com/orgs/python/projects/32
Oct 25, 2026https://github.com/python/cpython/pull/160630#event-34156372792
https://github.com/apps/github-project-automation
github-project-automationhttps://github.com/apps/github-project-automation
Sprinthttps://github.com/orgs/python/projects/32
Oct 25, 2026https://github.com/python/cpython/pull/160630#event-34156373573
https://github.com/gpshead
gpsheadhttps://github.com/gpshead
Oct 25, 2026https://github.com/python/cpython/pull/160630#event-34156390791
https://github.com/gpshead
gpsheadhttps://github.com/gpshead
October 25, 2026 00:07https://github.com/python/cpython/pull/160630#event-34156400582
https://github.com/gpshead
Add a What's New in 3.15.2 entryhttps://github.com/python/cpython/pull/160630/commits/533de4b326804b413ee177483ac9b21018ecadc4
533de4bhttps://github.com/python/cpython/pull/160630/commits/533de4b326804b413ee177483ac9b21018ecadc4
https://github.com/gpshead
gpsheadhttps://github.com/gpshead
AA-Turnerhttps://github.com/AA-Turner
code ownerhttps://github.com/python/cpython/blob/1196c345377181de5510c5adece5d1ab7e010973/.github/CODEOWNERS#L116
October 25, 2026 00:27https://github.com/python/cpython/pull/160630#event-34157064711
https://github.com/gpshead
gpsheadhttps://github.com/gpshead
sprint https://github.com/python/cpython/issues?q=state%3Aopen%20label%3Asprint
Oct 25, 2026https://github.com/python/cpython/pull/160630#event-34157094940
https://github.com/apps/read-the-docs-community
read-the-docs-communityhttps://github.com/apps/read-the-docs-community
Oct 25, 2026https://github.com/python/cpython/pull/160630#issuecomment-6391447841
cpython-previewshttps://app.readthedocs.org/projects/cpython-previews/
#35385520https://app.readthedocs.org/projects/cpython-previews/builds/35385520/
533de4bhttps://github.com/python/cpython/commit/533de4b326804b413ee177483ac9b21018ecadc4
mainhttps://cpython-previews.readthedocs.io/en/main/
7159b15https://github.com/python/cpython/commit/7159b152a0b6205941ad7f14ced3f7d9ec20f68b
  🔍 Preview build   https://cpython-previews--160630.org.readthedocs.build/en/160630/
library/asyncio-policy.htmlhttps://cpython-previews--160630.org.readthedocs.build/en/160630/library/asyncio-policy.html
index.htmlhttps://cpython-previews--160630.org.readthedocs.build/en/160630/index.html
license.htmlhttps://cpython-previews--160630.org.readthedocs.build/en/160630/license.html
py-modindex.htmlhttps://cpython-previews--160630.org.readthedocs.build/en/160630/py-modindex.html
builtins/exceptions.htmlhttps://cpython-previews--160630.org.readthedocs.build/en/160630/builtins/exceptions.html
builtins/functions.htmlhttps://cpython-previews--160630.org.readthedocs.build/en/160630/builtins/functions.html
builtins/stdtypes.htmlhttps://cpython-previews--160630.org.readthedocs.build/en/160630/builtins/stdtypes.html
c-api/bytes.htmlhttps://cpython-previews--160630.org.readthedocs.build/en/160630/c-api/bytes.html
c-api/capsule.htmlhttps://cpython-previews--160630.org.readthedocs.build/en/160630/c-api/capsule.html
c-api/complex.htmlhttps://cpython-previews--160630.org.readthedocs.build/en/160630/c-api/complex.html
c-api/conversion.htmlhttps://cpython-previews--160630.org.readthedocs.build/en/160630/c-api/conversion.html
deprecations/pending-removal-in-3.21.htmlhttps://cpython-previews--160630.org.readthedocs.build/en/160630/deprecations/pending-removal-in-3.21.html
library/tkinter.dialogs.htmlhttps://cpython-previews--160630.org.readthedocs.build/en/160630/library/tkinter.dialogs.html
library/tkinter.fontchooser.htmlhttps://cpython-previews--160630.org.readthedocs.build/en/160630/library/tkinter.fontchooser.html
library/tkinter.systray.htmlhttps://cpython-previews--160630.org.readthedocs.build/en/160630/library/tkinter.systray.html
whatsnew/3.16.htmlhttps://cpython-previews--160630.org.readthedocs.build/en/160630/whatsnew/3.16.html
Please reload this pagehttps://github.com/python/cpython/pull/160630
https://github.com/gpshead
gpsheadhttps://github.com/gpshead
3255d5dhttps://github.com/python/cpython/commit/3255d5d56583144edc00162b999dfe2e70910a87
Oct 25, 2026https://github.com/python/cpython/pull/160630#event-34158061136
Please reload this pagehttps://github.com/python/cpython/pull/160630
https://github.com/apps/github-project-automation
github-project-automationhttps://github.com/apps/github-project-automation
Sprinthttps://github.com/orgs/python/projects/32
Oct 25, 2026https://github.com/python/cpython/pull/160630#event-34158063089
https://github.com/apps/bedevere-app
bedevere-apphttps://github.com/apps/bedevere-app
awaiting review https://github.com/python/cpython/issues?q=state%3Aopen%20label%3A%22awaiting%20review%22
Oct 25, 2026https://github.com/python/cpython/pull/160630#event-34158063104
https://github.com/miss-islington
miss-islingtonhttps://github.com/miss-islington
October 25, 2026 00:56https://github.com/python/cpython/pull/160630#event-34158063759
https://github.co/hiddenchars
https://github.com/python/cpython/pull/{{ revealButtonHref }}
Sign up for freehttps://github.com/join?source=comment-repo
Sign in to commenthttps://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fpull%2F160630
https://github.com/brettcannon
brettcannon https://github.com/brettcannon
https://github.com/ericsnowcurrently
ericsnowcurrently https://github.com/ericsnowcurrently
https://github.com/ncoghlan
ncoghlan https://github.com/ncoghlan
https://github.com/warsaw
warsaw https://github.com/warsaw
https://github.com/FFY00
FFY00 https://github.com/FFY00
https://github.com/AA-Turner
AA-Turner https://github.com/AA-Turner
Please reload this pagehttps://github.com/python/cpython/pull/160630
https://github.com/gpshead
gpshead https://github.com/gpshead
Sprint https://github.com/orgs/python/projects/32
Please reload this pagehttps://github.com/python/cpython/pull/160630
https://github.com/miss-islington
https://github.com/gpshead
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.