diff options
author | Harald Musum <musum@verizonmedia.com> | 2020-04-28 08:52:37 +0200 |
---|---|---|
committer | Harald Musum <musum@verizonmedia.com> | 2020-04-28 08:52:37 +0200 |
commit | ee57d7e4207c63adebd4e4b53182277822e8f402 (patch) | |
tree | 0a41b6d8c4f334ea71b922b293a7971935859fc5 /configserver | |
parent | 737fb3450c5bb253aec2c1ca8959093885593421 (diff) |
Create watcher later and log more if sessionsChanged() fails
Diffstat (limited to 'configserver')
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(); } }); |