diff options
-rw-r--r-- | src/mongo/db/repl/tenant_oplog_applier.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/mongo/db/repl/tenant_oplog_applier.cpp b/src/mongo/db/repl/tenant_oplog_applier.cpp index 70da52f7ee4..dd8b69ec271 100644 --- a/src/mongo/db/repl/tenant_oplog_applier.cpp +++ b/src/mongo/db/repl/tenant_oplog_applier.cpp @@ -663,6 +663,13 @@ void TenantOplogApplier::_writeSessionNoOpsForRange( opCtx->getServiceContext()->getFastClockSource()->now()); // Clear the old tenant migration UUID. noopEntry.setFromTenantMigration(boost::none); + + // Set the inner 'o2' optime to the donor entry's optime because the recipient + // uses the timestamp in 'o2' to determine where to resume applying from. + auto o2Entry = uassertStatusOK(MutableOplogEntry::parse(*entry.getObject2())); + o2Entry.setOpTime(entry.getOpTime()); + o2Entry.setWallClockTime(entry.getWallClockTime()); + noopEntry.setObject2(o2Entry.toBSON()); } } stmtIds.insert(stmtIds.end(), entryStmtIds.begin(), entryStmtIds.end()); |