aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Musum <musum@yahooinc.com>2023-10-31 11:29:15 +0100
committerGitHub <noreply@github.com>2023-10-31 11:29:15 +0100
commitca64a43230a7142abce630dfabdaa06ebdf0ce15 (patch)
tree0f6f7b1f0f3b621db5bd4f7007836306e46a013e
parente0599fe2c287e37a96453d8abeb6e942f76ac019 (diff)
parent21c4c0ec0af0e08ff355f75f3e4103e8c6ffa9dd (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.java15
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/session/RemoteSession.java2
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;
}
}