diff options
author | Henrik Edin <henrik.edin@mongodb.com> | 2017-09-15 17:08:10 -0400 |
---|---|---|
committer | Andrew Morrow <acm@mongodb.com> | 2017-11-01 11:58:51 -0400 |
commit | 577f6c2677eb1384e5a50b6829bfa2ad7665e3a1 (patch) | |
tree | fe3e7ddc2c675ef6ea22668e2f472f5425e24ffb /src | |
parent | c8707ca4710944b2c2a18d19928c4ae16c74e214 (diff) | |
download | mongo-577f6c2677eb1384e5a50b6829bfa2ad7665e3a1.tar.gz |
SERVER-30482 Verify and enforce good ordering for the values for the sharding task executor refresh and host timeouts.
(cherry picked from commit 8c50e87a82afdb7852fbac32e9bb4dbe7b6f8030)
Diffstat (limited to 'src')
-rw-r--r-- | src/mongo/s/sharding_initialization.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/mongo/s/sharding_initialization.cpp b/src/mongo/s/sharding_initialization.cpp index 89348e61407..71a895f2b65 100644 --- a/src/mongo/s/sharding_initialization.cpp +++ b/src/mongo/s/sharding_initialization.cpp @@ -193,6 +193,30 @@ Status initializeGlobalShardingState(OperationContext* txn, ? Milliseconds(ShardingTaskExecutorPoolRefreshTimeoutMS) : ConnectionPool::kDefaultRefreshTimeout; + if (connPoolOptions.refreshRequirement <= connPoolOptions.refreshTimeout) { + auto newRefreshTimeout = connPoolOptions.refreshRequirement - Milliseconds(1); + warning() << "ShardingTaskExecutorPoolRefreshRequirementMS (" + << connPoolOptions.refreshRequirement + << ") set below ShardingTaskExecutorPoolRefreshTimeoutMS (" + << connPoolOptions.refreshTimeout + << "). Adjusting ShardingTaskExecutorPoolRefreshTimeoutMS to " + << newRefreshTimeout; + connPoolOptions.refreshTimeout = newRefreshTimeout; + } + + if (connPoolOptions.hostTimeout <= + connPoolOptions.refreshRequirement + connPoolOptions.refreshTimeout) { + auto newHostTimeout = + connPoolOptions.refreshRequirement + connPoolOptions.refreshTimeout + Milliseconds(1); + warning() << "ShardingTaskExecutorPoolHostTimeoutMS (" << connPoolOptions.hostTimeout + << ") set below ShardingTaskExecutorPoolRefreshRequirementMS (" + << connPoolOptions.refreshRequirement + << ") + ShardingTaskExecutorPoolRefreshTimeoutMS (" + << connPoolOptions.refreshTimeout + << "). Adjusting ShardingTaskExecutorPoolHostTimeoutMS to " << newHostTimeout; + connPoolOptions.hostTimeout = newHostTimeout; + } + auto network = executor::makeNetworkInterface("NetworkInterfaceASIO-ShardRegistry", stdx::make_unique<ShardingNetworkConnectionHook>(), |