Srikanteswararao Talluri created CLOUDSTACK-4008:
----------------------------------------------------
Summary: deleting snapshot of a delete volume is failing
Key: CLOUDSTACK-4008
URL: https://issues.apache.org/jira/browse/CLOUDSTACK-4008
Project: CloudStack
Issue Type: Bug
Security Level: Public (Anyone can view this level - this is the default.)
Components: Snapshot
Affects Versions: 4.2.0
Environment: KVM
Reporter: Srikanteswararao Talluri
Priority: Critical
Fix For: 4.2.0
Steps to reproduce:
==============
1. create a volume and attach it to a VM.
2. take some snapshots(say 3 snapshots) of the volume
3. detach and delete the volume created in step1.
4. try to delete one of the snapshot created in step 2.
Observation: it is causing NPE but deleting the db entry.
===START=== 10.101.255.7 -- GET
command=deleteSnapshot&id=aae5135d-3098-4f8a-9d7e-f8ab24217041&response=json&sessionkey=%2Ffgph8eXl%2BeIzsdyOBQZp9jAEBQ%3D&_=1375352221449
2013-08-01 21:11:32,696 DEBUG [cloud.async.AsyncJobManagerImpl]
(catalina-exec-6:null) submit async job-88 = [
bc793db0-5b35-4996-b615-ca00dc6e3669 ], details: AsyncJobVO {id:88, userId: 2,
accountId: 2, sessionKey: null, instanceType: Snapshot, instanceId: 5, cmd:
org.apache.cloudstack.api.command.user.snapshot.DeleteSnapshotCmd,
cmdOriginator: null, cmdInfo:
{"response":"json","id":"aae5135d-3098-4f8a-9d7e-f8ab24217041","sessionkey":"/fgph8eXl+eIzsdyOBQZp9jAEBQ\u003d","cmdEventType":"SNAPSHOT.DELETE","ctxUserId":"2","httpmethod":"GET","_":"1375352221449","ctxAccountId":"2","ctxStartEventId":"329"},
cmdVersion: 0, callbackType: 0, callbackAddress: null, status: 0,
processStatus: 0, resultCode: 0, result: null, initMsid: 7541090156566,
completeMsid: null, lastUpdated: null, lastPolled: null, created: null}
2013-08-01 21:11:32,700 DEBUG [cloud.api.ApiServlet] (catalina-exec-6:null)
===END=== 10.101.255.7 -- GET
command=deleteSnapshot&id=aae5135d-3098-4f8a-9d7e-f8ab24217041&response=json&sessionkey=%2Ffgph8eXl%2BeIzsdyOBQZp9jAEBQ%3D&_=1375352221449
2013-08-01 21:11:32,704 DEBUG [cloud.async.AsyncJobManagerImpl]
(Job-Executor-88:job-88 = [ bc793db0-5b35-4996-b615-ca00dc6e3669 ]) Executing
org.apache.cloudstack.api.command.user.snapshot.DeleteSnapshotCmd for job-88 =
[ bc793db0-5b35-4996-b615-ca00dc6e3669 ]
2013-08-01 21:11:32,748 DEBUG [storage.snapshot.XenserverSnapshotStrategy]
(Job-Executor-88:job-88 = [ bc793db0-5b35-4996-b615-ca00dc6e3669 ]) delete
snapshot chain for snapshot: 5
2013-08-01 21:11:32,752 DEBUG [storage.snapshot.XenserverSnapshotStrategy]
(Job-Executor-88:job-88 = [ bc793db0-5b35-4996-b615-ca00dc6e3669 ]) Snapshot: 5
doesn't have children, so it's ok to delete it and its parents
2013-08-01 21:11:32,775 DEBUG [storage.image.BaseImageStoreDriverImpl]
(Job-Executor-88:job-88 = [ bc793db0-5b35-4996-b615-ca00dc6e3669 ]) Unable to
destoy SNAPSHOT: 5
java.lang.NullPointerException
at
org.apache.cloudstack.storage.volume.VolumeDataFactoryImpl.getVolume(VolumeDataFactoryImpl.java:78)
at
org.apache.cloudstack.storage.snapshot.SnapshotObject.getBaseVolume(SnapshotObject.java:121)
at
org.apache.cloudstack.storage.to.SnapshotObjectTO.<init>(SnapshotObjectTO.java:43)
at
org.apache.cloudstack.storage.snapshot.SnapshotObject.getTO(SnapshotObject.java:244)
at
org.apache.cloudstack.storage.image.BaseImageStoreDriverImpl.deleteAsync(BaseImageStoreDriverImpl.java:236)
at
org.apache.cloudstack.storage.snapshot.SnapshotServiceImpl.deleteSnapshot(SnapshotServiceImpl.java:369)
at
org.apache.cloudstack.storage.snapshot.XenserverSnapshotStrategy.deleteSnapshotChain(XenserverSnapshotStrategy.java:161)
at
org.apache.cloudstack.storage.snapshot.XenserverSnapshotStrategy.deleteSnapshot(XenserverSnapshotStrategy.java:213)
at
com.cloud.storage.snapshot.SnapshotManagerImpl.deleteSnapshot(SnapshotManagerImpl.java:494)
at
com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:125)
at
org.apache.cloudstack.api.command.user.snapshot.DeleteSnapshotCmd.execute(DeleteSnapshotCmd.java:96)
at com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:158)
at
com.cloud.async.AsyncJobManagerImpl$1.run(AsyncJobManagerImpl.java:531)
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:1146)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:679)
2013-08-01 21:11:32,776 DEBUG [storage.snapshot.SnapshotServiceImpl]
(Job-Executor-88:job-88 = [ bc793db0-5b35-4996-b615-ca00dc6e3669 ]) delete
snapshot failedjava.lang.NullPointerException
2013-08-01 21:11:32,804 DEBUG [storage.snapshot.XenserverSnapshotStrategy]
(Job-Executor-88:job-88 = [ bc793db0-5b35-4996-b615-ca00dc6e3669 ]) delete
snapshot failed:
com.cloud.utils.exception.CloudRuntimeException: java.lang.NullPointerException
at
org.apache.cloudstack.storage.snapshot.SnapshotServiceImpl.deleteSnapshot(SnapshotServiceImpl.java:375)
at
org.apache.cloudstack.storage.snapshot.XenserverSnapshotStrategy.deleteSnapshotChain(XenserverSnapshotStrategy.java:161)
at
org.apache.cloudstack.storage.snapshot.XenserverSnapshotStrategy.deleteSnapshot(XenserverSnapshotStrategy.java:213)
at
com.cloud.storage.snapshot.SnapshotManagerImpl.deleteSnapshot(SnapshotManagerImpl.java:494)
at
com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:125)
at
org.apache.cloudstack.api.command.user.snapshot.DeleteSnapshotCmd.execute(DeleteSnapshotCmd.java:96)
at com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:158)
at
com.cloud.async.AsyncJobManagerImpl$1.run(AsyncJobManagerImpl.java:531)
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:1146)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:679)
2013-08-01 21:11:32,874 DEBUG [cloud.async.AsyncJobManagerImpl]
(Job-Executor-88:job-88 = [ bc793db0-5b35-4996-b615-ca00dc6e3669 ]) Complete
async job-88 = [ bc793db0-5b35-4996-b615-ca00dc6e3669 ], jobStatus: 1,
resultCode: 0, result:
org.apache.cloudstack.api.response.SuccessResponse@25ca9a9a
2013-08-01 21:11:32,886 DEBUG [cloud.async.AsyncJobManagerImpl]
(Job-Executor-88:job-88 = [ bc793db0-5b35-4996-b615-ca00dc6e3669 ]) Done
executing org.apache.cloudstack.api.command.user.snapshot.DeleteSnapshotCmd for
job-88 = [ bc793db0-5b35-4996-b615-ca00dc6e3669 ]
2013-08-01 21:11:34,951 DEBUG [agent.manager.AgentManagerImpl]
(AgentManager-Handler-13:null) SeqA 3-1482: Processing Seq 3-1482: { Cmd ,
MgmtId: -1, via: 3, Ver: v1, Flags: 11,
[{"com.cloud.agent.api.ConsoleProxyLoadReportCommand":{"_proxyVmId":2,"_loadInfo":"{\n
\"connections\": []\n}","wait":0}}] }
2013-08-01 21:11:34,964 DEBUG [agent.manager.AgentManagerImpl]
(AgentManager-Handler-13:null) SeqA 3-1482: Sending Seq 3-1482: { Ans: ,
MgmtId: 7541090156566, via: 3, Ver: v1, Flags: 100010,
[{"com.cloud.agent.api.AgentControlAnswer":{"result":true,"wait":0}}] }
2013-08-01 21:11:39,951 DEBUG [agent.manager.AgentManagerImpl]
(AgentManager-Handler-15:null) SeqA 3-1483: Processing Seq 3-1483: { Cmd ,
MgmtId: -1, via: 3, Ver: v1, Flags: 11,
[{"com.cloud.agent.api.ConsoleProxyLoadReportCommand":{"_proxyVmId":2,"_loadInfo":"{\n
\"connections\": []\n}","wait":0}}] }
2013-08-01 21:11:39,963 DEBUG [agent.manager.AgentManagerImpl]
(AgentManager-Handler-15:null) SeqA 3-1483: Sending Seq 3-1483: { Ans: ,
MgmtId: 7541090156566, via: 3, Ver: v1, Flags: 100010,
[{"com.cloud.agent.api.AgentControlAnswer":{"result":true,"wait":0}}] }
2013-08-01 21:11:42,398 DEBUG [agent.manager.AgentManagerImpl]
(AgentManager-Handler-1:null) Ping from 2
--
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