summaryrefslogtreecommitdiffstats
path: root/configd
diff options
context:
space:
mode:
authorArne Juul <arnej@yahooinc.com>2023-03-01 10:42:02 +0000
committerArne Juul <arnej@yahooinc.com>2023-03-01 10:42:02 +0000
commit7b9b83046cfd8460128da068d286214da051bfbe (patch)
tree9e5ae4daa1f18ddafc2dfa5ed858d1cb58a751bd /configd
parent31db1c671fac8e34f098f9d6d9797c2c1e05d433 (diff)
pre-compute higher timeout based on number of nodes to check
Diffstat (limited to 'configd')
-rw-r--r--configd/src/apps/sentinel/connectivity.cpp6
-rw-r--r--configd/src/apps/sentinel/report-connectivity.cpp2
2 files changed, 3 insertions, 5 deletions
diff --git a/configd/src/apps/sentinel/connectivity.cpp b/configd/src/apps/sentinel/connectivity.cpp
index b9641cc19e0..9cd8d5c985a 100644
--- a/configd/src/apps/sentinel/connectivity.cpp
+++ b/configd/src/apps/sentinel/connectivity.cpp
@@ -75,10 +75,9 @@ void classifyConnFails(ConnectivityMap &connectivityMap,
LOG_ASSERT(cmIter != connectivityMap.end());
OutwardCheckContext cornerContext(goodNeighborSpecs.size(), nameToCheck, portToCheck, rpcServer.orb());
ConnectivityMap cornerProbes;
- int ping_timeout = 1000;
+ int ping_timeout = 1000 + 50 * goodNeighborSpecs.size();
for (const auto & hp : goodNeighborSpecs) {
cornerProbes.try_emplace(hp.first, spec(hp), cornerContext, ping_timeout);
- ping_timeout += 20;
}
cornerContext.latch.await();
size_t numReportsUp = 0;
@@ -154,10 +153,9 @@ Connectivity::checkConnectivity(RpcServer &rpcServer) {
rpcServer.getPort(),
rpcServer.orb());
ConnectivityMap connectivityMap;
- int ping_timeout = 1000;
+ int ping_timeout = 1000 + 50 * _checkSpecs.size();
for (const auto &host_and_port : _checkSpecs) {
connectivityMap.try_emplace(host_and_port.first, spec(host_and_port), checkContext, ping_timeout);
- ping_timeout += 20;
}
checkContext.latch.await();
classifyConnFails(connectivityMap, _checkSpecs, rpcServer);
diff --git a/configd/src/apps/sentinel/report-connectivity.cpp b/configd/src/apps/sentinel/report-connectivity.cpp
index 8417384dda9..d059980aae9 100644
--- a/configd/src/apps/sentinel/report-connectivity.cpp
+++ b/configd/src/apps/sentinel/report-connectivity.cpp
@@ -22,9 +22,9 @@ ReportConnectivity::ReportConnectivity(FRT_RPCRequest *req, int timeout_ms, FRT_
auto map = Connectivity::specsFrom(cfg.value());
LOG(debug, "making connectivity report for %zd peers", map.size());
_remaining = map.size();
+ timeout_ms += 50 * map.size();
for (const auto & [ hostname, port ] : map) {
_checks.emplace_back(std::make_unique<PeerCheck>(*this, hostname, port, orb, timeout_ms));
- timeout_ms += 20;
}
} else {
_parentRequest->SetError(FRTE_RPC_METHOD_FAILED, "failed getting model config");