aboutsummaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
authorHarald Musum <musum@yahooinc.com>2022-11-09 12:42:39 +0100
committerHarald Musum <musum@yahooinc.com>2022-11-09 12:42:39 +0100
commit0f87e4038bef6ef4404a38b0eab36a6f3405b959 (patch)
tree7b08be6c73d372a05eb69a933e8000d83b362d08 /configserver
parent1039fece7c1241356704800be965a5812db8df10 (diff)
Handle session or applicaton id not found when preparing based on event
Diffstat (limited to 'configserver')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ApplicationApiHandler.java2
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/session/Session.java3
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionStateWatcher.java5
3 files changed, 7 insertions, 3 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ApplicationApiHandler.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ApplicationApiHandler.java
index 60c1d75406a..fe3ec5ef4f3 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ApplicationApiHandler.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/v2/ApplicationApiHandler.java
@@ -83,7 +83,7 @@ public class ApplicationApiHandler extends SessionHandler {
try {
Map<String, PartItem> parts = new MultiPartFormParser(request).readParts();
byte[] params;
- try (InputStream part = parts.get(MULTIPART_PARAMS).data()) { params = part.readAllBytes(); } ;
+ try (InputStream part = parts.get(MULTIPART_PARAMS).data()) { params = part.readAllBytes(); }
log.log(Level.FINE, "Deploy parameters: [{0}]", new String(params, StandardCharsets.UTF_8));
prepareParams = PrepareParams.fromJson(params, tenantName, zookeeperBarrierTimeout);
PartItem appPackagePart = parts.get(MULTIPART_APPLICATION_PACKAGE);
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/Session.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/Session.java
index e4bbe120c11..62640668932 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/Session.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/Session.java
@@ -16,6 +16,7 @@ import com.yahoo.config.provision.Tags;
import com.yahoo.config.provision.TenantName;
import com.yahoo.path.Path;
import com.yahoo.transaction.Transaction;
+import com.yahoo.vespa.config.server.NotFoundException;
import com.yahoo.vespa.config.server.application.ApplicationSet;
import com.yahoo.vespa.config.server.tenant.TenantRepository;
@@ -155,7 +156,7 @@ public abstract class Session implements Comparable<Session> {
/** Returns application id read from ZooKeeper. Will throw RuntimeException if not found */
public ApplicationId getApplicationId() {
return sessionZooKeeperClient.readApplicationId()
- .orElseThrow(() -> new RuntimeException("Unable to read application id for session " + sessionId));
+ .orElseThrow(() -> new NotFoundException("Unable to read application id for session " + sessionId));
}
public Tags getTags() {
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionStateWatcher.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionStateWatcher.java
index 082743e48f9..34cebaca1fa 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionStateWatcher.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionStateWatcher.java
@@ -2,10 +2,10 @@
package com.yahoo.vespa.config.server.session;
import com.yahoo.text.Utf8;
+import com.yahoo.vespa.config.server.NotFoundException;
import com.yahoo.vespa.config.server.monitoring.MetricUpdater;
import com.yahoo.vespa.curator.Curator;
import org.apache.curator.framework.recipes.cache.ChildData;
-
import java.util.concurrent.Executor;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -80,6 +80,9 @@ public class SessionStateWatcher {
newStatus = Status.parse(Utf8.toString(node.getData()));
sessionStatusChanged(newStatus);
}
+ } catch (NotFoundException e) {
+ log.log(Level.INFO, "Session or application not found when handling session change to " + newStatus.name() + " for session " + sessionId);
+ metrics.incSessionChangeErrors();
} catch (Exception e) {
log.log(Level.WARNING, "Error handling session change to " + newStatus.name() + " for session " + sessionId, e);
metrics.incSessionChangeErrors();