diff options
Diffstat (limited to 'src/mongo/db/s/flush_resharding_state_change_command.cpp')
| -rw-r--r-- | src/mongo/db/s/flush_resharding_state_change_command.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/mongo/db/s/flush_resharding_state_change_command.cpp b/src/mongo/db/s/flush_resharding_state_change_command.cpp index cc4a4093dd1..53b3f9953ff 100644 --- a/src/mongo/db/s/flush_resharding_state_change_command.cpp +++ b/src/mongo/db/s/flush_resharding_state_change_command.cpp @@ -109,7 +109,11 @@ public: "Can't call _flushReshardingStateChange if in read-only mode", !storageGlobalParams.readOnly); - ExecutorFuture<void>(Grid::get(opCtx)->getExecutorPool()->getArbitraryExecutor()) + // We use the fixed executor here since it may cause the thread to block. This would + // cause potential liveness issues since the arbitrary executor is a NetworkInterfaceTL + // executor in sharded clusters and that executor is one that executes networking + // operations. + ExecutorFuture<void>(Grid::get(opCtx)->getExecutorPool()->getFixedExecutor()) .then([svcCtx = opCtx->getServiceContext(), nss = ns()] { ThreadClient tc("FlushReshardingStateChange", svcCtx); { |
