From d56d1f699d4d3d6e945f002b496716ccdad6a1e8 Mon Sep 17 00:00:00 2001 From: Alena Prokharchyk Date: Thu, 29 Dec 2011 16:56:04 -0800 Subject: [PATCH] bug 12790: use processDisconnect() when disconnect the agent during agent LB process status 12790: resolved fixed Conflicts: api/src/com/cloud/host/Status.java server/src/com/cloud/agent/manager/AgentManagerImpl.java server/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java --- .vmops.log.swp | Bin 147456 -> 0 bytes api/src/com/cloud/host/Status.java | 5 +- .../cloud/agent/manager/AgentManagerImpl.java | 16 ++--- .../manager/ClusteredAgentManagerImpl.java | 58 ++++++------------ 4 files changed, 32 insertions(+), 47 deletions(-) delete mode 100644 .vmops.log.swp diff --git a/.vmops.log.swp b/.vmops.log.swp deleted file mode 100644 index f2d18773fdadeac82fa53d05a6232979aaafb6c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 147456 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

7ef0_z+>dTzg~r(I(GW!2i*P# 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 Jkd%}X^FLPp_O1W` diff --git a/api/src/com/cloud/host/Status.java b/api/src/com/cloud/host/Status.java index e34cc030954..bbbf68f9fcf 100755 --- a/api/src/com/cloud/host/Status.java +++ b/api/src/com/cloud/host/Status.java @@ -21,7 +21,6 @@ import java.util.List; import java.util.Set; import com.cloud.utils.fsm.NoTransitionException; -import com.cloud.utils.fsm.StateMachine; import com.cloud.utils.fsm.StateMachine2; public enum Status { @@ -33,7 +32,7 @@ public enum Status { Alert(true, true, true), Removed(true, false, true), Error(true, false, true), - Rebalancing(false, false, false); + Rebalancing(true, false, true); private final boolean updateManagementServer; private final boolean checkManagementServer; @@ -157,7 +156,9 @@ public enum Status { s_fsm.addTransition(Status.Alert, Event.ShutdownRequested, Status.Disconnected); s_fsm.addTransition(Status.Rebalancing, Event.RebalanceFailed, Status.Disconnected); s_fsm.addTransition(Status.Rebalancing, Event.RebalanceCompleted, Status.Connecting); + s_fsm.addTransition(Status.Rebalancing, Event.ManagementServerDown, Status.Disconnected); s_fsm.addTransition(Status.Rebalancing, Event.AgentConnected, Status.Connecting); + s_fsm.addTransition(Status.Rebalancing, Event.AgentDisconnected, Status.Rebalancing); s_fsm.addTransition(Status.Error, Event.AgentConnected, Status.Connecting); } diff --git a/server/src/com/cloud/agent/manager/AgentManagerImpl.java b/server/src/com/cloud/agent/manager/AgentManagerImpl.java index 25e8703d11e..2395924b372 100755 --- a/server/src/com/cloud/agent/manager/AgentManagerImpl.java +++ b/server/src/com/cloud/agent/manager/AgentManagerImpl.java @@ -557,6 +557,7 @@ public class AgentManagerImpl implements AgentManager, HandlerFactory, Manager { return req.getSequence(); } + public void removeAgent(AgentAttache attache, Status nextState) { if (attache == null) { return; @@ -581,6 +582,13 @@ public class AgentManagerImpl implements AgentManager, HandlerFactory, Manager { if (removed != null) { removed.disconnect(nextState); } + + for (Pair monitor : _hostMonitors) { + if (s_logger.isDebugEnabled()) { + s_logger.debug("Sending Disconnect to listener: " + monitor.second().getClass().getName()); + } + monitor.second().processDisconnect(hostId, nextState); + } } protected AgentAttache notifyMonitorsOfConnection(AgentAttache attache, final StartupCommand[] cmd, boolean forRebalance) throws ConnectionException { @@ -848,12 +856,6 @@ public class AgentManagerImpl implements AgentManager, HandlerFactory, Manager { removeAgent(attache, nextStatus); disconnectAgent(host, event, _nodeId); - for (Pair monitor : _hostMonitors) { - if (s_logger.isDebugEnabled()) { - s_logger.debug("Sending Disconnect to listener: " + monitor.second().getClass().getName()); - } - monitor.second().processDisconnect(hostId, nextStatus); - } return true; } @@ -1014,7 +1016,7 @@ public class AgentManagerImpl implements AgentManager, HandlerFactory, Manager { return false; } - if (host.getStatus() != Status.Up && host.getStatus() != Status.Alert) { + if (host.getStatus() != Status.Up && host.getStatus() != Status.Alert && host.getStatus() != Status.Rebalancing) { s_logger.info("Unable to disconnect host because it is not in the correct state: host=" + hostId + "; Status=" + host.getStatus()); return false; } diff --git a/server/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java b/server/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java index cc464b07c2d..546a1e1d424 100755 --- a/server/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java +++ b/server/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java @@ -42,7 +42,6 @@ import com.cloud.agent.api.TransferAgentCommand; import com.cloud.agent.transport.Request; import com.cloud.agent.transport.Request.Version; import com.cloud.agent.transport.Response; -import com.cloud.api.commands.UpdateHostPasswordCmd; import com.cloud.cluster.ClusterManager; import com.cloud.cluster.ClusterManagerListener; import com.cloud.cluster.ClusteredAgentRebalanceService; @@ -64,18 +63,16 @@ import com.cloud.host.Status; import com.cloud.host.Status.Event; import com.cloud.resource.ServerResource; import com.cloud.storage.resource.DummySecondaryStorageResource; -import com.cloud.user.User; import com.cloud.utils.DateUtil; import com.cloud.utils.NumbersUtil; import com.cloud.utils.component.Adapters; import com.cloud.utils.component.ComponentLocator; import com.cloud.utils.component.Inject; import com.cloud.utils.concurrency.NamedThreadFactory; -import com.cloud.utils.db.DB; +import com.cloud.utils.db.SearchCriteria.Op; import com.cloud.utils.db.SearchCriteria2; import com.cloud.utils.db.SearchCriteriaService; import com.cloud.utils.db.Transaction; -import com.cloud.utils.db.SearchCriteria.Op; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.nio.Link; import com.cloud.utils.nio.Task; @@ -657,22 +654,17 @@ public class ClusteredAgentManagerImpl extends AgentManagerImpl implements Clust @Override public boolean executeRebalanceRequest(long agentId, long currentOwnerId, long futureOwnerId, Event event) throws AgentUnavailableException, OperationTimedoutException { + boolean result = false; if (event == Event.RequestAgentRebalance) { return setToWaitForRebalance(agentId, currentOwnerId, futureOwnerId); } else if (event == Event.StartAgentRebalance) { - boolean result = false; try { - result = rebalanceHost(agentId, currentOwnerId, futureOwnerId); + result = rebalanceHost(agentId, currentOwnerId, futureOwnerId); } catch (Exception e) { s_logger.warn("Unable to rebalance host id=" + agentId, e); - } finally { - if (!result) { - failRebalance(agentId); - return false; - } } } - return true; + return result; } @Override @@ -899,18 +891,17 @@ public class ClusteredAgentManagerImpl extends AgentManagerImpl implements Clust if (currentOwnerId == _nodeId) { if (!startRebalance(hostId)) { s_logger.debug("Failed to start agent rebalancing"); - failRebalance(hostId); + finishRebalance(hostId, futureOwnerId, Event.RebalanceFailed); return false; } try { Answer[] answer = sendRebalanceCommand(futureOwnerId, hostId, currentOwnerId, futureOwnerId, Event.StartAgentRebalance); if (answer == null || !answer[0].getResult()) { - s_logger.warn("Host " + hostId + " failed to connect to the management server " + futureOwnerId + " as a part of rebalance process"); result = false; } } catch (Exception ex) { - s_logger.warn("Host " + hostId + " failed to connect to the management server " + futureOwnerId + " as a part of rebalance process", ex); + s_logger.warn("Host " + hostId + " failed to connect to the management server " + futureOwnerId + " as a part of rebalance process", ex); result = false; } @@ -918,7 +909,7 @@ public class ClusteredAgentManagerImpl extends AgentManagerImpl implements Clust s_logger.debug("Successfully transfered host id=" + hostId + " to management server " + futureOwnerId); finishRebalance(hostId, futureOwnerId, Event.RebalanceCompleted); } else { - s_logger.debug("Failed to transfer host id=" + hostId + " to management server " + futureOwnerId); + s_logger.warn("Failed to transfer host id=" + hostId + " to management server " + futureOwnerId); finishRebalance(hostId, futureOwnerId, Event.RebalanceFailed); } @@ -926,13 +917,19 @@ public class ClusteredAgentManagerImpl extends AgentManagerImpl implements Clust HostVO host = _hostDao.findById(hostId); try { if (s_logger.isDebugEnabled()) { - s_logger.debug("Loading directly connected host " + host.getId() + "(" + host.getName() + ") as a part of rebalance process"); + s_logger.debug("Loading directly connected host " + host.getId() + "(" + host.getName() + ") to the management server " + _nodeId + " as a part of rebalance process"); } result = loadDirectlyConnectedHost(host, true); } catch (Exception ex) { - s_logger.warn("Unable to load directly connected host " + host.getId() + " as a part of rebalance due to exception: ", ex); + s_logger.warn("Failed to load directly connected host " + host.getId() + "(" + host.getName() + ") to the management server " + _nodeId + " as a part of rebalance process due to:", ex); result = false; } + + if (result) { + s_logger.debug("Successfully loaded directly connected host " + host.getId() + "(" + host.getName() + ") to the management server " + _nodeId + " as a part of rebalance process"); + } else { + s_logger.warn("Failed to load directly connected host " + host.getId() + "(" + host.getName() + ") to the management server " + _nodeId + " as a part of rebalance process"); + } } return result; @@ -943,7 +940,7 @@ public class ClusteredAgentManagerImpl extends AgentManagerImpl implements Clust boolean success = (event == Event.RebalanceCompleted) ? true : false; if (s_logger.isDebugEnabled()) { - s_logger.debug("Finishing rebalancing for the agent " + hostId + " with result " + success); + s_logger.debug("Finishing rebalancing for the agent " + hostId + " with event " + event); } AgentAttache attache = findAttache(hostId); @@ -986,13 +983,12 @@ public class ClusteredAgentManagerImpl extends AgentManagerImpl implements Clust try { s_logger.debug("Management server " + _nodeId + " failed to rebalance agent " + hostId); _hostTransferDao.completeAgentTransfer(hostId); - reconnect(hostId); + handleDisconnectWithoutInvestigation(findAttache(hostId), Event.RebalanceFailed); } catch (Exception ex) { s_logger.warn("Failed to reconnect host id=" + hostId + " as a part of failed rebalance task cleanup"); } } - @DB protected boolean startRebalance(final long hostId) { HostVO host = _hostDao.findById(hostId); @@ -1004,7 +1000,7 @@ public class ClusteredAgentManagerImpl extends AgentManagerImpl implements Clust synchronized (_agents) { ClusteredDirectAgentAttache attache = (ClusteredDirectAgentAttache)_agents.get(hostId); if (attache != null && attache.getQueueSize() == 0 && attache.getNonRecurringListenersSize() == 0) { - removeAgent(attache, Status.Rebalancing); + handleDisconnectWithoutInvestigation(attache, Event.StartAgentRebalance); ClusteredAgentAttache forwardAttache = (ClusteredAgentAttache)createAttache(hostId); if (forwardAttache == null) { s_logger.warn("Unable to create a forward attache for the host " + hostId + " as a part of rebalance process"); @@ -1021,17 +1017,8 @@ public class ClusteredAgentManagerImpl extends AgentManagerImpl implements Clust } return false; } - } - - Transaction txn = Transaction.currentTxn(); - txn.start(); - - s_logger.debug("Updating host id=" + hostId + " with the status " + Status.Rebalancing); - host.setManagementServerId(null); - _agentMgr.agentStatusTransitTo(host, Event.StartAgentRebalance, _nodeId); + } _hostTransferDao.startAgentTransfer(hostId); - txn.commit(); - return true; } @@ -1063,19 +1050,14 @@ public class ClusteredAgentManagerImpl extends AgentManagerImpl implements Clust @Override public void run() { - boolean result = false; try { if (s_logger.isDebugEnabled()) { s_logger.debug("Rebalancing host id=" + hostId); } - result = rebalanceHost(hostId, currentOwnerId, futureOwnerId); + rebalanceHost(hostId, currentOwnerId, futureOwnerId); } catch (Exception e) { s_logger.warn("Unable to rebalance host id=" + hostId, e); - } finally { - if (!result) { - failRebalance(hostId); - } StackMaid.current().exitCleanup(); } }