diff options
author | Jon Marius Venstad <jonmv@users.noreply.github.com> | 2020-04-28 09:37:56 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-04-28 09:37:56 +0200 |
commit | 47c22d8e71797b4b89e98f9dc063d5a462a985d2 (patch) | |
tree | 05c7681f34e108d82e4f5813dafcb70356ddb5c1 /configserver | |
parent | 1b8ce53455faabc812bcf1467af2c2af617c07b0 (diff) | |
parent | ee57d7e4207c63adebd4e4b53182277822e8f402 (diff) |
Merge pull request #13086 from vespa-engine/hmusum/create-watcher-after-session-has-been-added
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(); } }); |