summaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
authorHarald Musum <musum@oath.com>2018-02-01 09:30:52 +0100
committerHarald Musum <musum@oath.com>2018-02-01 09:30:52 +0100
commit4525e45fd12f619ee7c1a6c16ffa57ca63a5f1cd (patch)
tree5247e406929b5c10ec464c06b16ec306af6786f6 /configserver
parentea972cb60ffccf3a291bb3ddedca36105582a850 (diff)
Only try to release lock when it is held
Diffstat (limited to 'configserver')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/deploy/Deployment.java13
1 files changed, 8 insertions, 5 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 5005ddf309d..74757032eaa 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
@@ -122,10 +122,11 @@ public class Deployment implements com.yahoo.config.provision.Deployment {
long sessionId = session.getSessionId();
validateSessionStatus(session);
ActivateLock activateLock = tenant.getActivateLock();
+ boolean activateLockAcquired = false;
try {
log.log(LogLevel.DEBUG, "Trying to acquire lock " + activateLock + " for session " + sessionId);
- boolean acquired = activateLock.acquire(timeoutBudget, ignoreLockFailure);
- if ( ! acquired) {
+ activateLockAcquired = activateLock.acquire(timeoutBudget, ignoreLockFailure);
+ if ( ! activateLockAcquired) {
throw new ActivationConflictException("Did not get activate lock for session " + sessionId + " within " + timeout);
}
@@ -143,9 +144,11 @@ public class Deployment implements com.yahoo.config.provision.Deployment {
} catch (Exception e) {
throw new InternalServerException("Error activating application", e);
} finally {
- log.log(LogLevel.DEBUG, "Trying to release lock " + activateLock + " for session " + sessionId);
- activateLock.release();
- log.log(LogLevel.DEBUG, "Lock released " + activateLock + " for session " + sessionId);
+ if (activateLockAcquired) {
+ log.log(LogLevel.DEBUG, "Trying to release lock " + activateLock + " for session " + sessionId);
+ activateLock.release();
+ log.log(LogLevel.DEBUG, "Lock released " + activateLock + " for session " + sessionId);
+ }
}
log.log(LogLevel.INFO, session.logPre() + "Session " + sessionId +
" activated successfully using " +