[ https://issues.apache.org/jira/browse/CLOUDSTACK-8118?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Likitha Shetty resolved CLOUDSTACK-8118. ---------------------------------------- Resolution: Fixed In case of vSphere 5.5 + ESXi 5.5, CS ROOT volumes created for a VM have the disk name appended with a post-fix for e.g. 000001. During migration and other volume related operations we do a disk look up in vCenter based on the CCP volume path. And during this disk look-up, we trim the snapshot post-fix that is appended to CCP volume path (if present). So when we do an exact match the look up fails because of the trimmed name. > Root volume migration fails with 'No such disk device' in case of vCenter 5.5 > setup > ----------------------------------------------------------------------------------- > > Key: CLOUDSTACK-8118 > URL: https://issues.apache.org/jira/browse/CLOUDSTACK-8118 > Project: CloudStack > Issue Type: Bug > Security Level: Public(Anyone can view this level - this is the > default.) > Affects Versions: 4.5.0 > Reporter: Likitha Shetty > Assignee: Likitha Shetty > Priority: Critical > Fix For: Future > > > +Steps to reproduce+ > 1. Setup CS with vCenter 5.5. > 2. Deploy a VM in cluster. Say ROOT volume is in primary storage P1 > 3. Add another primary storage to the same cluster (P2). > 4. Migrate ROOT volume to primary storage P2. > Migration fails with - > {noformat} > 2014-12-24 15:13:29,299 DEBUG [c.c.a.m.DirectAgentAttache] > (DirectAgent-325:ctx-0dbf332a) Seq 5-6870804181507113730: Executing request > 2014-11-24 15:13:29,299 INFO [c.c.h.v.r.VmwareResource] > (DirectAgent-325:ctx-0dbf332a 10.147.40.14, job-760/job-761, cmd: > MigrateVolumeCommand) Executing resource Mi grateVolumeCommand: > {"volumeId":106,"volumePath":"ROOT-40-000001","pool": > {"id":8,"uuid":"251a42e1-7316-30a8-ad11-bf03421f39f2","host":"10.147.28.7","path":"/export/home/manasa/priVMw2","port":2049,"type":"NetworkFilesystem"} > ,"attachedVmName":"i-2-40-VM","wait":3600} > 2014-12-24 15:13:29,422 INFO [c.c.h.v.m.VirtualMachineMO] > (DirectAgent-325:ctx-0dbf332a 10.147.40.14, job-760/job-761, cmd: > MigrateVolumeCommand) Look for disk devic e info from volume : > ROOT-40-000001.vmdk with trimmed base name: ROOT-40 > 2014-12-24 15:13:29,422 INFO [c.c.h.v.m.VirtualMachineMO] > (DirectAgent-325:ctx-0dbf332a 10.147.40.14, job-760/job-761, cmd: > MigrateVolumeCommand) Test against disk d evice, controller key: 1000, unit > number: 0 > 2014-11-24 15:13:29,422 INFO [c.c.h.v.m.VirtualMachineMO] > (DirectAgent-325:ctx-0dbf332a 10.147.40.14, job-760/job-761, cmd: > MigrateVolumeCommand) Test against disk b acking : > [f159abf3a6863ff1ad6a24d59100bdb9] vm-test/ROOT-40-000001.vmdk > 2014-12-24 15:13:29,422 ERROR [c.c.h.v.r.VmwareResource] > (DirectAgent-325:ctx-0dbf332a 10.147.40.14, job-760/job-761, cmd: > MigrateVolumeCommand) Catch Exception java. lang.Exception due to > java.lang.Exception: No such disk device: ROOT-40-000001.vmdk > java.lang.Exception: No such disk device: ROOT-40-000001.vmdk > at > com.cloud.hypervisor.vmware.resource.VmwareResource.getVirtualDiskInfo(VmwareResource.java:3366) > at > com.cloud.hypervisor.vmware.resource.VmwareResource.execute(VmwareResource.java:3319) > at > com.cloud.hypervisor.vmware.resource.VmwareResource.executeRequest(VmwareResource.java:403) > at > com.cloud.agent.manager.DirectAgentAttache$Task.runInContext(DirectAgentAttache.java:304) > at > org.apache.cloudstack.managed.context.ManagedContextRunnable$1.run(ManagedContextRunnable.java:49) > at > org.apache.cloudstack.managed.context.impl.DefaultManagedContext$1.call(DefaultManagedContext.java:56) > at > org.apache.cloudstack.managed.context.impl.DefaultManagedContext.callWithContext(DefaultManagedContext.java:103) > at > org.apache.cloudstack.managed.context.impl.DefaultManagedContext.runWithContext(DefaultManagedContext.java:53) > at > org.apache.cloudstack.managed.context.ManagedContextRunnable.run(ManagedContextRunnable.java:46) > at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) > at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) > at java.util.concurrent.FutureTask.run(FutureTask.java:166) > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178) > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) > at java.lang.Thread.run(Thread.java:722) > 2014-11-24 15:13:29,424 DEBUG [c.c.a.m.DirectAgentAttache] > (DirectAgent-325:ctx-0dbf332a) Seq 5-6870804181507113730: Response Received: > 2014-11-24 15:13:29,425 DEBUG [c.c.a.t.Request] > (DirectAgent-325:ctx-0dbf332a) Seq 5-6870804181507113730: Processing: { Ans: > , MgmtId: 6662467354709, via: 5, Ver: v1 , Flags: 110, > [{"com.cloud.agent.api.storage.MigrateVolumeAnswer":{"result":false,"details":"Catch > Exception java.lang.Exception due to java.lang.Exception: No such d isk > device: ROOT-40-000001.vmdk","wait":0}}] } > 2014-12-24 15:13:29,425 DEBUG [c.c.a.t.Request] > (Work-Job-Executor-151:ctx-1199aeb3 job-760/job-761 ctx-63b18747) Seq > 5-6870804181507113730: Received: { Ans: , MgmtI d: 6662467354709, via: 5, > Ver: v1, Flags: 110, > { MigrateVolumeAnswer } > } > 2014-11-24 15:13:29,425 DEBUG [o.a.c.s.m.AncientDataMotionStrategy] > (Work-Job-Executor-151:ctx-1199aeb3 job-760/job-761 ctx-63b18747) copy failed > com.cloud.utils.exception.CloudRuntimeException: Failed to migrate volume > org.apache.cloudstack.storage.volume.VolumeObject@58ac8d1b to storage pool > org.apache.clouds tack.storage.datastore.PrimaryDataStoreImpl@28641518 > at > org.apache.cloudstack.storage.motion.AncientDataMotionStrategy.migrateVolumeToPool(AncientDataMotionStrategy.java:390) > at > org.apache.cloudstack.storage.motion.AncientDataMotionStrategy.copyAsync(AncientDataMotionStrategy.java:430) > at > org.apache.cloudstack.storage.motion.DataMotionServiceImpl.copyAsync(DataMotionServiceImpl.java:68) > at > org.apache.cloudstack.storage.motion.DataMotionServiceImpl.copyAsync(DataMotionServiceImpl.java:73) > at > org.apache.cloudstack.storage.volume.VolumeServiceImpl.migrateVolume(VolumeServiceImpl.java:1081) > at > com.cloud.storage.VolumeApiServiceImpl.liveMigrateVolume(VolumeApiServiceImpl.java:1835) > at > com.cloud.storage.VolumeApiServiceImpl.orchestrateMigrateVolume(VolumeApiServiceImpl.java:1821) > at > com.cloud.storage.VolumeApiServiceImpl.orchestrateMigrateVolume(VolumeApiServiceImpl.java:2611) > at sun.reflect.GeneratedMethodAccessor900.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:601) > at > com.cloud.vm.VmWorkJobHandlerProxy.handleVmWorkJob(VmWorkJobHandlerProxy.java:107) > at > com.cloud.storage.VolumeApiServiceImpl.handleVmWorkJob(VolumeApiServiceImpl.java:2627) > at sun.reflect.GeneratedMethodAccessor633.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:601) > at > org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) > at > org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) > at > org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) > at $Proxy185.handleVmWorkJob(Unknown Source) > at com.cloud.vm.VmWorkJobDispatcher.runJob(VmWorkJobDispatcher.java:103) > at > org.apache.cloudstack.framework.jobs.impl.AsyncJobManagerImpl$5.runInContext(AsyncJobManagerImpl.java:536) > at > org.apache.cloudstack.managed.context.ManagedContextRunnable$1.run(ManagedContextRunnable.java:49) > at > org.apache.cloudstack.managed.context.impl.DefaultManagedContext$1.call(DefaultManagedContext.java:56) > at > org.apache.cloudstack.managed.context.impl.DefaultManagedContext.callWithContext(DefaultManagedContext.java:103) > at > org.apache.cloudstack.managed.context.impl.DefaultManagedContext.runWithContext(DefaultManagedContext.java:53) > at > org.apache.cloudstack.managed.context.ManagedContextRunnable.run(ManagedContextRunnable.java:46) > at > org.apache.cloudstack.framework.jobs.impl.AsyncJobManagerImpl$5.run(AsyncJobManagerImpl.java:493) > at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) > at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) > at java.util.concurrent.FutureTask.run(FutureTask.java:166) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) > at java.lang.Thread.run(Thread.java:722) > 2014-11-24 15:13:29,427 DEBUG [c.c.a.m.AgentAttache] > (DirectAgent-325:ctx-0dbf332a) Seq 5-6870804181507113730: No more commands > found > 2014-12-24 15:13:29,480 WARN [o.a.c.s.d.ObjectInDataStoreManagerImpl] > (Work-Job-Executor-151:ctx-1199aeb3 job-760/job-761 ctx-63b18747) Unsupported > data object (VOLU ME, > org.apache.cloudstack.storage.datastore.PrimaryDataStoreImpl@5fadb7eb), no > need to delete from object in store ref table > 2014-12-24 15:13:29,481 DEBUG [c.c.s.VolumeApiServiceImpl] > (Work-Job-Executor-151:ctx-1199aeb3 job-760/job-761 ctx-63b18747) migrate > volume failed:com.cloud.utils.exc eption.CloudRuntimeException: Failed to > migrate volume org.apache.cloudstack.storage.volume.VolumeObject@58ac8d1b to > storage pool org.apache.cloudstack.storage.datast > ore.PrimaryDataStoreImpl@28641518 > 2014-11-24 15:13:29,481 ERROR [c.c.v.VmWorkJobHandlerProxy] > (Work-Job-Executor-151:ctx-1199aeb3 job-760/job-761 ctx-63b18747) Invocation > exception, caused by: java.la ng.NullPointerException > 2014-12-24 15:13:29,481 INFO [c.c.v.VmWorkJobHandlerProxy] > (Work-Job-Executor-151:ctx-1199aeb3 job-760/job-761 ctx-63b18747) Rethrow > exception java.lang.NullPointerE xception > 2014-12-24 15:13:29,481 DEBUG [c.c.v.VmWorkJobDispatcher] > (Work-Job-Executor-151:ctx-1199aeb3 job-760/job-761) Done with run of VM work > job: com.cloud.vm.VmWorkMigrat eVolume for VM 40, job origin: 760 > 2014-12-24 15:13:29,481 ERROR [c.c.v.VmWorkJobDispatcher] > (Work-Job-Executor-151:ctx-1199aeb3 job-760/job-761) Unable to complete > AsyncJobVO > {id:761, userId: 2, accou ntId: 2, instanceType: null, instanceId: null, cmd: > com.cloud.vm.VmWorkMigrateVolume, cmdInfo: > rO0ABXNyACBjb20uY2xvdWQudm0uVm1Xb3JrTWlncmF0ZVZvbHVtZfgl82-871PmAgADSgA > KZGVzdFBvb2xJZFoAC2xpdmVNaWdyYXRlSgAIdm9sdW1lSWR4cgATY29tLmNsb3VkLnZtLlZtV29ya5-ZtlbwJWdrAgAESgAJYWNjb3VudElkSgAGdXNlcklkSgAEdm1JZEwAC2hhbmRsZXJOYW1ldAASTGphdmEvbGFuZ > > y9TdHJpbmc7eHAAAAAAAAAAAgAAAAAAAAACAAAAAAAAACh0ABRWb2x1bWVBcGlTZXJ2aWNlSW1wbAAAAAAAAAAIAQAAAAAAAABq, > cmdVersion: 0, status: IN_PROGRESS, processStatus: 0, resultCode: 0, result: > null, initMsid: 6662467354709, completeMsid: null, lastUpdated: null, > lastPolled: null, created: Mon Nov 24 15:13:27 IST 2014} > , job origin:760 > java.lang.NullPointerException > at > com.cloud.storage.VolumeApiServiceImpl.orchestrateMigrateVolume(VolumeApiServiceImpl.java:2612) > at sun.reflect.GeneratedMethodAccessor900.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:601) > at > com.cloud.vm.VmWorkJobHandlerProxy.handleVmWorkJob(VmWorkJobHandlerProxy.java:107) > at > com.cloud.storage.VolumeApiServiceImpl.handleVmWorkJob(VolumeApiServiceImpl.java:2627) > at sun.reflect.GeneratedMethodAccessor633.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:601) > at > org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) > at > org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:91) > at > org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) > at > org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204) > at $Proxy185.handleVmWorkJob(Unknown Source) > at com.cloud.vm.VmWorkJobDispatcher.runJob(VmWorkJobDispatcher.java:103) > at > org.apache.cloudstack.framework.jobs.impl.AsyncJobManagerImpl$5.runInContext(AsyncJobManagerImpl.java:536) > at > org.apache.cloudstack.managed.context.ManagedContextRunnable$1.run(ManagedContextRunnable.java:49) > at > org.apache.cloudstack.managed.context.impl.DefaultManagedContext$1.call(DefaultManagedContext.java:56) > at > org.apache.cloudstack.managed.context.impl.DefaultManagedContext.callWithContext(DefaultManagedContext.java:103) > {noformat} -- This message was sent by Atlassian JIRA (v6.3.4#6332)