René's URL Explorer Experiment


Title: sys.remote_exec() is unable to find writable memory when libpython got deleted/replaced on disk · Issue #151029 · python/cpython · GitHub

Open Graph Title: sys.remote_exec() is unable to find writable memory when libpython got deleted/replaced on disk · Issue #151029 · python/cpython

X Title: sys.remote_exec() is unable to find writable memory when libpython got deleted/replaced on disk · Issue #151029 · python/cpython

Description: Bug report Bug description: The current happy path sys.remote_exec() looks at a remote PID's /proc//maps, which allows it to find libpython on disk. Reading the libpython shared library file allows sys.remote_exec() to find the .PyR...

Open Graph Description: Bug report Bug description: The current happy path sys.remote_exec() looks at a remote PID's /proc//maps, which allows it to find libpython on disk. Reading the libpython shared library file a...

X Description: Bug report Bug description: The current happy path sys.remote_exec() looks at a remote PID's /proc/<pid>/maps, which allows it to find libpython on disk. Reading the libpython shared libr...

Opengraph URL: https://github.com/python/cpython/issues/151029

X: @github

direct link

Domain: github.com


Hey, it has json ld scripts:
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"sys.remote_exec() is unable to find writable memory when libpython got deleted/replaced on disk","articleBody":"# Bug report\n\n### Bug description:\n\n### The current happy path\n`sys.remote_exec()` looks at a remote PID's `/proc/\u003cpid\u003e/maps`, which allows it to find `libpython` on disk. Reading the `libpython` shared library file allows `sys.remote_exec()` to find the `.PyRuntime` section, which includes the debug offsets that point at the `remote_debugger_support.debugger_script_path[]` location where the debugger script path can be written to. The remote interpreter then finds the remotely injected update and does its thing to execute it.\n\n### The failure mode\nIn the case where `/proc/\u003cpid\u003e/maps` points at a libpython that got deleted from disk or replaced with a new file, this process fails early. CPython normally does not make any guarantees for such a case, but in this particular scenario we should be able to recover.\n\n### Why this is important to fix\nOn Linux in particular, in server environments scheduled package updates will include Python interpreter updates. When this happens, a long-running server process is now undebuggable. `sys.remote_exec()` is supposed to handle this very situation: allowing to debug a process without the need to kill it first.\n\nThe compatibility area between the `sys.remote_exec()` debugger and the debugged remote process is minimal: as long as both are the same minor version of Python (i.e. 3.14.x ←→ 3.14.x), the debug offsets structure will be parseable on both ends. ABI compatibility guarantees that no breaking changes for this use case will occur between bugfix releases within a minor release.\n\n### Suggested fix scope\nSince this is mostly important for centrally managed server scenarios, I suggest we address Linux first here and decide on other platforms after this succeeds.\n\nAs for the approach: even in the case of `/proc/\u003cpid\u003e/maps` pointing at a deleted file, it is also listing the memory location where that file was loaded. We can read the same information from memory then. Of course, file segments/sections are gone at this point, so it's a bit more of an involved process. But this will be a path taken only in the case when the file no longer exists on disk.\n\nAn alternative approach could be to try to dig out the inode of the now-deleted file and read the unlinked file that way. But this requires superuser privileges, so it's out of scope for `sys.remote_exec()`.\n\n### How to test this\nUsing `LD_LIBRARY_PATH=`, we can run a Python interpreter in such a way that it will pick up `libpython` from a copy in a temporary directory. Then the test will delete that copy, recreating our failure mode.\n\n### What about statically built Python?\nThis solution should also work for static builds. Instead of looking at `libpython`, we'd be looking at a deleted executable.\n\n### CPython versions tested on:\n\n3.14\n\n### Operating systems tested on:\n\nLinux\n\n\u003c!-- gh-linked-prs --\u003e\n### Linked PRs\n* gh-151032\n* gh-152443\n* gh-152464\n* gh-152653\n* gh-152665\n* gh-152669\n* gh-152670\n\u003c!-- /gh-linked-prs --\u003e\n","author":{"url":"https://github.com/ambv","@type":"Person","name":"ambv"},"datePublished":"2026-06-06T17:23:38.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":1},"url":"https://github.com/151029/cpython/issues/151029"}

route-pattern/_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format)
route-controllervoltron_issues_fragments
route-actionissue_layout
fetch-noncev2:e728f329-576d-a14f-18d4-5963d879ee69
current-catalog-service-hash81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114
request-id9D40:15E981:4C6512:699F3C:6A51208C
html-safe-nonceb73f23eec233a0105d4f0099411e9e1bf7130e7754d4ff44a212f172e45911c1
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5RDQwOjE1RTk4MTo0QzY1MTI6Njk5RjNDOjZBNTEyMDhDIiwidmlzaXRvcl9pZCI6Ijc0ODc4NDM3MDA3MDc1MDAxNzMiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ==
visitor-hmac21382e6af8ff3941d05defe898a05fb5c9e43ccb59c076af065d7d798f3566bf
hovercard-subject-tagissue:4604464503
github-keyboard-shortcutsrepository,issues,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///voltron/issues_fragments/issue_layout
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/python/cpython/151029/issue_layout
twitter:imagehttps://opengraph.githubassets.com/e9ec57f7809eba0401910dc57fbedc1f211a6507923c5dc0db3859fd6a1cc18a/python/cpython/issues/151029
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/e9ec57f7809eba0401910dc57fbedc1f211a6507923c5dc0db3859fd6a1cc18a/python/cpython/issues/151029
og:image:altBug report Bug description: The current happy path sys.remote_exec() looks at a remote PID's /proc//maps, which allows it to find libpython on disk. Reading the libpython shared library file a...
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
og:author:usernameambv
hostnamegithub.com
expected-hostnamegithub.com
None689b683944b0d7f015d0e776452c970832fa81b82dc15284469b556ecced715b
turbo-cache-controlno-preview
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
release942b51ed3bd5feee3d5e2719f890a5fe286edbbb
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/python/cpython/issues/151029#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fissues%2F151029
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
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
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/open-source/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/open-source/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://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
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fissues%2F151029
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fvoltron%2Fissues_fragments%2Fissue_layout&source=header-repo&source_repo=python%2Fcpython
Reloadhttps://github.com/python/cpython/issues/151029
Reloadhttps://github.com/python/cpython/issues/151029
Reloadhttps://github.com/python/cpython/issues/151029
Please reload this pagehttps://github.com/python/cpython/issues/151029
python https://github.com/python
cpythonhttps://github.com/python/cpython
Please reload this pagehttps://github.com/python/cpython/issues/151029
Notifications https://github.com/login?return_to=%2Fpython%2Fcpython
Fork 35k https://github.com/login?return_to=%2Fpython%2Fcpython
Star 73.7k https://github.com/login?return_to=%2Fpython%2Fcpython
Code https://github.com/python/cpython
Issues 5k+ https://github.com/python/cpython/issues
Pull requests 2.3k https://github.com/python/cpython/pulls
Actions https://github.com/python/cpython/actions
Projects https://github.com/python/cpython/projects
Security and quality 0 https://github.com/python/cpython/security
Insights https://github.com/python/cpython/pulse
Code https://github.com/python/cpython
Issues https://github.com/python/cpython/issues
Pull requests https://github.com/python/cpython/pulls
Actions https://github.com/python/cpython/actions
Projects https://github.com/python/cpython/projects
Security and quality https://github.com/python/cpython/security
Insights https://github.com/python/cpython/pulse
sys.remote_exec() is unable to find writable memory when libpython got deleted/replaced on diskhttps://github.com/python/cpython/issues/151029#top
https://github.com/ambv
https://github.com/pablogsal
interpreter-core(Objects, Python, Grammar, and Parser dirs)https://github.com/python/cpython/issues?q=state%3Aopen%20label%3A%22interpreter-core%22
type-bugAn unexpected behavior, bug, or errorhttps://github.com/python/cpython/issues?q=state%3Aopen%20label%3A%22type-bug%22
https://github.com/ambv
ambvhttps://github.com/ambv
on Jun 6, 2026https://github.com/python/cpython/issues/151029#issue-4604464503
gh-151029: Fix sys.remote_exec() unable to find writable memory when libpython replaced on disk #151032https://github.com/python/cpython/pull/151032
[3.15] gh-151029: Fix sys.remote_exec() unable to find writable memory when libpython replaced on disk (GH-151032) #152443https://github.com/python/cpython/pull/152443
[3.14] gh-151029: Fix sys.remote_exec() unable to find writable memory when libpython replaced on disk (GH-151032) #152464https://github.com/python/cpython/pull/152464
gh-151029: Fix test_remote_exec_deleted_static_executable on static installed builds #152653https://github.com/python/cpython/pull/152653
gh-151029: Fix deleted static executable test #152665https://github.com/python/cpython/pull/152665
[3.14] gh-151029: Fix test_remote_exec_deleted_static_executable on static installed builds (GH-152653) #152669https://github.com/python/cpython/pull/152669
[3.15] gh-151029: Fix test_remote_exec_deleted_static_executable on static installed builds (GH-152653) #152670https://github.com/python/cpython/pull/152670
ambvhttps://github.com/ambv
pablogsalhttps://github.com/pablogsal
interpreter-core(Objects, Python, Grammar, and Parser dirs)https://github.com/python/cpython/issues?q=state%3Aopen%20label%3A%22interpreter-core%22
type-bugAn unexpected behavior, bug, or errorhttps://github.com/python/cpython/issues?q=state%3Aopen%20label%3A%22type-bug%22
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.