From 4525e45fd12f619ee7c1a6c16ffa57ca63a5f1cd Mon Sep 17 00:00:00 2001 From: Harald Musum Date: Thu, 1 Feb 2018 09:30:52 +0100 Subject: Only try to release lock when it is held --- .../com/yahoo/vespa/config/server/deploy/Deployment.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) (limited to 'configserver/src') 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 " + -- cgit v1.2.3