-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
pyunittests-pyroot-pyz-ttree-setbranchaddress segfaults with Python 3.13 #15799
Comments
The pythonization of `TTree::SetBranchAddress` was implemented in C++, hacking into CPyCppy by using implementation details like data member caches (this call: `((CPPInstance *)address)GetDatamemberCache()`). Not too surprising that it apparently breaks with the upcoming Python 3.13. It's better to implement the pythonizations in Python and also manage the lifetime of the necessary data in Python. This is done in this commit. The pythonization is extensively tested in `ttree_setbranchaddress.py`. Possible closes root-project#15799.
Thanks for the report! Once the CI is green, can you maybe check if this PR fixes the problem? |
The pythonization of `TTree::SetBranchAddress` was implemented in C++, hacking into CPyCppy by using implementation details like data member caches (this call: `((CPPInstance *)address)GetDatamemberCache()`). Not too surprising that it apparently breaks with the upcoming Python 3.13. It's better to implement the pythonizations in Python and also manage the lifetime of the necessary data in Python. This is done in this commit. The pythonization is extensively tested in `ttree_setbranchaddress.py`. Possible closes root-project#15799.
The pythonization of `TTree::SetBranchAddress` was implemented in C++, hacking into CPyCppy by using implementation details like data member caches (this call: `((CPPInstance *)address)GetDatamemberCache()`). Not too surprising that it apparently breaks with the upcoming Python 3.13. It's better to implement the pythonizations in Python and also manage the lifetime of the necessary data in Python. This is done in this commit. The pythonization is extensively tested in `ttree_setbranchaddress.py`. Possible closes root-project#15799.
I also checked with Python 3.13 on Arch Linux: the test is passing now. |
The pythonization of `TTree::SetBranchAddress` was implemented in C++, hacking into CPyCppy by using implementation details like data member caches (this call: `((CPPInstance *)address)GetDatamemberCache()`). Not too surprising that it apparently breaks with the upcoming Python 3.13. It's better to implement the pythonizations in Python and also manage the lifetime of the necessary data in Python. This is done in this commit. The pythonization is extensively tested in `ttree_setbranchaddress.py`. Possible closes root-project#15799.
The pythonization of `TTree::SetBranchAddress` was implemented in C++, hacking into CPyCppy by using implementation details like data member caches (this call: `((CPPInstance *)address)GetDatamemberCache()`). Not too surprising that it apparently breaks with the upcoming Python 3.13. It's better to implement the pythonizations in Python and also manage the lifetime of the necessary data in Python. This is done in this commit. The pythonization is extensively tested in `ttree_setbranchaddress.py`. Possible closes root-project#15799.
The pythonization of `TTree::SetBranchAddress` was implemented in C++, hacking into CPyCppy by using implementation details like data member caches (this call: `((CPPInstance *)address)GetDatamemberCache()`). Not too surprising that it apparently breaks with the upcoming Python 3.13. It's better to implement the pythonizations in Python and also manage the lifetime of the necessary data in Python. This is done in this commit. The pythonization is extensively tested in `ttree_setbranchaddress.py`. Possible closes #15799.
It also works on Fedora. Thank you for addressing this. |
Hi @guitargeek, It appears this issue is closed, but wasn't yet added to a project. Please add upcoming versions that will include the fix, or 'not applicable' otherwise. Sincerely, |
The pythonization of `TTree::SetBranchAddress` was implemented in C++, hacking into CPyCppy by using implementation details like data member caches (this call: `((CPPInstance *)address)GetDatamemberCache()`). Not too surprising that it apparently breaks with the upcoming Python 3.13. It's better to implement the pythonizations in Python and also manage the lifetime of the necessary data in Python. This is done in this commit. The pythonization is extensively tested in `ttree_setbranchaddress.py`. Possible closes root-project#15799.
The pythonization of `TTree::SetBranchAddress` was implemented in C++, hacking into CPyCppy by using implementation details like data member caches (this call: `((CPPInstance *)address)GetDatamemberCache()`). Not too surprising that it apparently breaks with the upcoming Python 3.13. It's better to implement the pythonizations in Python and also manage the lifetime of the necessary data in Python. This is done in this commit. The pythonization is extensively tested in `ttree_setbranchaddress.py`. Possible closes #15799.
The pythonization of `TTree::SetBranchAddress` was implemented in C++, hacking into CPyCppy by using implementation details like data member caches (this call: `((CPPInstance *)address)GetDatamemberCache()`). Not too surprising that it apparently breaks with the upcoming Python 3.13. It's better to implement the pythonizations in Python and also manage the lifetime of the necessary data in Python. This is done in this commit. The pythonization is extensively tested in `ttree_setbranchaddress.py`. Possible closes root-project#15799.
Check duplicate issues.
Description
The pyunittests-pyroot-pyz-ttree-setbranchaddress test segfaults with Python 3.13:
Reproducer
Compile root with Python 3.13. Run tests.
ROOT version
6.32.00
Installation method
RPM package build from source
Operating system
Fedora 41 (rawhide)
Additional context
No response
The text was updated successfully, but these errors were encountered: