Skip to content

Commit 8c50e87

Browse files
committed
SERVER-30482 Verify and enforce good ordering for the values for the sharding task executor refresh and host timeouts.
1 parent b1d1b24 commit 8c50e87

File tree

1 file changed

+24
-0
lines changed

1 file changed

+24
-0
lines changed

src/mongo/s/sharding_initialization.cpp

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,30 @@ Status initializeGlobalShardingState(OperationContext* opCtx,
192192
connPoolOptions.refreshRequirement = Milliseconds(ShardingTaskExecutorPoolRefreshRequirementMS);
193193
connPoolOptions.refreshTimeout = Milliseconds(ShardingTaskExecutorPoolRefreshTimeoutMS);
194194

195+
if (connPoolOptions.refreshRequirement <= connPoolOptions.refreshTimeout) {
196+
auto newRefreshTimeout = connPoolOptions.refreshRequirement - Milliseconds(1);
197+
warning() << "ShardingTaskExecutorPoolRefreshRequirementMS ("
198+
<< connPoolOptions.refreshRequirement
199+
<< ") set below ShardingTaskExecutorPoolRefreshTimeoutMS ("
200+
<< connPoolOptions.refreshTimeout
201+
<< "). Adjusting ShardingTaskExecutorPoolRefreshTimeoutMS to "
202+
<< newRefreshTimeout;
203+
connPoolOptions.refreshTimeout = newRefreshTimeout;
204+
}
205+
206+
if (connPoolOptions.hostTimeout <=
207+
connPoolOptions.refreshRequirement + connPoolOptions.refreshTimeout) {
208+
auto newHostTimeout =
209+
connPoolOptions.refreshRequirement + connPoolOptions.refreshTimeout + Milliseconds(1);
210+
warning() << "ShardingTaskExecutorPoolHostTimeoutMS (" << connPoolOptions.hostTimeout
211+
<< ") set below ShardingTaskExecutorPoolRefreshRequirementMS ("
212+
<< connPoolOptions.refreshRequirement
213+
<< ") + ShardingTaskExecutorPoolRefreshTimeoutMS ("
214+
<< connPoolOptions.refreshTimeout
215+
<< "). Adjusting ShardingTaskExecutorPoolHostTimeoutMS to " << newHostTimeout;
216+
connPoolOptions.hostTimeout = newHostTimeout;
217+
}
218+
195219
auto network =
196220
executor::makeNetworkInterface("NetworkInterfaceASIO-ShardRegistry",
197221
stdx::make_unique<ShardingNetworkConnectionHook>(),

0 commit comments

Comments
 (0)