GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | |||||||||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | |||||||||||||
GeezerVison is showing github.com — gh-126033: fix a crash in `xml.etree.ElementTree.Element.remove` when concurrent mutations happen by picnixz · Pull Request #126124 · python/cpython Conversation
|
Oh yes. I'll try using this one as a basis. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
Ah I know why I couldn't make it work! it's because the children is not a list itself, but just a huge memory area that was dynamically allocated using |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
The list storage is also just a huge memory area that was dynamically allocated using At worst, you can get different exceptions (or no exception) in C and Python implementations, but this is fine. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
The difference is that the list object uses |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
|
Sorry, something went wrong.
There was an error while loading. Please reload this page.
I'm pretty sure I first tried using INCREF/DECREF as usual and encountered an issue with that but I can't remember how. I'll try reproducing this tomorrow. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
…M3uCn.rst Co-authored-by: Victor Stinner <[email protected]>
|
@vstinner @serhiy-storchaka friendly ping in case you forgot about this one |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
As I wrote, I don't think that 200 lines of tests are needed. I would prefer way less tests. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
I can remove the special test case which makes the test explode as it's only the Python implementation if you want. It would reduce the test by half at least (most of the line length is taken by comments that are needed to explain the discrepency between the Python and the C implementation). |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
@vstinner I've removed the pedantic check. However, we still need to have that much of tests because |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
LGTM. The C code change LGTM, I didn't review the tests.
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
Thanks @picnixz for the PR 🌮🎉.. I'm working now to backport this PR to: 3.12, 3.13. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
…en concurrent mutations happen (pythonGH-126124) (cherry picked from commit bab1398) Co-authored-by: Bénédikt Tran <[email protected]>
|
GH-131929 is a backport of this pull request to the 3.13 branch. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
…en concurrent mutations happen (pythonGH-126124) (cherry picked from commit bab1398) Co-authored-by: Bénédikt Tran <[email protected]>
|
GH-131930 is a backport of this pull request to the 3.12 branch. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
There was an error while loading. Please reload this page.