From cae79eb731f2d07868d9f818c05fd3118ba6f301 Mon Sep 17 00:00:00 2001 From: valerijf Date: Fri, 23 Jun 2017 12:34:51 +0200 Subject: Added comment --- .../java/com/yahoo/vespa/hosted/dockerapi/DockerException.java | 3 +++ .../com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java | 7 ++++++- 2 files changed, 9 insertions(+), 1 deletion(-) 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); -- cgit v1.2.3