aboutsummaryrefslogtreecommitdiffstats
path: root/slobrok
diff options
context:
space:
mode:
authorArne H Juul <arnej@yahooinc.com>2021-09-09 14:39:34 +0000
committerArne H Juul <arnej@yahooinc.com>2021-09-09 14:40:57 +0000
commit7a3c77db8f851021153c19b3e9ba6c87a1d6049f (patch)
treed500d25b185703123290b04dae9341cc639755e5 /slobrok
parentb88b16941da5d27754199ba2b03e75aa37a977c1 (diff)
remove ignoreFirstOk flag
* instead of ignoring one ping, restart monitoring of the mapping (without hurry flag).
Diffstat (limited to 'slobrok')
-rw-r--r--slobrok/src/vespa/slobrok/server/local_rpc_monitor_map.cpp10
-rw-r--r--slobrok/src/vespa/slobrok/server/local_rpc_monitor_map.h3
2 files changed, 3 insertions, 10 deletions
diff --git a/slobrok/src/vespa/slobrok/server/local_rpc_monitor_map.cpp b/slobrok/src/vespa/slobrok/server/local_rpc_monitor_map.cpp
index 47f604a08ec..55d0e744743 100644
--- a/slobrok/src/vespa/slobrok/server/local_rpc_monitor_map.cpp
+++ b/slobrok/src/vespa/slobrok/server/local_rpc_monitor_map.cpp
@@ -123,7 +123,6 @@ void LocalRpcMonitorMap::addLocal(const ServiceMapping &mapping,
} else {
_mappingMonitor->stop(mapping);
exists.inflight = std::move(inflight);
- exists.ignoreFirstOk = false;
_mappingMonitor->start(mapping, true);
}
return;
@@ -164,12 +163,13 @@ void LocalRpcMonitorMap::removeLocal(const ServiceMapping &mapping) {
return;
}
// also exists in consensus map, so we can't just remove it
- // instead, pretend it's down, and ignore first "up()" notification
- exists.ignoreFirstOk = true;
+ // instead, pretend it's down and delay next ping
+ _mappingMonitor->stop(mapping);
if (exists.up) {
exists.up = false;
_dispatcher.remove(mapping);
}
+ _mappingMonitor->start(mapping, false);
return;
}
@@ -255,10 +255,6 @@ void LocalRpcMonitorMap::down(const ServiceMapping& mapping) {
void LocalRpcMonitorMap::up(const ServiceMapping& mapping) {
PerService &psd = lookup(mapping);
LOG(debug, "ok: %s->%s", mapping.name.c_str(), psd.spec.c_str());
- if (psd.ignoreFirstOk) {
- psd.ignoreFirstOk = false;
- return;
- }
if (psd.inflight) {
auto target = std::move(psd.inflight);
target->doneHandler(OkState());
diff --git a/slobrok/src/vespa/slobrok/server/local_rpc_monitor_map.h b/slobrok/src/vespa/slobrok/server/local_rpc_monitor_map.h
index df5ee26d077..920d54a405f 100644
--- a/slobrok/src/vespa/slobrok/server/local_rpc_monitor_map.h
+++ b/slobrok/src/vespa/slobrok/server/local_rpc_monitor_map.h
@@ -73,7 +73,6 @@ private:
struct PerService {
bool up;
bool localOnly;
- bool ignoreFirstOk;
std::unique_ptr<AddLocalCompletionHandler> inflight;
vespalib::string spec;
};
@@ -84,7 +83,6 @@ private:
return PerService{
.up = false,
.localOnly = true,
- .ignoreFirstOk = false,
.inflight = std::move(inflight),
.spec = mapping.spec
};
@@ -94,7 +92,6 @@ private:
return PerService{
.up = false,
.localOnly = false,
- .ignoreFirstOk = false,
.inflight = {},
.spec = mapping.spec
};