I am seeing the following log line present in a Mongo (v4.0.10
with RS enabled) instance that is stuck in a ROLLBACK
loop:
2023-01-11T23:01:54.677+0000 I REPL [rsBackgroundSync] Starting rollback due to OplogStartMissing: Our last op time fetched: { ts: Timestamp(1673468698, 10), t: 56 }. source's GTE: { ts: Timestamp(1673468938, 1), t: 60 } hashes: (6797776970190861893/-6655112653090449759)
The timestamp 1673468698
is 2023-01-11T20:24:58+00:00
& 1673468938
is 2023-01-11T20:28:58+00:00
. I.e. the node’s fetched OpTime is less then the sync source’s one (& it is from a lower term)
However, the information found here says that the node’s fetched OpTime needs to be greater for the OplogStartMissing
error:
A node goes into rollback when its last fetched OpTime is greater than its sync source’s last applied OpTime, but it is in a lower term. In this case, the
OplogFetcher
will return an empty batch and fail with anOplogStartMissing
error.
Is there something that I am misunderstanding? Could someone explain what I am seeing?
Thanks.