From 8becb77674940069b2ebe152bb25d4c453db9852 Mon Sep 17 00:00:00 2001 From: Edison Su Date: Fri, 17 Jun 2011 17:37:27 -0400 Subject: [PATCH] try 5 times if write heartbeat failed --- .../resource/computing/KVMHAMonitor.java | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/agent/src/com/cloud/agent/resource/computing/KVMHAMonitor.java b/agent/src/com/cloud/agent/resource/computing/KVMHAMonitor.java index b143dc823b6..2db454edab7 100644 --- a/agent/src/com/cloud/agent/resource/computing/KVMHAMonitor.java +++ b/agent/src/com/cloud/agent/resource/computing/KVMHAMonitor.java @@ -67,16 +67,24 @@ public class KVMHAMonitor extends KVMHABase implements Runnable{ public void run() { synchronized (_storagePool) { for (NfsStoragePool primaryStoragePool : _storagePool.values()) { + String result = null; + for (int i = 0; i < 5; i++) { + Script cmd = new Script(_heartBeatPath, _heartBeatUpdateTimeout, s_logger); + cmd.add("-i", primaryStoragePool._poolIp); + cmd.add("-p", primaryStoragePool._poolMountSourcePath); + cmd.add("-m", primaryStoragePool._mountDestPath); + cmd.add("-h", _hostIP); + result = cmd.execute(); + if (result != null) { + s_logger.debug("write heartbeat failed: " + result + ", retry: " + i); + } else { + break; + } + } - Script cmd = new Script(_heartBeatPath, _heartBeatUpdateTimeout, s_logger); - cmd.add("-i", primaryStoragePool._poolIp); - cmd.add("-p", primaryStoragePool._poolMountSourcePath); - cmd.add("-m", primaryStoragePool._mountDestPath); - cmd.add("-h", _hostIP); - String result = cmd.execute(); if (result != null) { - s_logger.debug("write heartbeat failed: " + result + "; destroy all the vms on this host"); - cmd = new Script(_heartBeatPath, _heartBeatUpdateTimeout, s_logger); + s_logger.debug("write heartbeat failed: " + result + "; reboot the host"); + Script cmd = new Script(_heartBeatPath, _heartBeatUpdateTimeout, s_logger); cmd.add("-i", primaryStoragePool._poolIp); cmd.add("-p", primaryStoragePool._poolMountSourcePath); cmd.add("-m", primaryStoragePool._mountDestPath);