From c4adad34c6df9281f46b9dc2227fc5f10b29aa51 Mon Sep 17 00:00:00 2001 From: abhi Date: Fri, 27 Jan 2012 20:25:48 +0530 Subject: [PATCH] bug 12849: cleanup logs, moved vm.getNameLabel(conn) before vm is removed, reverted fb277a2bd0934d13022a90565ad902318afa6f53 --- .../xen/resource/CitrixResourceBase.java | 21 +++++++++---------- .../xen/resource/XenServer56FP1Resource.java | 10 ++++----- .../xen/resource/XenServer56Resource.java | 6 +++--- .../cloud/vm/VirtualMachineManagerImpl.java | 15 ++++--------- 4 files changed, 22 insertions(+), 30 deletions(-) diff --git a/core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java b/core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java index c45033a46ca..1f6d2fedf8b 100755 --- a/core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java +++ b/core/src/com/cloud/hypervisor/xen/resource/CitrixResourceBase.java @@ -2144,7 +2144,7 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe synchronized (_cluster.intern()) { s_vms.put(_cluster, _name, vmName, State.Running); } - s_logger.debug("3. The VM " + vmName + " is in " + State.Running + " state"); + s_logger.debug("3. The VM " + vmName + " is in Running state"); } return new CheckVirtualMachineAnswer(cmd, state, vncPort); @@ -2168,7 +2168,7 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe synchronized (_cluster.intern()) { s_vms.put(_cluster, _name, vm.getName(), State.Migrating); } - s_logger.debug("4. The VM " + vm.getName() + " is in " + State.Migrating + " state"); + s_logger.debug("4. The VM " + vm.getName() + " is in Migrating state"); return new PrepareForMigrationAnswer(cmd); } catch (Exception e) { @@ -2448,7 +2448,7 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe synchronized (_cluster.intern()) { s_vms.put(_cluster, _name, vmName, State.Stopping); } - s_logger.debug("5. The VM " + vmName + " is in " + State.Stopping + " state"); + s_logger.debug("5. The VM " + vmName + " is in Stopping state"); try { Set vms = VM.getByNameLabel(conn, vmName); @@ -2514,7 +2514,7 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe synchronized (_cluster.intern()) { s_vms.put(_cluster, _name, vmName, state); } - s_logger.debug("6. The VM " + vmName + " is in " + State.Stopping + " state"); + s_logger.debug("6. The VM " + vmName + " is in " + state + " state"); } } @@ -2639,7 +2639,7 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe synchronized (_cluster.intern()) { s_vms.put(_cluster, _name, cmd.getVmName(), State.Starting); } - s_logger.debug("7. The VM " + cmd.getVmName() + " is in " + State.Starting + " state"); + s_logger.debug("7. The VM " + cmd.getVmName() + " is in Starting state"); try { Set vms = null; @@ -2665,7 +2665,7 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe } finally { synchronized (_cluster.intern()) { s_vms.put(_cluster, _name, cmd.getVmName(), State.Running); - s_logger.debug("8. The VM " + cmd.getVmName() + " is in " + State.Running + " state"); + s_logger.debug("8. The VM " + cmd.getVmName() + " is in Running state"); } } } @@ -3135,7 +3135,7 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe synchronized (_cluster.intern()) { s_vms.remove(_cluster, _name, vmName); } - s_logger.info("VM does not exist on XenServer" + _host.uuid); + s_logger.info("VM does not exist on XenServer " + vmName); return new StopAnswer(cmd, "VM does not exist", 0 , 0L, 0L); } Long bytesSent = 0L; @@ -3160,7 +3160,7 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe synchronized (_cluster.intern()) { s_vms.put(_cluster, _name, vmName, State.Stopping); } - s_logger.debug("9. The VM " + vmName + " is in " + State.Stopping + " state"); + s_logger.debug("9. The VM " + vmName + " is in Stopping state"); try { if (vmr.powerState == VmPowerState.RUNNING) { @@ -6635,11 +6635,10 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe cmd.incrStep(); if (cmd.isRightStep()){ // do full sync - HashMap> allStates=fullClusterSync(conn); - return new ClusterSyncAnswer(cmd.getClusterId(), newStates, allStates); + HashMap> allStates=fullClusterSync(conn); + return new ClusterSyncAnswer(cmd.getClusterId(), newStates, allStates); } else { - cmd.incrStep(); return new ClusterSyncAnswer(cmd.getClusterId(), newStates); } } diff --git a/core/src/com/cloud/hypervisor/xen/resource/XenServer56FP1Resource.java b/core/src/com/cloud/hypervisor/xen/resource/XenServer56FP1Resource.java index b110894e5c4..14cff676f9e 100644 --- a/core/src/com/cloud/hypervisor/xen/resource/XenServer56FP1Resource.java +++ b/core/src/com/cloud/hypervisor/xen/resource/XenServer56FP1Resource.java @@ -95,6 +95,11 @@ public class XenServer56FP1Resource extends XenServer56Resource { vdis.add(vdi); } } + //remove the VM from s_vms + synchronized (_cluster.intern()) { + s_vms.remove(_cluster, _name, vm.getNameLabel(conn)); + } + s_logger.info("Fence command for VM " + cmd.getVmName()); vm.powerStateReset(conn); vm.destroy(conn); for (VDI vdi : vdis) { @@ -106,11 +111,6 @@ public class XenServer56FP1Resource extends XenServer56Resource { } } } - //remove the VM from s_vms - synchronized (_cluster.intern()) { - s_vms.remove(_cluster, _name, vm.getNameLabel(conn)); - } - s_logger.info("Fence command for VM " + vm.getNameLabel(conn)); } return new FenceAnswer(cmd); } catch (XmlRpcException e) { diff --git a/core/src/com/cloud/hypervisor/xen/resource/XenServer56Resource.java b/core/src/com/cloud/hypervisor/xen/resource/XenServer56Resource.java index 7eb6d0ee4f4..8ffe9970ccb 100644 --- a/core/src/com/cloud/hypervisor/xen/resource/XenServer56Resource.java +++ b/core/src/com/cloud/hypervisor/xen/resource/XenServer56Resource.java @@ -222,13 +222,13 @@ public class XenServer56Resource extends CitrixResourceBase { Set vms = VM.getByNameLabel(conn, cmd.getVmName()); for (VM vm : vms) { - vm.powerStateReset(conn); - vm.destroy(conn); //remove the VM from s_vms synchronized (_cluster.intern()) { s_vms.remove(_cluster, _name, vm.getNameLabel(conn)); } - s_logger.info("Fence command for VM " + vm.getNameLabel(conn)); + s_logger.info("Fence command for VM " + cmd.getVmName()); + vm.powerStateReset(conn); + vm.destroy(conn); } return new FenceAnswer(cmd); } catch (XmlRpcException e) { diff --git a/server/src/com/cloud/vm/VirtualMachineManagerImpl.java b/server/src/com/cloud/vm/VirtualMachineManagerImpl.java index 9a20c576a71..ffa77b19504 100755 --- a/server/src/com/cloud/vm/VirtualMachineManagerImpl.java +++ b/server/src/com/cloud/vm/VirtualMachineManagerImpl.java @@ -1636,11 +1636,11 @@ public class VirtualMachineManagerImpl implements VirtualMachineManager, Listene if (host != null){ Answer answer = _agentMgr.send(host.getId(), cleanup(info.name)); if (!answer.getResult()) { - s_logger.warn("Unable to stop a VM due to " + answer.getDetails()); + s_logger.warn("Failed to update state of the VM due to " + answer.getDetails()); } } } catch (Exception e) { - s_logger.warn("Unable to stop a VM due to " + e.getMessage()); + s_logger.warn("Unable to update state of the VM due to exception " + e.getMessage()); } } } @@ -1831,15 +1831,8 @@ public class VirtualMachineManagerImpl implements VirtualMachineManager, Listene 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()); - if (vm.getHypervisorType() == HypervisorType.XenServer){ // for xenserver (bug 12875) a starting VM can be discovered as running if a disconnected host connects back - try { - stateTransitTo(vm, VirtualMachine.Event.AgentReportMigrated, hostId); - } catch (NoTransitionException e) { - s_logger.warn(e.getMessage()); - } - } - return null; + 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; } }