diff options
author | Vishnu Kaushik <vishnu.kaushik@mongodb.com> | 2021-06-16 19:03:12 +0000 |
---|---|---|
committer | Vishnu Kaushik <vishnu.kaushik@mongodb.com> | 2021-06-22 15:12:58 +0000 |
commit | 4610b9a4678e2141b559ba3ed7f033b4814c068d (patch) | |
tree | ee1fadcc9218e550aeb8e232904072641e987f92 | |
parent | c748bbbb0b373ce2e914d6e7d1e83ec0eccd239f (diff) | |
download | mongo-4610b9a4678e2141b559ba3ed7f033b4814c068d.tar.gz |
SERVER-57754 Tenant Oplog Applier doesn't grab the RSTL before reserving oplog slots
-rw-r--r-- | src/mongo/db/repl/tenant_oplog_applier.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/src/mongo/db/repl/tenant_oplog_applier.cpp b/src/mongo/db/repl/tenant_oplog_applier.cpp index 85cb7e958cb..7ca766859e9 100644 --- a/src/mongo/db/repl/tenant_oplog_applier.cpp +++ b/src/mongo/db/repl/tenant_oplog_applier.cpp @@ -415,6 +415,10 @@ TenantOplogApplier::OpTimePair TenantOplogApplier::_writeNoOpEntries( // the RSTL. opCtx->setAlwaysInterruptAtStepDownOrUp(); + // Prevent the node from being able to change state when reserving oplog slots and writing + // entries. + AutoGetOplog oplogWrite(opCtx, OplogAccessMode::kWrite); + // We start WriteUnitOfWork only to reserve oplog slots. So, it's ok to abort the // WriteUnitOfWork when it goes out of scope. WriteUnitOfWork wuow(opCtx); |