diff --git a/agent/src/com/cloud/agent/Agent.java b/agent/src/com/cloud/agent/Agent.java index e3510c41c32..f39d0e78961 100644 --- a/agent/src/com/cloud/agent/Agent.java +++ b/agent/src/com/cloud/agent/Agent.java @@ -394,15 +394,17 @@ public class Agent implements HandlerFactory, IAgentControl { } while (inProgress > 0); _connection.stop(); - while (_connection.isStartup()) { - _shell.getBackoffAlgorithm().waitBeforeRetry(); - } try { _connection.cleanUp(); } catch (final IOException e) { s_logger.warn("Fail to clean up old connection. " + e); } + + while (_connection.isStartup()) { + _shell.getBackoffAlgorithm().waitBeforeRetry(); + } + _connection = new NioClient("Agent", _shell.getHost(), _shell.getPort(), _shell.getWorkers(), this); do { s_logger.info("Reconnecting..."); diff --git a/utils/src/main/java/com/cloud/utils/nio/NioConnection.java b/utils/src/main/java/com/cloud/utils/nio/NioConnection.java index ddc84cf18c8..249f512d9c9 100644 --- a/utils/src/main/java/com/cloud/utils/nio/NioConnection.java +++ b/utils/src/main/java/com/cloud/utils/nio/NioConnection.java @@ -88,6 +88,7 @@ public abstract class NioConnection implements Callable { init(); } catch (final ConnectException e) { s_logger.warn("Unable to connect to remote: is there a server running on port " + _port); + return; } catch (final IOException e) { s_logger.error("Unable to initialize the threads.", e); throw new NioConnectionException(e.getMessage(), e);