René's URL Explorer Experiment


Title: Segfaults on 3.12 when using PySR and running Julia's GC · Issue #113591 · python/cpython · GitHub

Open Graph Title: Segfaults on 3.12 when using PySR and running Julia's GC · Issue #113591 · python/cpython

X Title: Segfaults on 3.12 when using PySR and running Julia's GC · Issue #113591 · python/cpython

Description: Crash report What happened? This is a segfault I am seeing on Python 3.12, when trying to use the Python and Julia runtimes simultaneously via the PyJulia package. It seems like when there is an object that is referenced by both the Juli...

Open Graph Description: Crash report What happened? This is a segfault I am seeing on Python 3.12, when trying to use the Python and Julia runtimes simultaneously via the PyJulia package. It seems like when there is an ob...

X Description: Crash report What happened? This is a segfault I am seeing on Python 3.12, when trying to use the Python and Julia runtimes simultaneously via the PyJulia package. It seems like when there is an ob...

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

X: @github

direct link

Domain: github.com


Hey, it has json ld scripts:
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Segfaults on 3.12 when using PySR and running Julia's GC","articleBody":"# Crash report\r\n\r\n### What happened?\r\n\r\nThis is a segfault I am seeing on Python 3.12, when trying to use the Python and Julia runtimes simultaneously via the PyJulia package.\r\n\r\nIt seems like when there is an object that is referenced by both the Julia and Python runtimes, there can be memory access errors. It seems as though Python is trying to free memory which has already been freed in Julia or vice versa.\r\n\r\nI am raising the issue here since the issue has only started occurring on Python 3.12, but does not occur on 3.11. The Julia version does not seem to affect this behavior. So I am trying to understand what changes were made to the Python GC that might have triggered this, and if perhaps the GC is more aggressive in some way?\r\n\r\nHere is my current MWE based on a package I maintain ([PySR](https://github.com/MilesCranmer/PySR)) that uses Julia as  backend for a Python frontend:\r\n\r\n```python\r\nfrom pysr import PySRRegressor\r\n\r\nmodel = PySRRegressor()\r\n\r\n# This runs fine:\r\nmodel.fit([[1]], [1])\r\n\r\n# This second run results in a segmentation fault:\r\nmodel.fit([[1]], [1])\r\n```\r\n\r\nThis is the smallest MWE I have been able to create thus far.\r\n\r\nI also see the issue in my continuous integration tests on Python 3.12, but never before 3.12: https://github.com/MilesCranmer/PySR/pull/450\r\n\r\nFor example, in one of those segfaults, I see the following backtrace:\r\n\r\n```\r\nPlease submit a bug report with steps to reproduce this fault, and any error messages that follow (in their entirety). Thanks.\r\nException: EXCEPTION_ACCESS_VIOLATION at 0x7ffb0691a026 -- PyObject_Free at C:\\hostedtoolcache\\windows\\Python\\3.12.1\\x64\\python312.dll (unknown line)\r\nin expression starting at none:0\r\nPyObject_Free at C:\\hostedtoolcache\\windows\\Python\\3.12.1\\x64\\python312.dll (unknown line)\r\npydecref_ at C:\\Users\\runneradmin\\.julia\\packages\\PyCall\\1gn3u\\src\\PyCall.jl:118\r\npydecref at C:\\Users\\runneradmin\\.julia\\packages\\PyCall\\1gn3u\\src\\PyCall.jl:123\r\njfptr_pydecref_1039 at C:\\Users\\runneradmin\\.julia\\compiled\\v1.9\\PyCall\\GkzkC_As42O.dll (unknown line)\r\nrun_finalizer at C:/workdir/src\\gc.c:417\r\njl_gc_run_finalizers_in_list at C:/workdir/src\\gc.c:507\r\nrun_finalizers at C:/workdir/src\\gc.c:553\r\nrun_finalizers at C:/workdir/src\\gc.c:534 [inlined]\r\nijl_gc_collect at C:/workdir/src\\gc.c:3732\r\nmaybe_collect at C:/workdir/src\\gc.c:1083 [inlined]\r\njl_gc_pool_alloc_inner at C:/workdir/src\\gc.c:1450 [inlined]\r\njl_gc_pool_alloc_noinline at C:/workdir/src\\gc.c:1511\r\njl_gc_alloc_ at C:/workdir/src\\julia_internal.h:460 [inlined]\r\n_new_array_ at C:/workdir/src\\array.c:144\r\n_new_array at C:/workdir/src\\array.c:198 [inlined]\r\nijl_alloc_array_1d at C:/workdir/src\\array.c:436\r\nArray at .\\boot.jl:477 [inlined]\r\nArray at .\\boot.jl:486 [inlined]\r\nsimilar at .\\array.jl:374 [inlined]\r\nsimilar at .\\abstractarray.jl:839 [inlined]\r\ndeg2_l0_r0_eval at C:\\Users\\runneradmin\\.julia\\packages\\DynamicExpressions\\KRT17\\src\\EvaluateEquation.jl:257\r\njfptr_deg2_l0_r0_eval_1577 at C:\\Users\\runneradmin\\.julia\\compiled\\v1.9\\DynamicExpressions\\BQC8W_As42O.dll (unknown line)\r\n_eval_tree_array at C:\\Users\\runneradmin\\.julia\\packages\\DynamicExpressions\\KRT17\\src\\EvaluateEquation.jl:117\r\n_eval_tree_array at C:\\Users\\runneradmin\\.julia\\packages\\DynamicExpressions\\KRT17\\src\\EvaluateEquation.jl:131\r\n_eval_tree_array at C:\\Users\\runneradmin\\.julia\\packages\\DynamicExpressions\\KRT17\\src\\EvaluateEquation.jl:125\r\n#eval_tree_array#1 at C:\\Users\\runneradmin\\.julia\\packages\\DynamicExpressions\\KRT17\\src\\EvaluateEquation.jl:65 [inlined]\r\neval_tree_array at C:\\Users\\runneradmin\\.julia\\packages\\DynamicExpressions\\KRT17\\src\\EvaluateEquation.jl:59 [inlined]\r\n#eval_tree_array#1 at C:\\Users\\runneradmin\\.julia\\packages\\SymbolicRegression\\OYvt5\\src\\InterfaceDynamicExpressions.jl:57 [inlined]\r\neval_tree_array at C:\\Users\\runneradmin\\.julia\\packages\\SymbolicRegression\\OYvt5\\src\\InterfaceDynamicExpressions.jl:56 [inlined]\r\n_eval_loss at C:\\Users\\runneradmin\\.julia\\packages\\SymbolicRegression\\OYvt5\\src\\LossFunctions.jl:48\r\n#eval_loss#3 at C:\\Users\\runneradmin\\.julia\\packages\\SymbolicRegression\\OYvt5\\src\\LossFunctions.jl:101\r\neval_loss at C:\\Users\\runneradmin\\.julia\\packages\\SymbolicRegression\\OYvt5\\src\\LossFunctions.jl:93 [inlined]\r\n#score_func#5 at C:\\Users\\runneradmin\\.julia\\packages\\SymbolicRegression\\OYvt5\\src\\LossFunctions.jl:160 [inlined]\r\nscore_func at C:\\Users\\runneradmin\\.julia\\packages\\SymbolicRegression\\OYvt5\\src\\LossFunctions.jl:157 [inlined]\r\n#next_generation#1 at C:\\Users\\runneradmin\\.julia\\packages\\SymbolicRegression\\OYvt5\\src\\Mutate.jl:235\r\nnext_generation at C:\\Users\\runneradmin\\.julia\\packages\\SymbolicRegression\\OYvt5\\src\\Mutate.jl:60 [inlined]\r\nreg_evol_cycle at C:\\Users\\runneradmin\\.julia\\packages\\SymbolicRegression\\OYvt5\\src\\RegularizedEvolution.jl:37\r\n#s_r_cycle#1 at C:\\Users\\runneradmin\\.julia\\packages\\SymbolicRegression\\OYvt5\\src\\SingleIteration.jl:42\r\ns_r_cycle at C:\\Users\\runneradmin\\.julia\\packages\\SymbolicRegression\\OYvt5\\src\\SingleIteration.jl:17 [inlined]\r\n#_dispatch_s_r_cycle#81 at C:\\Users\\runneradmin\\.julia\\packages\\SymbolicRegression\\OYvt5\\src\\SymbolicRegression.jl:1053\r\n_dispatch_s_r_cycle at C:\\Users\\runneradmin\\.julia\\packages\\SymbolicRegression\\OYvt5\\src\\SymbolicRegression.jl:1036\r\n```\r\n\r\nI found this quite odd as it seems as though both the Julia and Python garbage collection are interfering with eachother. Here, it seems as though `PyObject_Free` is trying to free memory that was already freed? Perhaps one of the GCs is trying to free the memory access by the other runtime. Looking at the backtrace, I suppose this could also be an issue with [PyCall.jl](https://github.com/JuliaPy/PyCall.jl) (which calls Python functions from Julia), although it hasn't occurred in any previous Python version, so I'm not sure where the issue is coming from.\r\n\r\nAny help is appreciated. I am happy to provide you with as much debugging information as I can, as this issue is quite urgent to fix in the ecosystem of Python \u003c-\u003e Julia packages.\r\n\r\n\r\n\r\n### CPython versions tested on:\r\n\r\n3.12\r\n\r\n### Operating systems tested on:\r\n\r\nLinux, macOS, Windows\r\n\r\n### Output from running 'python -VV' on the command line:\r\n\r\nLinux test performed on: `Python 3.12.1 (main, Dec 30 2023, 22:23:57) [GCC 8.5.0 20210514 (Red Hat 8.5.0-20)]`","author":{"url":"https://github.com/MilesCranmer","@type":"Person","name":"MilesCranmer"},"datePublished":"2023-12-31T00:11:35.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":7},"url":"https://github.com/113591/cpython/issues/113591"}

route-pattern/_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format)
route-controllervoltron_issues_fragments
route-actionissue_layout
fetch-noncev2:4828b66b-51cf-93d3-ea54-b61d77905be2
current-catalog-service-hash81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114
request-idE00C:26A5A1:6099C8:83F21B:6969DC0B
html-safe-noncebfd465cdadd0aec8fc3c5bee3e3be78bef648b4f4383d7df774430785d1235ec
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJFMDBDOjI2QTVBMTo2MDk5Qzg6ODNGMjFCOjY5NjlEQzBCIiwidmlzaXRvcl9pZCI6IjE3NDI4Mzg3MTc2MzQ2OTgyNTEiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ==
visitor-hmacdabab4eebe64908144f850189b4060c9848290cfb9e2a4c1ff21ea8596f62d67
hovercard-subject-tagissue:2060890735
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/113591/issue_layout
twitter:imagehttps://opengraph.githubassets.com/4a719b7c514cdd70cf8df1920b5570252dc8e1a9efd5543290d0fb988ee02fa4/python/cpython/issues/113591
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/4a719b7c514cdd70cf8df1920b5570252dc8e1a9efd5543290d0fb988ee02fa4/python/cpython/issues/113591
og:image:altCrash report What happened? This is a segfault I am seeing on Python 3.12, when trying to use the Python and Julia runtimes simultaneously via the PyJulia package. It seems like when there is an ob...
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
og:author:usernameMilesCranmer
hostnamegithub.com
expected-hostnamegithub.com
None7b32f1c7c4549428ee399213e8345494fc55b5637195d3fc5f493657579235e8
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
releasebdde15ad1b403e23b08bbd89b53fbe6bdf688cad
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/python/cpython/issues/113591#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fissues%2F113591
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub SparkBuild and deploy intelligent appshttps://github.com/features/spark
GitHub ModelsManage and compare promptshttps://github.com/features/models
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
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
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/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%2F113591
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/113591
Reloadhttps://github.com/python/cpython/issues/113591
Reloadhttps://github.com/python/cpython/issues/113591
python https://github.com/python
cpythonhttps://github.com/python/cpython
Please reload this pagehttps://github.com/python/cpython/issues/113591
Notifications https://github.com/login?return_to=%2Fpython%2Fcpython
Fork 33.9k https://github.com/login?return_to=%2Fpython%2Fcpython
Star 71.1k 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.1k https://github.com/python/cpython/pulls
Actions https://github.com/python/cpython/actions
Projects 31 https://github.com/python/cpython/projects
Security Uh oh! There was an error while loading. Please reload this page. https://github.com/python/cpython/security
Please reload this pagehttps://github.com/python/cpython/issues/113591
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 https://github.com/python/cpython/security
Insights https://github.com/python/cpython/pulse
New issuehttps://github.com/login?return_to=https://github.com/python/cpython/issues/113591
New issuehttps://github.com/login?return_to=https://github.com/python/cpython/issues/113591
Segfaults on 3.12 when using PySR and running Julia's GChttps://github.com/python/cpython/issues/113591#top
type-crashA hard crash of the interpreter, possibly with a core dumphttps://github.com/python/cpython/issues?q=state%3Aopen%20label%3A%22type-crash%22
https://github.com/MilesCranmer
https://github.com/MilesCranmer
MilesCranmerhttps://github.com/MilesCranmer
on Dec 31, 2023https://github.com/python/cpython/issues/113591#issue-2060890735
PySRhttps://github.com/MilesCranmer/PySR
MilesCranmer/PySR#450https://github.com/MilesCranmer/PySR/pull/450
PyCall.jlhttps://github.com/JuliaPy/PyCall.jl
type-crashA hard crash of the interpreter, possibly with a core dumphttps://github.com/python/cpython/issues?q=state%3Aopen%20label%3A%22type-crash%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.