From f7649062a9c8a932059059f395c50dfad52cafd6 Mon Sep 17 00:00:00 2001 From: Kelven Yang Date: Thu, 29 Mar 2012 18:22:29 -0700 Subject: [PATCH] Bug 14551: add top-level catch clause to protect task/thread from stalling Reviewed-By: Kelven --- .../manager/ClusteredAgentManagerImpl.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/server/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java b/server/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java index 546a1e1d424..cbb0d6835bd 100755 --- a/server/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java +++ b/server/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java @@ -691,16 +691,19 @@ public class ClusteredAgentManagerImpl extends AgentManagerImpl implements Clust @Override public synchronized void run() { - if (!cancelled) { - startRebalanceAgents(); - if (s_logger.isInfoEnabled()) { - s_logger.info("The agent load balancer task is now being cancelled"); - } - cancelled = true; - } + try { + if (!cancelled) { + startRebalanceAgents(); + if (s_logger.isInfoEnabled()) { + s_logger.info("The agent load balancer task is now being cancelled"); + } + cancelled = true; + } + } catch(Throwable e) { + s_logger.error("Unexpected exception " + e.toString(), e); + } } } - public void startRebalanceAgents() { s_logger.debug("Management server " + _nodeId + " is asking other peers to rebalance their agents");