[SERVER-73695] Add JS test for primary crashing in the middle of committing split prepared transactions Created: 07/Feb/23 Updated: 29/Oct/23 Resolved: 06/Apr/23 |
|
| Status: | Closed |
| Project: | Core Server |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 7.0.0-rc0 |
| Type: | Task | Priority: | Major - P3 |
| Reporter: | Wenbin Zhu | Assignee: | Lingzhi Deng |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Issue Links: |
|
||||
| Assigned Teams: |
Replication
|
||||
| Backwards Compatibility: | Fully Compatible | ||||
| Sprint: | Repl 2023-03-20, Repl 2023-04-03, Repl 2023-04-17 | ||||
| Participants: | |||||
| Linked BF Score: | 35 | ||||
| Description |
|
If a failure occurs while we are committing split transactions on a primary, we may end up in a state where part of a transaction has been committed and part has not. Because our data tables are not journaled, when we recoverToStableTimestamp, the committed part should be lost and we can recover normally. This relies on the fact that we hold an oplog hole open before applying any split prepared transaction so that the stable timestamp cannot move beyond the hole. This ticket should test and ensure this behavior and make sure that once the node recovers (which becomes a secondary), we won't read partial data and can correct finish the commit. |
| Comments |
| Comment by Githook User [ 06/Apr/23 ] |
|
Author: {'name': 'Lingzhi Deng', 'email': 'lingzhi.deng@mongodb.com', 'username': 'ldennis'}Message: |
| Comment by Githook User [ 31/Mar/23 ] |
|
Author: {'name': 'liubov.molchanova', 'email': 'liubov.molchanova@mongodb.com', 'username': 'liubov-molchanova'}Message: Revert " This reverts commit 4714df5896ddaa06f3146531d2283a013f903996. |
| Comment by Githook User [ 30/Mar/23 ] |
|
Author: {'name': 'Frederic Vitzikam', 'email': 'frederic.vitzikam@mongodb.com', 'username': 'fredvitz'}Message: |