[SERVER-53436] Transition to primary writes minValid doc with timestamp lastApplied with readers on the same timestamp under lock free reads Created: 18/Dec/20 Updated: 29/Oct/23 Resolved: 08/Jan/21 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 4.9.0 |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Henrik Edin | Assignee: | Samyukta Lanka |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||||||||||||||||||
| Backwards Compatibility: | Fully Compatible | ||||||||||||||||||||
| Sprint: | Repl 2020-12-28, Repl 2021-01-25 | ||||||||||||||||||||
| Participants: | |||||||||||||||||||||
| Description |
|
The step up process is clearing appliedThrough by writing to the minValid document at timestamp lastApplied. With lock free reads, holding the RSTL in exclusive mode is not blocking readers. So secondaries may have readers on timestamp lastApplied. This is causing an assert in WiredTiger that we are writing to a timestamp that we have active readers on. The problem is reproducible by running test jstests/replsets/read_operations_during_step_up.js with LockFreeReads enabled. |
| Comments |
| Comment by Githook User [ 08/Jan/21 ] |
|
Author: {'name': 'Henrik Edin', 'email': 'henrik.edin@mongodb.com', 'username': 'henrikedin'}Message: This is safe because without EMRC=false we don't need this document for recovery and a clean shutdown would be required for a downgrade. |