From a7f9edbb6c309b85f28543cc0e58aeec1083c31d Mon Sep 17 00:00:00 2001 From: Harald Musum Date: Mon, 30 Oct 2023 07:40:52 +0100 Subject: Delete zookeeper session as well when deployment fails --- .../main/java/com/yahoo/vespa/config/server/deploy/Deployment.java | 4 ++++ .../java/com/yahoo/vespa/config/server/session/RemoteSession.java | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) 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..9c7e018545f 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. @@ -162,6 +163,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; } } -- cgit v1.2.3 From 430580ba6301391f64bc3180edcd95bcfee97236 Mon Sep 17 00:00:00 2001 From: Harald Musum Date: Tue, 31 Oct 2023 09:02:46 +0100 Subject: Don't delete session if activation fails Activation fails from other causes than something being wrong with the application (preparing the application was usually successful), so it should be possible to retry with the same session. --- .../src/main/java/com/yahoo/vespa/config/server/deploy/Deployment.java | 1 - 1 file changed, 1 deletion(-) 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 9c7e018545f..d2ed2609490 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 @@ -137,7 +137,6 @@ public class Deployment implements com.yahoo.config.provision.Deployment { waitForActivation(applicationId, timeoutBudget, activation); } catch (Exception e) { log.log(Level.FINE, "Activating session " + session.getSessionId() + " failed, deleting it"); - deleteSession(); throw e; } -- cgit v1.2.3 From 21ae78fadec5682c9151a3eacaa9d74d413b2e3d Mon Sep 17 00:00:00 2001 From: Jon Marius Venstad Date: Tue, 31 Oct 2023 10:09:28 +0100 Subject: Remove misleading logging. --- .../src/main/java/com/yahoo/vespa/config/server/deploy/Deployment.java | 1 - 1 file changed, 1 deletion(-) 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 d2ed2609490..f1dd3e725a7 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 @@ -136,7 +136,6 @@ public class Deployment implements com.yahoo.config.provision.Deployment { 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"); throw e; } -- cgit v1.2.3 From 21c4c0ec0af0e08ff355f75f3e4103e8c6ffa9dd Mon Sep 17 00:00:00 2001 From: Harald Musum Date: Tue, 31 Oct 2023 11:07:03 +0100 Subject: Simplify --- .../java/com/yahoo/vespa/config/server/deploy/Deployment.java | 9 ++------- 1 file changed, 2 insertions(+), 7 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 f1dd3e725a7..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 @@ -132,13 +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) { - throw e; - } - + Activation activation = applicationRepository.activate(session, applicationId, tenant, params.force()); + waitForActivation(applicationId, timeoutBudget, activation); restartServicesIfNeeded(applicationId); storeReindexing(applicationId, session.getMetaData().getGeneration()); -- cgit v1.2.3