[ 
https://issues.apache.org/jira/browse/CLOUDSTACK-8829?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15203823#comment-15203823
 ] 

ASF GitHub Bot commented on CLOUDSTACK-8829:
--------------------------------------------

Github user maneesha-p commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/797#discussion_r56786342
  
    --- Diff: 
engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java ---
    @@ -1776,19 +1773,26 @@ private void orchestrateStorageMigration(final 
String vmUuid, final StoragePool
                     // If VM was cold migrated between clusters belonging to 
two different VMware DCs,
                     // unregister the VM from the source host and cleanup the 
associated VM files.
                     if (vm.getHypervisorType().equals(HypervisorType.VMware)) {
    +                    Long srcClusterId = null;
    +                    Long srcHostId = vm.getHostId() != null ? 
vm.getHostId() : vm.getLastHostId();
    +                    if (srcHostId != null) {
    +                        HostVO srcHost = _hostDao.findById(srcHostId);
    +                        srcClusterId = srcHost.getClusterId();
    +                    }
    +
                         final Long destClusterId = destPool.getClusterId();
                         if (srcClusterId != null && destClusterId != null && ! 
srcClusterId.equals(destClusterId)) {
                             final String srcDcName = 
_clusterDetailsDao.getVmwareDcName(srcClusterId);
                             final String destDcName = 
_clusterDetailsDao.getVmwareDcName(destClusterId);
                             if (srcDcName != null && destDcName != null && 
!srcDcName.equals(destDcName)) {
                                 s_logger.debug("Since VM's storage was 
successfully migrated across VMware Datacenters, unregistering VM: " + 
vm.getInstanceName() +
    -                                    " from source host: " + 
srcHost.getId());
    +                                    " from source host: " + srcHostId);
                                 final UnregisterVMCommand uvc = new 
UnregisterVMCommand(vm.getInstanceName());
                                 uvc.setCleanupVmFiles(true);
                                 try {
    -                                _agentMgr.send(srcHost.getId(), uvc);
    +                                _agentMgr.send(srcHostId, uvc);
                                 } catch (final Exception e) {
    -                                throw new CloudRuntimeException("Failed to 
unregister VM: " + vm.getInstanceName() + " from source host: " + 
srcHost.getId() +
    +                                throw new CloudRuntimeException("Failed to 
unregister VM: " + vm.getInstanceName() + " from source host: " + srcHostId +
    --- End diff --
    
    Thanks for pointing out.Updated.


> Consecutive cold migration fails
> --------------------------------
>
>                 Key: CLOUDSTACK-8829
>                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-8829
>             Project: CloudStack
>          Issue Type: Bug
>      Security Level: Public(Anyone can view this level - this is the 
> default.) 
>            Reporter: Maneesha
>            Assignee: Maneesha
>
> The following scenario is broken:
> 1.    Deploy VM and stop it
> 2.    Migrate stopped VM to a different primary storage pool
> 3.    Again migrate the same VM to another/same storage pool. Fails with NPE.
> java.lang.NullPointerException
>         at 
> com.cloud.vm.VirtualMachineManagerImpl.orchestrateStorageMigration(VirtualMachineManagerImpl.java:1745)
>         at 
> com.cloud.vm.VirtualMachineManagerImpl.orchestrateStorageMigration(VirtualMachineManagerImpl.java:4716)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>         at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>         at java.lang.reflect.Method.invoke(Method.java:606)
>         at 
> com.cloud.vm.VmWorkJobHandlerProxy.handleVmWorkJob(VmWorkJobHandlerProxy.java:107)
>         at 
> com.cloud.vm.VirtualMachineManagerImpl.handleVmWorkJob(VirtualMachineManagerImpl.java:4723)
>         at 
> com.cloud.vm.VmWorkJobDispatcher.runJob(VmWorkJobDispatcher.java:103)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to