[SERVER-47122] Secondaries voting to commit index builds already existing should send the commitIndexBuild oplog entry if they transition to primary Created: 25/Mar/20 Updated: 27/Mar/20 Resolved: 27/Mar/20 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | Index Maintenance |
| Affects Version/s: | None |
| Fix Version/s: | None |
| Type: | Bug | Priority: | Major - P3 |
| Reporter: | Gregory Wlodarek | Assignee: | Gregory Wlodarek |
| Resolution: | Won't Do | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Operating System: | ALL |
| Sprint: | Execution Team 2020-04-06 |
| Participants: |
| Description |
|
After entering this if statement, it's possible for the secondary to transition to a primary state. If that is the case, the node should send the commitIndexBuild oplog entry after the commit quorum was satisfied. |
| Comments |
| Comment by Louis Williams [ 25/Mar/20 ] |
|
We should never check the replication state without holding the RSTL lock. We should be using canAcceptWriteFor which asserts that caller is holding the RSTL. The solution here should be to hold that lock momentarily. |