[
https://issues.apache.org/jira/browse/CLOUDSTACK-8704?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14653280#comment-14653280
]
ASF GitHub Bot commented on CLOUDSTACK-8704:
--------------------------------------------
Github user DaanHoogland commented on a diff in the pull request:
https://github.com/apache/cloudstack/pull/656#discussion_r36167770
--- Diff: server/src/com/cloud/ha/HighAvailabilityManagerImpl.java ---
@@ -261,25 +264,21 @@ public void scheduleRestartForVmsOnHost(final HostVO
host, boolean investigate)
// send an email alert that the host is down, include VMs
HostPodVO podVO = _podDao.findById(host.getPodId());
String hostDesc = "name: " + host.getName() + " (id:" +
host.getId() + "), availability zone: " + dcVO.getName() + ", pod: " +
podVO.getName();
+ _alertMgr.sendAlert(AlertManager.AlertType.ALERT_TYPE_HOST,
host.getDataCenterId(), host.getPodId(), "Host is down, " + hostDesc,
+ "Host [" + hostDesc + "] is down." + ((sb != null) ?
sb.toString() : ""));
- _alertMgr.sendAlert(AlertManager.AlertType.ALERT_TYPE_HOST,
host.getDataCenterId(), host.getPodId(), "Host is down, " + hostDesc, "Host ["
+ hostDesc +
- "] is down." +
- ((sb != null) ? sb.toString() : ""));
-
- if (vms != null) {
- for (VMInstanceVO vm : vms) {
- if (s_logger.isDebugEnabled()) {
- s_logger.debug("Notifying HA Mgr of to restart vm " +
vm.getId() + "-" + vm.getInstanceName());
- }
- vm = _instanceDao.findByUuid(vm.getUuid());
- Long hostId = vm.getHostId();
- if (hostId != null && !hostId.equals(host.getId())) {
- s_logger.debug("VM " + vm.getInstanceName() + " is not
on down host " + host.getId() + " it is on other host "
- + hostId + " VM HA is done");
- continue;
- }
- scheduleRestart(vm, investigate);
+ for (VMInstanceVO vm : reorderedVMList) {
+ if (s_logger.isDebugEnabled()) {
+ s_logger.debug("Notifying HA Mgr of to restart vm " +
vm.getId() + "-" + vm.getInstanceName());
+ }
+ vm = _instanceDao.findByUuid(vm.getUuid());
+ Long hostId = vm.getHostId();
+ if (hostId != null && !hostId.equals(host.getId())) {
--- End diff --
no biggy for this PR, but why is this chack needed? The vms are retrieved
by the host id of the host being down in the first place (see line 240).
> Schedule restart of router VMs ahead of user VMs as part of HA
> --------------------------------------------------------------
>
> Key: CLOUDSTACK-8704
> URL: https://issues.apache.org/jira/browse/CLOUDSTACK-8704
> Project: CloudStack
> Issue Type: Bug
> Security Level: Public(Anyone can view this level - this is the
> default.)
> Components: Management Server
> Affects Versions: 4.5.0
> Reporter: Koushik Das
> Assignee: Koushik Das
> Fix For: 4.6.0
>
>
> When a host is detected as Down, HA-enabled VMs running on it are scheduled
> for restart. There may be scenarios where both user VM and corresponding VR
> is on the same host and scheduled for restart. In such cases user VM restart
> will fail in initial attempts until VR is restarted. One way to reduce these
> occurrences is to schedule VR restart ahead of user VMs.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)