-
Notifications
You must be signed in to change notification settings - Fork 168
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
Client reset with recovery fixes #7112
Conversation
4e4dde8
to
7268d03
Compare
Pull Request Test Coverage Report for Build james.stone_426
💛 - Coveralls |
ae4c313
to
9d94231
Compare
the server when copying local lists with links in them.
9d94231
to
9bb1049
Compare
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.
👍
@ironage this line in the changelog is missing a "since" entry:
Should I assume this was also since v11.16.0? |
@kraenhansen good catch, that fix is relevant since the introduction of the Set datatype in v10.2.0 |
In stress testing the recovery code paths for https://jira.mongodb.org/browse/HELP-48043 I found a few errors.
We should not resurrect objects that have been deleted by the server when copying local lists with links in them. This could lead to some weird/unexpected state after a recovery, but I wasn't able to create any bad changesets this way.
Related to Re-create all objects before updating their properties during client_reset::transfer_group() #6291
I also trace the problem reported in the forums by a user based on the exception message "A fatal error occured during client reset: 'Requested index 2 calling get() on set 'anotherschema.arrayfield' when max is 1' (2)." This turned out to be a problem with the LnkSet implementation of sort/distinct. The effect of returning duplicate indices for the client reset code is that the logic keeping track of indexes there breaks. I think the client reset code was the only place calling this (in core at least) so I don't think bug had too wide an impact.
☑️ ToDos