OplogStartMissing occurring in contradiction to documentation

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 an OplogStartMissing error.

Is there something that I am misunderstanding? Could someone explain what I am seeing?

Thanks.

1 Like