Details
-
Task
-
Resolution: Fixed
-
Major - P3
-
None
-
None
-
None
-
Replication
-
Fully Compatible
-
Repl 2023-03-20, Repl 2023-04-03, Repl 2023-04-17
-
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.