summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLingzhi Deng <lingzhi.deng@mongodb.com>2021-06-29 17:15:36 +0000
committerLingzhi Deng <lingzhi.deng@mongodb.com>2021-07-13 20:51:15 -0400
commit3e8b8bbf8fd4243d9b7e81fbb569d492da05628a (patch)
treee8da47979cbfb96bfffbde0d719b3c603f611206
parent92662765968eff784a82adea2f57ee5d1125712d (diff)
downloadmongo-3e8b8bbf8fd4243d9b7e81fbb569d492da05628a.tar.gz
SERVER-58142: TenantOplogBatcher should transition to complete when the next batch callback is called with error status
(cherry picked from commit 683e75145e2599b7f559c944635a886d058f3bcf)
-rw-r--r--src/mongo/db/repl/tenant_oplog_batcher.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/mongo/db/repl/tenant_oplog_batcher.cpp b/src/mongo/db/repl/tenant_oplog_batcher.cpp
index 5635f0ce339..e0d7539fcf6 100644
--- a/src/mongo/db/repl/tenant_oplog_batcher.cpp
+++ b/src/mongo/db/repl/tenant_oplog_batcher.cpp
@@ -210,7 +210,12 @@ SemiFuture<TenantOplogBatch> TenantOplogBatcher::_scheduleNextBatch(WithLock, Ba
_executor->scheduleWork([this, limits, taskCompletionPromise, self = shared_from_this()](
const executor::TaskExecutor::CallbackArgs& args) {
if (!args.status.isOK()) {
+ stdx::lock_guard lk(_mutex);
+ _batchRequested = false;
taskCompletionPromise->setError(args.status);
+ if (_isShuttingDown_inlock()) {
+ _transitionToComplete_inlock();
+ }
return;
}