Initial sync fetches the oldest active transaction timestamp before the top of oplog. In the following case, it would miss the necessary oplog entries needed by oplog application.
- Initial sync fetches the oldest active transaction timestamp, seeing no running transaction.
- A transaction starts and gets prepared, writing the prepare command [P] into the oplog.
- The transaction commits, writing the commit command [C] into the oplog.
- Initial sync fetches the top of oplog [C].
- Initial sync starts to apply operations from [C] since there was no running transaction and fails to applies it since the needed [P] is missing.