apache / apache/cloudstack

Unable to download volume snapshot on VMWare

Ouverte
#13,375 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub
component:secondary-storage component:vmware Severity:Major type:bug
Langage dominant
Java
Étoiles
3.1k
Forks
1.4k
Merge moyen
6 j 19 h
PR mergées (30 j)
32

Description

### problem

Volume snapshot cannot be downloaded when using VMWare hypervisor.

### versions

Found in 4.22.1

### The steps to reproduce the bug

When you try to download a volume snapshot on a VMWare environment, you get the following error:

Image

And here is the exception in the management server log:
```
2026-06-08 14:50:39,066 ERROR [o.a.c.s.i.BaseImageStoreDriverImpl] (API-Job-Executor-36:[ctx-78500c19, job-44, ctx-8bc3173c]) (logid:14ad9b5b) Unable to create a link for entity at snapshots/2/3/1c076a50-e550-40df-ab68-76ef04c6c365/1c076a50-e550-40df-ab68-76ef04c6c365 on ssvm, Failed to download
2026-06-08 14:50:39,074 ERROR [c.c.a.ApiAsyncJobDispatcher] (API-Job-Executor-36:[ctx-78500c19, job-44]) (logid:14ad9b5b) Unexpected exception while executing org.apache.cloudstack.api.command.user.snapshot.ExtractSnapshotCmd com.cloud.utils.exception.CloudRuntimeException: Unable to create a link for entity at snapshots/2/3/1c076a50-e550-40df-ab68-76ef04c6c365/1c076a50-e550-40df-ab68-76ef04c6c365 on ssvm, Failed to download
at org.apache.cloudstack.storage.datastore.driver.CloudStackImageStoreDriverImpl.createEntityExtractUrl(CloudStackImageStoreDriverImpl.java:123)
at org.apache.cloudstack.storage.image.store.ImageStoreImpl.createEntityExtractUrl(ImageStoreImpl.java:213)
at com.cloud.storage.snapshot.SnapshotManagerImpl.extractSnapshot(SnapshotManagerImpl.java:604)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:569)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.apache.cloudstack.network.contrail.management.EventUtils$EventInterceptor.invoke(EventUtils.java:109)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)
at com.cloud.event.ActionEventInterceptor.invoke(ActionEventInterceptor.java:52)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215)
at jdk.proxy3/jdk.proxy3.$Proxy245.extractSnapshot(Unknown Source)
at org.apache.cloudstack.api.command.user.snapshot.ExtractSnapshotCmd.execute(ExtractSnapshotCmd.java:105)
at com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:173)
at com.cloud.api.ApiAsyncJobDispatcher.runJob(ApiAsyncJobDispatcher.java:110)
at org.apache.cloudstack.framework.jobs.impl.AsyncJobManagerImpl$5.runInContext(AsyncJobManagerImpl.java:698)
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:646)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:840)
```

### What to do about it?

_No response_

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par CloudStackImageStoreDriverImpl.java:123 et suivez la chaîne d’appels jusqu’à ImageStoreImpl.java:213 et SnapshotManagerImpl.java:604, en utilisant les étapes de reproduction et le journal VMware fournis. Comparez le chemin d’extraction des snapshots avec le comportement spécifique à VMware. Le travail est terminé lorsqu’un snapshot de volume peut être téléchargé avec succès dans un environnement VMware sans l’erreur d’extraction signalée.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
java
Domaine
cloud
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
Active
Clarté
Plutôt claire
Accessibilité débutants
48/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.