You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cloudstack.apache.org by "Likitha Shetty (JIRA)" <ji...@apache.org> on 2013/10/29 07:10:32 UTC

[jira] [Resolved] (CLOUDSTACK-4985) NPE while deleting old root volumes of a restored VM during storage garbage collection

     [ https://issues.apache.org/jira/browse/CLOUDSTACK-4985?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Likitha Shetty resolved CLOUDSTACK-4985.
----------------------------------------

    Resolution: Fixed

> NPE while deleting old root volumes of a restored VM during storage garbage collection
> --------------------------------------------------------------------------------------
>
>                 Key: CLOUDSTACK-4985
>                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-4985
>             Project: CloudStack
>          Issue Type: Bug
>      Security Level: Public(Anyone can view this level - this is the default.) 
>          Components: VMware
>    Affects Versions: 4.2.0
>            Reporter: Likitha Shetty
>            Assignee: Likitha Shetty
>             Fix For: 4.2.1
>
>
> When VM is restored using restoreVirtualMachine API, old root volume of the VM is marked as destroyed, a new volume is created and made the root volume of the VM .
> During the next run of storage garbage collector it tries to expunge the old root volume which has been marked as destroyed. But In case of VMware, since the VMDK files of the new root volume have replaced the VMDK files of the old root volume we see the below error,
> 2013-10-29 09:43:53,479 ERROR [storage.resource.VmwareStorageProcessor] (DirectAgent-21:10.102.192.12) delete volume failed due to Exception: java.lang.RuntimeException
> Message: Cannot delete file [de9821955e1f3e009b3f2a4529d7439c] i-2-20-VM/ROOT-20-flat.vmdk
> java.lang.RuntimeException: Cannot delete file [de9821955e1f3e009b3f2a4529d7439c] i-2-20-VM/ROOT-20-flat.vmdk
>         at com.cloud.hypervisor.vmware.util.VmwareClient.waitForTask(VmwareClient.java:411)
>         at com.cloud.hypervisor.vmware.mo.DatastoreMO.deleteFile(DatastoreMO.java:175)
>         at com.cloud.storage.resource.VmwareStorageLayoutHelper.deleteVolumeVmdkFiles(VmwareStorageLayoutHelper.java:276)
>         at com.cloud.storage.resource.VmwareStorageProcessor.deleteVolume(VmwareStorageProcessor.java:1548)
>         at com.cloud.storage.resource.StorageSubsystemCommandHandlerBase.execute(StorageSubsystemCommandHandlerBase.java:114)
>         at com.cloud.storage.resource.StorageSubsystemCommandHandlerBase.handleStorageCommands(StorageSubsystemCommandHandlerBase.java:53)
>         at com.cloud.hypervisor.vmware.resource.VmwareResource.executeRequest(VmwareResource.java:559)
>         at com.cloud.agent.manager.DirectAgentAttache$Task.run(DirectAgentAttache.java:186)
>         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$101(ScheduledThreadPoolExecutor.java:165)
>         at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:266)
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>         at java.lang.Thread.run(Thread.java:679)
> Hence in case of VMware, once the state of the old root volume has been updated to destroyed force expunge it from primary storage to avoid the garbage collector from trying to delete the new root volume. 



--
This message was sent by Atlassian JIRA
(v6.1#6144)