summaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
authorHarald Musum <musum@yahoo-inc.com>2017-04-04 11:16:27 +0200
committerHarald Musum <musum@yahoo-inc.com>2017-04-04 11:16:27 +0200
commit640fc083391712169e7ccf866faf8b6707f193f1 (patch)
tree4ff0632f3c39bfb01b46958392547b830ec81cd0 /configserver
parent5901fd15c75439db4f35b984833e832a7647d594 (diff)
Handle session disappearing
Diffstat (limited to 'configserver')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/session/RemoteSessionRepo.java14
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantBuilder.java2
2 files changed, 3 insertions, 13 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 c390f4d408c..f76d378af6a 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
@@ -45,18 +45,7 @@ public class RemoteSessionRepo extends SessionRepo<RemoteSession> implements Nod
private final Curator.DirectoryCache directoryCache;
private final TenantApplications applicationRepo;
- public static RemoteSessionRepo create(Curator curator,
- RemoteSessionFactory remoteSessionFactory,
- ReloadHandler reloadHandler,
- Path sessionsPath,
- TenantApplications applicationRepo,
- MetricUpdater metrics,
- ExecutorService executorService) throws Exception {
- return new RemoteSessionRepo(curator, remoteSessionFactory, reloadHandler, sessionsPath, applicationRepo, metrics, executorService);
- }
-
/**
- * Used when the RemoteSessionRepo is set up programmatically from a Tenant, i.e. config v2
* @param curator a {@link Curator} instance.
* @param remoteSessionFactory a {@link com.yahoo.vespa.config.server.session.RemoteSessionFactory}
* @param reloadHandler a {@link com.yahoo.vespa.config.server.ReloadHandler}
@@ -64,7 +53,7 @@ public class RemoteSessionRepo extends SessionRepo<RemoteSession> implements Nod
* @param applicationRepo an {@link TenantApplications} object.
* @param executorService an {@link ExecutorService} to run callbacks from ZooKeeper.
*/
- private RemoteSessionRepo(Curator curator,
+ public RemoteSessionRepo(Curator curator,
RemoteSessionFactory remoteSessionFactory,
ReloadHandler reloadHandler,
Path sessionsPath,
@@ -253,6 +242,7 @@ public class RemoteSessionRepo extends SessionRepo<RemoteSession> implements Nod
private void synchronizeOnNew(List<Long> sessionList) {
for (long sessionId : sessionList) {
RemoteSession session = getSession(sessionId);
+ if (session == null) continue; // session might have been deleted after getting session list
log.log(LogLevel.DEBUG, session.logPre() + "Confirming upload for session " + sessionId);
session.confirmUpload();
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantBuilder.java b/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantBuilder.java
index 07b68d8ab90..20c33c4c07a 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantBuilder.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantBuilder.java
@@ -175,7 +175,7 @@ public class TenantBuilder {
private void createRemoteSessionRepo() throws Exception {
if (remoteSessionRepo == null) {
- remoteSessionRepo = RemoteSessionRepo.create(componentRegistry.getCurator(),
+ remoteSessionRepo = new RemoteSessionRepo(componentRegistry.getCurator(),
remoteSessionFactory,
reloadHandler,
sessionsPath,