From 0b5d14ab650685f1daf35ea1288172ac93a6dbc8 Mon Sep 17 00:00:00 2001 From: Harald Musum Date: Tue, 1 Nov 2016 10:52:55 +0100 Subject: More logging to try to debug activation locking issue --- .../com/yahoo/vespa/config/server/deploy/Deployment.java | 14 +++++++++----- .../com/yahoo/vespa/config/server/tenant/ActivateLock.java | 5 +++-- 2 files changed, 12 insertions(+), 7 deletions(-) (limited to 'configserver') 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 4ac0385fccd..2ed16e587b6 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 @@ -129,9 +129,13 @@ public class Deployment implements com.yahoo.config.provision.Deployment { long sessionId = session.getSessionId(); validateSessionStatus(session); try { - log.log(LogLevel.INFO, "Trying to acquire lock: " + activateLock); - activateLock.acquire(timeoutBudget, ignoreLockFailure); - log.log(LogLevel.INFO, "Lock acquired: " + activateLock); + log.log(LogLevel.INFO, "Trying to acquire lock " + activateLock + " for session " + sessionId); + boolean acquired = activateLock.acquire(timeoutBudget, ignoreLockFailure); + if ( ! acquired) { + log.log(LogLevel.INFO, "Acquiring " + activateLock + " for session " + sessionId + " returned false"); + } + + log.log(LogLevel.INFO, "Lock acquired " + activateLock + " for session " + sessionId); NestedTransaction transaction = new NestedTransaction(); transaction.add(deactivateCurrentActivateNew(localSessionRepo.getActiveSession(session.getApplicationId()), session, ignoreSessionStaleFailure)); @@ -148,9 +152,9 @@ public class Deployment implements com.yahoo.config.provision.Deployment { } catch (Exception e) { throw new InternalServerException("Error activating application", e); } finally { - log.log(LogLevel.INFO, "Trying to release lock: " + activateLock); + log.log(LogLevel.INFO, "Trying to release lock " + activateLock + " for session " + sessionId); activateLock.release(); - log.log(LogLevel.INFO, "Lock released: " + activateLock); + log.log(LogLevel.INFO, "Lock released " + activateLock + " for session " + sessionId); } log.log(LogLevel.INFO, session.logPre() + "Session " + sessionId + " activated successfully using " + diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/ActivateLock.java b/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/ActivateLock.java index 634b38f6d25..c2950f82db9 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/ActivateLock.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/ActivateLock.java @@ -23,13 +23,14 @@ public class ActivateLock { this.curatorLock = new CuratorLock(curator, rootPath.append(ACTIVATE_LOCK_NAME).getAbsolute()); } - public synchronized void acquire(TimeoutBudget timeoutBudget, boolean ignoreLockError) { + public synchronized boolean acquire(TimeoutBudget timeoutBudget, boolean ignoreLockError) { try { - curatorLock.tryLock(timeoutBudget.timeLeft().toMillis(), TimeUnit.MILLISECONDS); + return curatorLock.tryLock(timeoutBudget.timeLeft().toMillis(), TimeUnit.MILLISECONDS); } catch (Exception e) { if (!ignoreLockError) { throw new RuntimeException(e); } + return false; } } -- cgit v1.2.3