deepti dohare created CLOUDSTACK-357: ----------------------------------------
Summary: ISOs can be deleted while still attached to a running VM, and they subsequently cannot be detached from a running VM Key: CLOUDSTACK-357 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-357 Project: CloudStack Issue Type: Bug Components: ISO Affects Versions: pre-4.0.0 Reporter: deepti dohare Priority: Minor Fix For: 4.1.0 If an ISO is attached to a running VM, and you delete that ISO via CloudStack, the ISO file is deleted from secondary storage. However, it is left attached to the running VM, and it cannot be detached while the VM is running. The exception given in the log is pasted below (full snippet attached). It appears that CloudStack is not even trying to detach it (no tasks show up on vSphere). Shutting down the VM and detaching the ISO works fine, but this is an inconvenience at the least and should be handled better. For example, ISO deletion could fail if it is attached to any VM, ISOs could be automatically detached from VMs before being deleted, or deleted ISOs could be detachable from running VMs. 2012-08-24 08:53:09,785 DEBUG [cloud.async.AsyncJobManagerImpl] (Job-Executor-29:job-98) Executing com.cloud.api.commands.DetachIsoCmd for job-98 2012-08-24 08:53:09,801 WARN [cloud.storage.StorageManagerImpl] (Job-Executor-29:job-98) Unable to find secondary storage in zone id=1 2012-08-24 08:53:09,801 WARN [cloud.vm.UserVmManagerImpl] (Job-Executor-29:job-98) Couldn't get absolute iso path 2012-08-24 08:53:09,808 ERROR [cloud.api.ApiDispatcher] (Job-Executor-29:job-98) Exception while executing DetachIsoCmd: com.cloud.utils.exception.CloudRuntimeException: Failed to detach iso at com.cloud.template.TemplateManagerImpl.detachIso(TemplateManagerImpl.java:1109) at com.cloud.event.ActionEventCallback.intercept(ActionEventCallback.java:32) at com.cloud.api.commands.DetachIsoCmd.execute(DetachIsoCmd.java:82) at com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:134) at com.cloud.async.AsyncJobManagerImpl$1.run(AsyncJobManagerImpl.java:427) 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:679) 2012-08-24 08:53:09,809 DEBUG [cloud.async.AsyncJobManagerImpl] (Job-Executor-29:job-98) Complete async job-98, jobStatus: 2, resultCode: 530, result: com.cloud.api.response.ExceptionResponse@3cb12e2b -- 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