Hi,

Yes you are right. We have tested issue on ACS 4.8 and issue remains on
latest stable release of ACS when we have a vm with 3 snapshots and when we
delete vm after that we could not delete these vm's some snapshots. Because
after deleting one of them we noticed that primary volume_id is lost. We
also noticed that there is a similar issue for listsnapshot api function
for CLOUDSTACK-8845 issue. We plan to update CLOUDSTACK-8845 to make same
fixes for destroysnapshot function.

S. Tolga Demir.


2016-02-24 16:30 GMT+02:00 Gabriel Beims Bräscher <[email protected]>:

> Hi Semih,
>
> I do not know much about this issue with any practical experience to give
> you an accurate shot. Checking the code (Apache CloudStack 4.6.2) I would
> presume the following.
>
> CloudStack handles a snapshot if can find a volume related to the given
> snapshot. With that, the CS is able to discover the snapshot storage pool.
>
> As in your case it could not find any volume (fails to find a "volume_id"
> at table "snapshots" or the table "volumes" does not have the volume id
> pointed by the snapshot); it tries to get the snapshot on the table
> "snapshot_store_ref", checking for the snapshot id ("snapshot_id" column)
> with the data store role of "primary" ("store_role" column).
>
> This exception (StorageSystemSnapshotStrategy.canHandle, at line 461) is
> thrown because:
> - the volume has been deleted or the database has some inconsistency that
> the CS cannot find a volume with the snapshot id;
> - there is some inconsistency in the"snapshot_store_ref" table.
>
> Hope I've helped,
> Cheers Gabriel.
>
>
> 2016-02-24 6:56 GMT-03:00 Semih Tolga DEMİR <[email protected]>:
>
> > Hi;
> >
> > I have created a new snapshot from VM01. But i have a problem after i
> > deleted the VM01. I could not delete snapshot which created from VM01.
> >
> > Error message is " Unable to determine the storage pool of the snapshot "
> >
> > But i can create new volume from this snapshot. Anybody know why this
> issue
> > happens?
> >
> > Log :
> >
> > com.cloud.utils.exception.CloudRuntimeException: Unable to determine the
> > storage pool of the snapshot
> >         at
> >
> >
> org.apache.cloudstack.storage.snapshot.StorageSystemSnapshotStrategy.canHandle(StorageSystemSnapshotStrategy.java:461)
> >         at
> >
> >
> org.apache.cloudstack.storage.helper.StorageStrategyFactoryImpl$3.canHandle(StorageStrategyFactoryImpl.java:72)
> >         at
> >
> >
> org.apache.cloudstack.storage.helper.StorageStrategyFactoryImpl$3.canHandle(StorageStrategyFactoryImpl.java:69)
> >         at
> >
> >
> org.apache.cloudstack.storage.helper.StorageStrategyFactoryImpl.bestMatch(StorageStrategyFactoryImpl.java:95)
> >         at
> >
> >
> org.apache.cloudstack.storage.helper.StorageStrategyFactoryImpl.getSnapshotStrategy(StorageStrategyFactoryImpl.java:69)
> >         at
> >
> >
> com.cloud.storage.snapshot.SnapshotManagerImpl.deleteSnapshot(SnapshotManagerImpl.java:444)
> >         at sun.reflect.GeneratedMethodAccessor722.invoke(Unknown Source)
> >         at
> >
> >
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> >         at java.lang.reflect.Method.invoke(Method.java:606)
> >         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.apache.cloudstack.network.contrail.management.EventUtils$EventInterceptor.invoke(EventUtils.java:106)
> >         at
> >
> >
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
> >         at
> >
> >
> com.cloud.event.ActionEventInterceptor.invoke(ActionEventInterceptor.java:51)
> >         at
> >
> >
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
> >         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 com.sun.proxy.$Proxy187.deleteSnapshot(Unknown Source)
> >         at
> >
> >
> org.apache.cloudstack.api.command.user.snapshot.DeleteSnapshotCmd.execute(DeleteSnapshotCmd.java:103)
> >         at com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:150)
> >         at
> >
> com.cloud.api.ApiAsyncJobDispatcher.runJob(ApiAsyncJobDispatcher.java:108)
> >         at
> >
> >
> org.apache.cloudstack.framework.jobs.impl.AsyncJobManagerImpl$5.runInContext(AsyncJobManagerImpl.java:554)
> >         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:502)
> >         at
> > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
> >         at java.util.concurrent.FutureTask.run(FutureTask.java:262)
> >         at
> >
> >
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
> >         at
> >
> >
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
> >         at java.lang.Thread.run(Thread.java:745)
> >
> > Thanks.
> >
>

Reply via email to