[SERVER-63989] Retry rollback_to_stable until all concurrent operations finish Created: 25/Feb/22 Updated: 29/Oct/23 Resolved: 21/Mar/22 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 6.0.0-rc0 |
| Type: | Improvement | Priority: | Major - P3 |
| Reporter: | Louis Williams | Assignee: | Gregory Wlodarek |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||||||||||||||
| Backport Requested: |
v5.0, v4.4
|
||||||||||||||||||||||||||||
| Sprint: | Execution Team 2022-03-21, Execution Team 2022-04-04 | ||||||||||||||||||||||||||||
| Participants: | |||||||||||||||||||||||||||||
| Linked BF Score: | 35 | ||||||||||||||||||||||||||||
| Description |
|
The rollback_to_stable operation requires callers to"close or reset all open cursors before the call, and no other API calls should be made for the duration of the call." If that does not happen, the operation will fail with the following error:
We should retry rollback_to_stable until the system quiesces. |
| Comments |
| Comment by Githook User [ 21/Mar/22 ] |
|
Author: {'name': 'Gregory Wlodarek', 'email': 'gregory.wlodarek@mongodb.com', 'username': 'GWlodarek'}Message: |
| Comment by Githook User [ 21/Mar/22 ] |
|
Author: {'name': 'Gregory Wlodarek', 'email': 'gregory.wlodarek@mongodb.com', 'username': 'GWlodarek'}Message: |
| Comment by Githook User [ 21/Mar/22 ] |
|
Author: {'name': 'Gregory Wlodarek', 'email': 'gregory.wlodarek@mongodb.com', 'username': 'GWlodarek'}Message: |
| Comment by Keith Bostic (Inactive) [ 05/Mar/22 ] |
|
I have no objection to changing the return code in this scenario to EBUSY, but – and I think I'm just repeating what everybody already knows, so apologies for that, but just in case – there is no guarantee the WiredTiger check will catch all MongoDB Server activity. If WiredTiger performs this check, and then a transaction starts, rollback-to-stable will be performed while the transaction runs, and bad things will happen. (In other words, WiredTiger has no global locks around running RTS, and it isn't sufficient to call RTS until it doesn't complain about transactions being run in parallel.) |
| Comment by Tammy Bailey (Inactive) [ 28/Feb/22 ] |
|
We created the ticket |
| Comment by Louis Williams [ 25/Feb/22 ] |
|
This is an alternative solution to SERVER-60335. |