-
-
Notifications
You must be signed in to change notification settings - Fork 31.8k
gh-93065: Fix HAMT to iterate correctly over 7-level deep trees #93066
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
Conversation
Hey @1st1 as I found and fixed this bug (MagicStack/immutables#85) can I open this PR? I'd really like to have a merge in CPython on my name. |
@molaxx Eli, the commit is a bit more involved now as I added a comment explaining the fix + a test. I'd prefer to keep this PR and merge it. That said, this change is yours, so I changed the author of the commit to your name and also added you to Misc/ACKS. Now since you're the author, you need to accept our CLA here: #93066 (comment) |
@1st1 Thanks! |
acf6ba7
to
0ed77a3
Compare
Also while there, clarify a few things about why we reduce the hash to 32 bits. Co-authored-by: Yury Selivanov <yury@edgedb.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM. Thanks for adding a comment explaining the 8 constant!
|
||
The bug was discovered and fixed by Eli Libman. See [1] for more details. | ||
|
||
[1] https://github.com/MagicStack/immutables/issues/84 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Backporting to all security branches as potential crashers are DoS. |
GH-93145 is a backport of this pull request to the 3.11 branch. |
GH-93146 is a backport of this pull request to the 3.10 branch. |
…pythonGH-93066) Also while there, clarify a few things about why we reduce the hash to 32 bits. Co-authored-by: Eli Libman <eli@hyro.ai> Co-authored-by: Yury Selivanov <yury@edgedb.com> Co-authored-by: Łukasz Langa <lukasz@langa.pl> (cherry picked from commit c1f5c90) Co-authored-by: Yury Selivanov <yury@edgedb.com>
…pythonGH-93066) Also while there, clarify a few things about why we reduce the hash to 32 bits. Co-authored-by: Eli Libman <eli@hyro.ai> Co-authored-by: Yury Selivanov <yury@edgedb.com> Co-authored-by: Łukasz Langa <lukasz@langa.pl> (cherry picked from commit c1f5c90) Co-authored-by: Yury Selivanov <yury@edgedb.com>
GH-93147 is a backport of this pull request to the 3.9 branch. |
Sorry, @1st1 and @ambv, I could not cleanly backport this to |
…pythonGH-93066) Also while there, clarify a few things about why we reduce the hash to 32 bits. Co-authored-by: Eli Libman <eli@hyro.ai> Co-authored-by: Yury Selivanov <yury@edgedb.com> Co-authored-by: Łukasz Langa <lukasz@langa.pl> (cherry picked from commit c1f5c90) Co-authored-by: Yury Selivanov <yury@edgedb.com>
Sorry @1st1 and @ambv, I had trouble checking out the |
… trees (pythonGH-93066) Also while there, clarify a few things about why we reduce the hash to 32 bits. Co-authored-by: Eli Libman <eli@hyro.ai> Co-authored-by: Yury Selivanov <yury@edgedb.com> Co-authored-by: Łukasz Langa <lukasz@langa.pl> (cherry picked from commit c1f5c90) Co-authored-by: Yury Selivanov <yury@edgedb.com>
GH-93148 is a backport of this pull request to the 3.8 branch. |
… trees (pythonGH-93066) Also while there, clarify a few things about why we reduce the hash to 32 bits. Co-authored-by: Eli Libman <eli@hyro.ai> Co-authored-by: Yury Selivanov <yury@edgedb.com> Co-authored-by: Łukasz Langa <lukasz@langa.pl> (cherry picked from commit c1f5c90) Co-authored-by: Yury Selivanov <yury@edgedb.com>
GH-93149 is a backport of this pull request to the 3.7 branch. |
Thanks so much Lukasz!! |
No description provided.