summaryrefslogtreecommitdiffstats
path: root/slobrok
diff options
context:
space:
mode:
authorArne Juul <arnej@verizonmedia.com>2021-08-17 10:01:50 +0000
committerArne Juul <arnej@verizonmedia.com>2021-08-17 10:01:50 +0000
commit3bf6c43312d10167aa0dd29f2992862ef7b47f53 (patch)
treef1d1e0c694fbbd6ebcf7d050385b1dfa6e2b4e0e /slobrok
parent296fe4d0e9bac2539384676e3b1ea80e21328727 (diff)
answer inflight script more places
Diffstat (limited to 'slobrok')
-rw-r--r--slobrok/src/vespa/slobrok/server/local_rpc_monitor_map.cpp8
1 files changed, 8 insertions, 0 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 3f8a3bf6747..ec522dfb563 100644
--- a/slobrok/src/vespa/slobrok/server/local_rpc_monitor_map.cpp
+++ b/slobrok/src/vespa/slobrok/server/local_rpc_monitor_map.cpp
@@ -76,6 +76,10 @@ void LocalRpcMonitorMap::add(const ServiceMapping &mapping) {
if (exists.up) {
_dispatcher.remove(exists.mapping());
}
+ if (exists.inflight) {
+ auto target = std::move(exists.inflight);
+ target->doneHandler(OkState(13, "conflict during initialization"));
+ }
_map.erase(old);
}
auto [ iter, was_inserted ] =
@@ -98,6 +102,10 @@ void LocalRpcMonitorMap::remove(const ServiceMapping &mapping) {
if (exists.up) {
_dispatcher.remove(exists.mapping());
}
+ if (exists.inflight) {
+ auto target = std::move(exists.inflight);
+ target->doneHandler(OkState(13, "removed during initialization"));
+ }
_map.erase(iter);
} else {
LOG(debug, "tried to remove non-existing mapping %s->%s",