summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorvalerijf <valerijf@yahoo-inc.com>2017-06-23 12:34:51 +0200
committervalerijf <valerijf@yahoo-inc.com>2017-06-23 12:34:51 +0200
commitcae79eb731f2d07868d9f818c05fd3118ba6f301 (patch)
treee98763feb25af59c5f0d691c11b843312d56d402
parent1049d9a5be391787292ce5d1ea9214c054c06e21 (diff)
Added comment
-rw-r--r--docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerException.java3
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java7
2 files changed, 9 insertions, 1 deletions
diff --git a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerException.java b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerException.java
index 67a8f42020b..b5b622977fb 100644
--- a/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerException.java
+++ b/docker-api/src/main/java/com/yahoo/vespa/hosted/dockerapi/DockerException.java
@@ -1,6 +1,9 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.dockerapi;
+/**
+ * This exception wraps any exception thrown by docker-java
+ */
@SuppressWarnings("serial")
public class DockerException extends RuntimeException {
public DockerException(String message) {
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java
index 5b81fa5ba7d..8169b9daee8 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java
@@ -403,9 +403,14 @@ public class NodeAgentImpl implements NodeAgent {
logger.info(e.getMessage());
addDebugMessage(e.getMessage());
} catch (DockerException e) {
+ // When a new version of node-admin app is released, there is a brief period of time when both
+ // new and old version run together. If one of them stats/stops/deletes the container it manages,
+ // the other's assumption of containerState may become incorrect. It'll then start making invalid
+ // requests, for example to start a container that is already running, the containerState should
+ // therefore be reset if we get an exception from docker.
numberOfUnhandledException++;
containerState = UNKNOWN;
- addDebugMessage("Caught a DockerExecption, resetting containerState to " + containerState);
+ logger.error("Caught a DockerExecption, resetting containerState to " + containerState, e);
} catch (Exception e) {
numberOfUnhandledException++;
logger.error("Unhandled exception, ignoring.", e);