diff options
author | Harald Musum <musum@yahooinc.com> | 2023-10-31 11:29:15 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-31 11:29:15 +0100 |
commit | ca64a43230a7142abce630dfabdaa06ebdf0ce15 (patch) | |
tree | 0f6f7b1f0f3b621db5bd4f7007836306e46a013e | |
parent | e0599fe2c287e37a96453d8abeb6e942f76ac019 (diff) | |
parent | 21c4c0ec0af0e08ff355f75f3e4103e8c6ffa9dd (diff) |
Merge pull request #29147 from vespa-engine/hmusum/delete-session-when-deployment-fails
Delete zookeeper session as well when deployment fails
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/deploy/Deployment.java | 15 | ||||
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/session/RemoteSession.java | 2 |
2 files changed, 7 insertions, 10 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 c7877c23323..ae1215fd5aa 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 @@ -40,6 +40,7 @@ import java.util.logging.Logger; import java.util.stream.Collectors; import static com.yahoo.vespa.config.server.application.ConfigConvergenceChecker.ServiceListResponse; +import static com.yahoo.vespa.config.server.session.Session.Status.DELETE; /** * The process of deploying an application. @@ -131,15 +132,8 @@ public class Deployment implements com.yahoo.config.provision.Deployment { TimeoutBudget timeoutBudget = params.getTimeoutBudget(); timeoutBudget.assertNotTimedOut(() -> "Timeout exceeded when trying to activate '" + applicationId + "'"); - try { - Activation activation = applicationRepository.activate(session, applicationId, tenant, params.force()); - waitForActivation(applicationId, timeoutBudget, activation); - } catch (Exception e) { - log.log(Level.FINE, "Activating session " + session.getSessionId() + " failed, deleting it"); - deleteSession(); - throw e; - } - + Activation activation = applicationRepository.activate(session, applicationId, tenant, params.force()); + waitForActivation(applicationId, timeoutBudget, activation); restartServicesIfNeeded(applicationId); storeReindexing(applicationId, session.getMetaData().getGeneration()); @@ -162,6 +156,9 @@ public class Deployment implements com.yahoo.config.provision.Deployment { private void deleteSession() { sessionRepository().deleteLocalSession(session.getSessionId()); + try (var transaction = sessionRepository().createSetStatusTransaction(session, DELETE)) { + transaction.commit(); + } } private SessionRepository sessionRepository() { diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/RemoteSession.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/RemoteSession.java index da5169cf493..5105bcbdc28 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/RemoteSession.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/RemoteSession.java @@ -55,7 +55,7 @@ public class RemoteSession extends Session { @Override public String toString() { - return super.toString() + ",application set=" + applicationVersions; + return super.toString() + ", application versions=" + applicationVersions; } } |