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
fix(merge-tree sequence): rb tree crash #17395
Conversation
⯆ @fluid-example/bundle-size-tests: -723 Bytes
Baseline commit: 1031b62 |
…to fix/rb-tree-crash
failing due to 0x54e
| @@ -114,6 +118,70 @@ describe("SharedString op-reentrancy", () => { | |||
| } | |||
| }); | |||
|
|
|||
| it("is empty after deleting reference pos in reentrant callback", () => { | |||
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.
FWIW I think the work item here wasn't talking about op reentrancy. I interpreted it as issues with LocalReferencePosition.link and LocalReferenceCollection.removeLocalRef mutually calling each other, leading to issues.
Not really against these tests though, I guess they do add some coverage for actions taken as part of a sequence delta callback, which is a reasonable thing applications might do. I think we have some coverage of this type of thing at the merge-tree level but not really at the sequence level.
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.
this looks good to me. It'd be good to have Tony look at it before merging as he might recall some more of the subtleties with why we didn't originally link to undefined.
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.
this looks good to me. It'd be good to have Tony look at it before merging as he might recall some more of the subtleties with why we didn't originally link to undefined.
Resolves a crash in our red-black tree implementation that occurs when multiple references slide off the tree at once.
ADO#4477