From 93ca66f09cd119384bc7a36442043f0644a0292c Mon Sep 17 00:00:00 2001 From: Andrew Azores Date: Thu, 31 Aug 2023 14:54:02 -0400 Subject: [PATCH] forget about non-connectable targets if they get LOST in the meantime --- .../io/cryostat/discovery/DiscoveryStorage.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/main/java/io/cryostat/discovery/DiscoveryStorage.java b/src/main/java/io/cryostat/discovery/DiscoveryStorage.java index a20332064e..8f646039d0 100644 --- a/src/main/java/io/cryostat/discovery/DiscoveryStorage.java +++ b/src/main/java/io/cryostat/discovery/DiscoveryStorage.java @@ -82,7 +82,7 @@ public class DiscoveryStorage extends AbstractPlatformClientVerticle { private final WebClient http; private final Logger logger; private long pluginPruneTimerId = -1L; - private long targetRetryTimeId = -1L; + private long targetRetryTimerId = -1L; private final Map, ConnectionAttemptRecord> nonConnectableTargets = new ConcurrentHashMap<>(); @@ -133,7 +133,7 @@ public void start(Promise future) throws Exception { .onFailure(future::fail); this.pluginPruneTimerId = getVertx().setPeriodic(pingPeriod.toMillis(), i -> pingPrune()); - this.targetRetryTimeId = + this.targetRetryTimerId = getVertx().setPeriodic(2_000, i -> checkNonConnectedTargetJvmIds()); this.credentialsManager .get() @@ -176,6 +176,16 @@ public void start(Promise future) throws Exception { tde.getServiceRef(), entry.getKey().getTarget())); break; + case LOST: + var it = nonConnectableTargets.entrySet().iterator(); + while (it.hasNext()) { + var entry = it.next(); + if (Objects.equals( + tde.getServiceRef(), entry.getKey().getKey().getTarget())) { + it.remove(); + } + } + break; default: break; } @@ -247,7 +257,7 @@ private void testNonConnectedTargets(Predicate> predicat @Override public void stop() { getVertx().cancelTimer(pluginPruneTimerId); - getVertx().cancelTimer(targetRetryTimeId); + getVertx().cancelTimer(targetRetryTimerId); } private CompositeFuture pingPrune() {