diff options
Diffstat (limited to 'configserver')
5 files changed, 19 insertions, 15 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java b/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java index 41ec7626049..bc9fa96f943 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java @@ -677,7 +677,11 @@ public class ApplicationRepository implements com.yahoo.config.provision.Deploye tenantRepository.getAllTenants().forEach(tenant -> sessionsPerTenant.put(tenant, tenant.getSessionRepository().getLocalSessions())); Set<ApplicationId> applicationIds = new HashSet<>(); - sessionsPerTenant.values().forEach(sessionList -> sessionList.forEach(s -> applicationIds.add(s.getApplicationId()))); + sessionsPerTenant.values() + .forEach(sessionList -> sessionList.stream() + .map(Session::getApplicationId) + .filter(Objects::nonNull) + .forEach(applicationIds::add)); Map<ApplicationId, Long> activeSessions = new HashMap<>(); applicationIds.forEach(applicationId -> { diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/Deployment.java b/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/Deployment.java index def629f738c..466138c817f 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/Deployment.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/Deployment.java @@ -134,13 +134,13 @@ public class Deployment implements com.yahoo.config.provision.Deployment { try (ActionTimer timer = applicationRepository.timerFor(session.getApplicationId(), "deployment.activateMillis")) { TimeoutBudget timeoutBudget = new TimeoutBudget(clock, timeout); + validateSessionStatus(session); ApplicationId applicationId = session.getApplicationId(); if ( ! timeoutBudget.hasTimeLeft()) throw new RuntimeException("Timeout exceeded when trying to activate '" + applicationId + "'"); RemoteSession previousActiveSession; try (Lock lock = tenant.getApplicationRepo().lock(applicationId)) { - validateSessionStatus(session); NestedTransaction transaction = new NestedTransaction(); previousActiveSession = applicationRepository.getActiveSession(applicationId); transaction.add(deactivateCurrentActivateNew(previousActiveSession, session, ignoreSessionStaleFailure)); diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClient.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClient.java index 807629a2148..906490ad8ba 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClient.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClient.java @@ -150,8 +150,8 @@ public class SessionZooKeeperClient { } public ApplicationId readApplicationId() { - if ( ! configCurator.exists(applicationIdPath())) return ApplicationId.defaultId(); - return ApplicationId.fromSerializedForm(configCurator.getData(applicationIdPath())); + String idString = configCurator.getData(applicationIdPath()); + return idString == null ? null : ApplicationId.fromSerializedForm(idString); } void writeApplicationPackageReference(FileReference applicationPackageReference) { diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/session/LocalSessionTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/session/LocalSessionTest.java index c1377ae439b..496ded249fa 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/session/LocalSessionTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/session/LocalSessionTest.java @@ -62,7 +62,7 @@ public class LocalSessionTest { .configServerDBDir(temporaryFolder.newFolder().getAbsolutePath()) .build()) .build(); - tenantRepository = new TenantRepository(componentRegistry, false); + tenantRepository = new TenantRepository(componentRegistry); tenantRepository.addTenant(tenantName); configCurator = ConfigCurator.create(curator); } @@ -126,12 +126,14 @@ public class LocalSessionTest { } zkClient.write(Collections.singletonMap(new Version(0, 0, 0), new MockFileRegistry())); TenantApplications applications = tenantRepository.getTenant(tenantName).getApplicationRepo(); - applications.createApplication(zkc.readApplicationId()); - return new LocalSession(tenant, sessionId, FilesApplicationPackage.fromFile(testApp), zkc, applications); + applications.createApplication(applicationId()); + LocalSession session = new LocalSession(tenant, sessionId, FilesApplicationPackage.fromFile(testApp), zkc, applications); + session.setApplicationId(applicationId()); + return session; } private void doPrepare(LocalSession session) { - doPrepare(session, new PrepareParams.Builder().build()); + doPrepare(session, new PrepareParams.Builder().applicationId(applicationId()).build()); } private void doPrepare(LocalSession session, PrepareParams params) { @@ -140,8 +142,11 @@ public class LocalSessionTest { } private DeployHandlerLogger getLogger() { - return new DeployHandlerLogger(new Slime().get(), false, - new ApplicationId.Builder().tenant(tenantName).applicationName("testapp").build()); + return new DeployHandlerLogger(new Slime().get(), false, applicationId()); + } + + private ApplicationId applicationId() { + return new ApplicationId.Builder().tenant(tenantName).applicationName("testapp").build(); } } diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClientTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClientTest.java index 5633ec2c5f8..1d7df7acfd0 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClientTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClientTest.java @@ -85,11 +85,6 @@ public class SessionZooKeeperClientTest { } @Test - public void require_that_default_name_is_returned_if_node_does_not_exist() { - assertThat(createSessionZKClient("3").readApplicationId().application().value(), is("default")); - } - - @Test public void require_that_create_time_can_be_written_and_read() { SessionZooKeeperClient zkc = createSessionZKClient("3"); curator.delete(Path.fromString("3")); |