aboutsummaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2020-04-28 08:52:37 +0200
committerHarald Musum <musum@verizonmedia.com>2020-04-28 08:52:37 +0200
commitee57d7e4207c63adebd4e4b53182277822e8f402 (patch)
tree0a41b6d8c4f334ea71b922b293a7971935859fc5 /configserver
parent737fb3450c5bb253aec2c1ca8959093885593421 (diff)
Create watcher later and log more if sessionsChanged() fails
Diffstat (limited to 'configserver')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/session/RemoteSessionRepo.java2
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/session/RemoteSessionStateWatcher.java8
2 files changed, 7 insertions, 3 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/RemoteSessionRepo.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/RemoteSessionRepo.java
index 6dade946e5d..6189b97eaec 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/RemoteSessionRepo.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/RemoteSessionRepo.java
@@ -145,9 +145,9 @@ public class RemoteSessionRepo extends SessionRepo<RemoteSession> {
Curator.FileCache fileCache = curator.createFileCache(sessionPath.append(ConfigCurator.SESSIONSTATE_ZK_SUBPATH).getAbsolute(), false);
fileCache.addListener(this::nodeChanged);
loadSessionIfActive(session);
- sessionStateWatchers.put(sessionId, new RemoteSessionStateWatcher(fileCache, reloadHandler, session, metrics, zkWatcherExecutor));
addSession(session);
metrics.incAddedSessions();
+ sessionStateWatchers.put(sessionId, new RemoteSessionStateWatcher(fileCache, reloadHandler, session, metrics, zkWatcherExecutor));
} catch (Exception e) {
if (componentRegistry.getConfigserverConfig().throwIfActiveSessionCannotBeLoaded()) throw e;
log.log(Level.WARNING, "Failed loading session " + sessionId + ": No config for this session can be served", e);
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/RemoteSessionStateWatcher.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/RemoteSessionStateWatcher.java
index eb4047e5fea..6a56be89c6a 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/RemoteSessionStateWatcher.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/RemoteSessionStateWatcher.java
@@ -72,13 +72,17 @@ public class RemoteSessionStateWatcher {
private void nodeChanged() {
zkWatcherExecutor.execute(() -> {
+ Session.Status currentStatus = session.getStatus();
+ Session.Status newStatus = Session.Status.NONE;
try {
ChildData node = fileCache.getCurrentData();
if (node != null) {
- sessionChanged(Session.Status.parse(Utf8.toString(node.getData())));
+ newStatus = Session.Status.parse(Utf8.toString(node.getData()));
+ sessionChanged(newStatus);
}
} catch (Exception e) {
- log.log(Level.WARNING, session.logPre() + "Error handling session changed for session " + getSessionId(), e);
+ log.log(Level.WARNING, session.logPre() + "Error handling session change from " + currentStatus.name() +
+ " to " + newStatus.name() + " for session " + getSessionId(), e);
metrics.incSessionChangeErrors();
}
});