You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cloudstack.apache.org by "venkata swamybabu budumuru (JIRA)" <ji...@apache.org> on 2013/05/17 17:11:16 UTC

[jira] [Created] (CLOUDSTACK-2562) [VMWARE] As per the code, currently CloudStack fails to program PF/NAT/LB rules when VR is restarted by VMWARE HA

venkata swamybabu budumuru created CLOUDSTACK-2562:
------------------------------------------------------

             Summary: [VMWARE] As per the code, currently CloudStack fails to program PF/NAT/LB rules when VR is restarted by VMWARE HA
                 Key: CLOUDSTACK-2562
                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-2562
             Project: CloudStack
          Issue Type: Bug
      Security Level: Public (Anyone can view this level - this is the default.)
          Components: Management Server
    Affects Versions: 4.2.0
         Environment: commit # b3e9b2a5dc0439cad60058d693cba9d3c714af70
            Reporter: venkata swamybabu budumuru
            Assignee: Sateesh Chodapuneedi
             Fix For: 4.2.0


When VR is restarted out-of-band by VMware HA then there is no way currently CloudStack can reprogram PF/NAT/LB rules.

Here is the code snippet from .//server/src/com/cloud/vm/VirtualMachineManagerImpl.java

        if (trackExternalChange) {
            if (serverState == State.Starting) {
                if (vm.getHostId() != null && vm.getHostId() != hostId) {
                    s_logger.info("CloudStack is starting VM on host " + vm.getHostId() + ", but status report comes from a different host " + hostId + ", skip status sync for vm: "
                            + vm.getInstanceName());
                    return null;
                }
            }

            if (serverState == State.Running) {
                try {
                    //
                    // we had a bug that sometimes VM may be at Running State
                    // but host_id is null, we will cover it here.
                    // means that when CloudStack DB lost of host information,
                    // we will heal it with the info reported from host
                    // 
                    if (vm.getHostId() == null || hostId != vm.getHostId()) {
                        if (s_logger.isDebugEnabled()) {
                            s_logger.debug("detected host change when VM " + vm + " is at running state, VM could be live-migrated externally from host " + vm.getHostId() + " to host " + hostId);
                        }

                        stateTransitTo(vm, VirtualMachine.Event.AgentReportMigrated, hostId);
                    }  
                } catch (NoTransitionException e) {
                    s_logger.warn(e.getMessage());
                }
            }   
        }


--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira