-
Type: Bug
-
Resolution: Duplicate
-
Priority: Major - P3
-
None
-
Affects Version/s: None
-
Component/s: Replication
-
None
-
Replication
-
ALL
Consider a replica set with three members at this state of oplogs:
S1: 1 2 3 4 5 6 7 8 9 (primary)
S2: 1
S3: 1 2 3 4 5
now suppose S2 starts applying the batch 2..9. It early commits
{2,4,6,8} ops. It then crashes.after crashing, the oplog for S2 is unchanged, but writes have occurred to the datafiles for opids {2,4,6,8}
.
On restart, S2 would recover ok (if it's idempotent) if S1 is up. However, suppose S1 goes down first (perhaps permanently). Now S2 and S3 are the remaining set members on S2's restart. S3 has the latest data. After recovery we have:
S1: down
S2: 1 2 3 4 5 (+
S3: 1 2 3 4 5
*However S2 has also written ops {6,8}
and they are never rolled back.
- depends on
-
SERVER-7200 use oplog as op buffer on secondaries
- Closed
- is duplicated by
-
SERVER-23841 Mongod always complain "Fatal assertion 18750 UnrecoverableRollbackError" after mongod abnormal termination
- Closed