From b885915f1e34da857db19817a79956ed840d3af7 Mon Sep 17 00:00:00 2001 From: anthony Date: Thu, 7 Jul 2011 12:36:39 -0700 Subject: [PATCH] bug 10628: if private network and storage network use the same nic, MS will start HA very quickly within 20 seconds, it breaks heartbeat check, which require 60 seconds interval. add 60s sleep before trying to HA on VMs status 10628: resolved fixed --- .../com/cloud/ha/HighAvailabilityManagerImpl.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/server/src/com/cloud/ha/HighAvailabilityManagerImpl.java b/server/src/com/cloud/ha/HighAvailabilityManagerImpl.java index 520ab166f96..27a8edc8474 100644 --- a/server/src/com/cloud/ha/HighAvailabilityManagerImpl.java +++ b/server/src/com/cloud/ha/HighAvailabilityManagerImpl.java @@ -185,6 +185,19 @@ public class HighAvailabilityManagerImpl implements HighAvailabilityManager, Clu if (host.getType() != Host.Type.Routing) { return; } + // need to wait 60 seconds to make sure storage heartbeat check correct + long begin = System.currentTimeMillis(); + while ( true ) { + try { + Thread.sleep(60*1000); + } catch (InterruptedException e) { + } + long now = System.currentTimeMillis(); + if( (now - begin) > 60*1000) { + break; + } + } + s_logger.warn("Scheduling restart for VMs on host " + host.getId()); final List vms = _instanceDao.listByHostId(host.getId());