summaryrefslogtreecommitdiffstats
path: root/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/Deployment.java
diff options
context:
space:
mode:
authorJon Marius Venstad <jonmv@users.noreply.github.com>2019-04-29 16:53:17 +0200
committerGitHub <noreply@github.com>2019-04-29 16:53:17 +0200
commitc89391322a685d44f8d3df82ee23e108abfa8a06 (patch)
treecadc027a654e36632426ef631c3f3143758afd39 /configserver/src/main/java/com/yahoo/vespa/config/server/deploy/Deployment.java
parentb23bab182bcf5383d63837e0bb558ef4194cb2a4 (diff)
Revert "Revert "Synchronise access to session status of an application, and eliminate…""
Diffstat (limited to 'configserver/src/main/java/com/yahoo/vespa/config/server/deploy/Deployment.java')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/deploy/Deployment.java14
1 files changed, 8 insertions, 6 deletions
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 01bb4e2dc76..b6e1d1873c9 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
@@ -119,9 +119,9 @@ public class Deployment implements com.yahoo.config.provision.Deployment {
prepare();
TimeoutBudget timeoutBudget = new TimeoutBudget(clock, timeout);
- long sessionId = session.getSessionId();
- validateSessionStatus(session);
- try (Lock lock = tenant.getSessionLock(timeout)) {
+
+ try (Lock lock = tenant.getApplicationRepo().lock(session.getApplicationId())) {
+ validateSessionStatus(session);
NestedTransaction transaction = new NestedTransaction();
transaction.add(deactivateCurrentActivateNew(applicationRepository.getActiveSession(session.getApplicationId()), session, ignoreSessionStaleFailure));
@@ -129,13 +129,15 @@ public class Deployment implements com.yahoo.config.provision.Deployment {
hostProvisioner.get().activate(transaction, session.getApplicationId(), session.getAllocatedHosts().getHosts());
}
transaction.commit();
- session.waitUntilActivated(timeoutBudget);
} catch (RuntimeException e) {
throw e;
} catch (Exception e) {
throw new InternalServerException("Error activating application", e);
}
- log.log(LogLevel.INFO, session.logPre() + "Session " + sessionId +
+
+ session.waitUntilActivated(timeoutBudget);
+
+ log.log(LogLevel.INFO, session.logPre() + "Session " + session.getSessionId() +
" activated successfully using " +
( hostProvisioner.isPresent() ? hostProvisioner.get() : "no host provisioner" ) +
". Config generation " + session.getMetaData().getGeneration());
@@ -153,7 +155,7 @@ public class Deployment implements com.yahoo.config.provision.Deployment {
/** Exposes the session of this for testing only */
public LocalSession session() { return session; }
-
+
private long validateSessionStatus(LocalSession localSession) {
long sessionId = localSession.getSessionId();
if (Session.Status.NEW.equals(localSession.getStatus())) {