From 74754f0a5625eeddfa4a074a7a98f00adc099fd5 Mon Sep 17 00:00:00 2001 From: Kelven Yang Date: Fri, 30 Mar 2012 16:41:30 -0700 Subject: [PATCH] bug 14564: Upon management server startup, for detected inactive management server (based on timestamp), perform ping-test before we really mark it as down Reviewed-By: kelven --- .../src/com/cloud/cluster/ClusterManagerImpl.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/server/src/com/cloud/cluster/ClusterManagerImpl.java b/server/src/com/cloud/cluster/ClusterManagerImpl.java index 54e2b5c7010..95c42c1a0e0 100755 --- a/server/src/com/cloud/cluster/ClusterManagerImpl.java +++ b/server/src/com/cloud/cluster/ClusterManagerImpl.java @@ -970,8 +970,17 @@ public class ClusterManagerImpl implements ClusterManager { for(ManagementServerHostVO host : inactiveList) s_logger.info("management server node msid: " + host.getMsid() + ", name: " + host.getName() + ", service ip: " + host.getServiceIP() + ", version: " + host.getVersion()); } - - this.queueNotification(new ClusterManagerMessage(ClusterManagerMessage.MessageType.nodeRemoved, inactiveList)); + + List downHostList = new ArrayList(); + for(ManagementServerHostVO host : inactiveList) { + if(!pingManagementNode(host)) { + s_logger.warn("Management node " + host.getId() + " is detected inactive by timestamp and also not pingable"); + downHostList.add(host); + } + } + + if(downHostList.size() > 0) + this.queueNotification(new ClusterManagerMessage(ClusterManagerMessage.MessageType.nodeRemoved, downHostList)); } else { s_logger.info("No inactive management server node found"); }