Sangeetha Hariharan created CLOUDSTACK-3510:
-----------------------------------------------

             Summary: Xenserver - NFS - Not able to download Volume second time 
for the same volume.
                 Key: CLOUDSTACK-3510
                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-3510
             Project: CloudStack
          Issue Type: Bug
      Security Level: Public (Anyone can view this level - this is the default.)
          Components: Management Server
    Affects Versions: 4.2.0
         Environment: Build from 4.2
            Reporter: Sangeetha Hariharan
            Priority: Critical
             Fix For: 4.2.0


Xenserver - NFS - Not able to download Volume second time for the same volume.

Steps to reproduce the problem:
Set up - Xenserver hosts with NFS as secondary storage

Deploy a VM.
Stop the VM.

Download root Volume.
This operation succeeds.
User is provided with the download URL which can be used to download the 
volumes.

Now attempt to download the root volume again.
This operation fails with the following error message
"Failed to copy the volume from the source primary storage pool to secondary 
storage"

2013-07-12 14:21:15,821 DEBUG [cloud.api.ApiServlet] (catalina-exec-8:null) 
===START===  10.217.252.55 -- GET  command=extractVolume&id=02b36465-541c-45ba-
b508-dbc53fbe0fe1&zoneid=705d69ac-fbc5-4f40-b62d-443606a088d4&mode=HTTP_DOWNLOAD&response=json&sessionkey=9vSrcgX%2FCmGDlEVYju75eRVFXWw%3D&_=1373664075475
2013-07-12 14:21:15,967 DEBUG [cloud.async.AsyncJobManagerImpl] 
(catalina-exec-8:null) submit async job-237, details: AsyncJobVO {id:237, 
userId: 2, accoun
tId: 2, sessionKey: null, instanceType: Volume, instanceId: 69, cmd: 
org.apache.cloudstack.api.command.user.volume.ExtractVolumeCmd, cmdOriginator: 
null, c
mdInfo: 
{"response":"json","id":"02b36465-541c-45ba-b508-dbc53fbe0fe1","sessionkey":"9vSrcgX/CmGDlEVYju75eRVFXWw\u003d","cmdEventType":"VOLUME.EXTRACT","ct
xUserId":"2","zoneid":"705d69ac-fbc5-4f40-b62d-443606a088d4","httpmethod":"GET","_":"1373664075475","ctxAccountId":"2","ctxStartEventId":"945","mode":"HTTP
_DOWNLOAD"}, cmdVersion: 0, callbackType: 0, callbackAddress: null, status: 0, 
processStatus: 0, resultCode: 0, result: null, initMsid: 7200344900649, comp
leteMsid: null, lastUpdated: null, lastPolled: null, created: null}
2013-07-12 14:21:15,968 DEBUG [cloud.api.ApiServlet] (catalina-exec-8:null) 
===END===  10.217.252.55 -- GET  command=extractVolume&id=02b36465-541c-45ba-b5
08-dbc53fbe0fe1&zoneid=705d69ac-fbc5-4f40-b62d-443606a088d4&mode=HTTP_DOWNLOAD&response=json&sessionkey=9vSrcgX%2FCmGDlEVYju75eRVFXWw%3D&_=1373664075475
2013-07-12 14:21:15,969 DEBUG [cloud.async.AsyncJobManagerImpl] 
(Job-Executor-107:job-237) Executing 
org.apache.cloudstack.api.command.user.volume.ExtractV
olumeCmd for job-237
2013-07-12 14:21:16,295 DEBUG [storage.volume.VolumeObject] 
(Job-Executor-107:job-237) Failed to update state
com.cloud.utils.fsm.NoTransitionException: Unable to transition to a new state 
from Ready via CreateOnlyRequested
        at com.cloud.utils.fsm.StateMachine2.getNextState(StateMachine2.java:83)
        at com.cloud.utils.fsm.StateMachine2.transitTo(StateMachine2.java:100)
        at 
org.apache.cloudstack.storage.datastore.ObjectInDataStoreManagerImpl.update(ObjectInDataStoreManagerImpl.java:242)
        at 
org.apache.cloudstack.storage.volume.VolumeObject.processEventOnly(VolumeObject.java:306)
        at 
org.apache.cloudstack.storage.volume.VolumeServiceImpl.copyVolumeFromPrimaryToImage(VolumeServiceImpl.java:659)
        at 
org.apache.cloudstack.storage.volume.VolumeServiceImpl.copyVolume(VolumeServiceImpl.java:715)
        at 
com.cloud.storage.VolumeManagerImpl.extractVolume(VolumeManagerImpl.java:2779)
        at 
com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:125)
        at 
org.apache.cloudstack.api.command.user.volume.ExtractVolumeCmd.execute(ExtractVolumeCmd.java:130)
        at com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:155)
       at 
com.cloud.async.AsyncJobManagerImpl$1.run(AsyncJobManagerImpl.java:513)
        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)
2013-07-12 14:21:16,296 ERROR [storage.volume.VolumeServiceImpl] 
(Job-Executor-107:job-237) failed to copy volume to image store
com.cloud.utils.exception.CloudRuntimeException: Failed to update 
state:com.cloud.utils.fsm.NoTransitionException: Unable to transition to a new 
state from
 Ready via CreateOnlyRequested
        at 
org.apache.cloudstack.storage.volume.VolumeObject.processEventOnly(VolumeObject.java:309)
        at 
org.apache.cloudstack.storage.volume.VolumeServiceImpl.copyVolumeFromPrimaryToImage(VolumeServiceImpl.java:659)
        at 
org.apache.cloudstack.storage.volume.VolumeServiceImpl.copyVolume(VolumeServiceImpl.java:715)
        at 
com.cloud.storage.VolumeManagerImpl.extractVolume(VolumeManagerImpl.java:2779)
        at 
com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:125)
        at 
org.apache.cloudstack.api.command.user.volume.ExtractVolumeCmd.execute(ExtractVolumeCmd.java:130)
        at com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:155)
        at 
com.cloud.async.AsyncJobManagerImpl$1.run(AsyncJobManagerImpl.java:513)
        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)
2013-07-12 14:21:16,304 DEBUG [agent.transport.Request] 
(Job-Executor-107:job-237) Seq 3-1722418519: Sending  { Cmd , MgmtId: 
7200344900649, via: 3, Ver: v1, Flags: 100011, 
[{"org.apache.cloudstack.storage.command.DeleteCommand":{"data":{"org.apache.cloudstack.storage.to.VolumeObjectTO":{"uuid":"02b36465-541c-45ba-b508-dbc53fbe0fe1","volumeType":"ROOT","dataStore":{"com.cloud.agent.api.to.NfsTO":{"_url":"nfs://10.223.110.232/export/home/sangeetha/xen/secondary/","_role":"Image"}},"name":"ROOT-69","size":21474836480,"path":"volumes/2/69/d7dabce1-6510-490d-b5a7-e6970993a6df.vhd","volumeId":69,"vmName":"i-2-69-VM","accountId":2,"format":"VHD","id":69}},"wait":0}}]
 }
2013-07-12 14:21:16,847 DEBUG [agent.transport.Request] 
(AgentManager-Handler-7:null) Seq 3-1722418519: Processing:  { Ans: , MgmtId: 
7200344900649, via: 3, Ver: v1, Flags: 10, 
[{"com.cloud.agent.api.Answer":{"result":true,"wait":0}}] }
2013-07-12 14:21:16,847 DEBUG [agent.transport.Request] 
(Job-Executor-107:job-237) Seq 3-1722418519: Received:  { Ans: , MgmtId: 
7200344900649, via: 3, Ver: v1, Flags: 10, { Answer } }
2013-07-12 14:21:16,875 WARN  [storage.datastore.ObjectInDataStoreManagerImpl] 
(Job-Executor-107:job-237) Unsupported data object (VOLUME, 
org.apache.cloudstack.storage.datastore.PrimaryDataStoreImpl@5a94a370)
2013-07-12 14:21:16,880 ERROR [cloud.async.AsyncJobManagerImpl] 
(Job-Executor-107:job-237) Unexpected exception while executing 
org.apache.cloudstack.api.command.user.volume.ExtractVolumeCmd
com.cloud.utils.exception.CloudRuntimeException: Failed to copy the volume from 
the source primary storage pool to secondary storage.
        at 
com.cloud.storage.VolumeManagerImpl.extractVolume(VolumeManagerImpl.java:2793)
        at 
com.cloud.utils.component.ComponentInstantiationPostProcessor$InterceptorDispatcher.intercept(ComponentInstantiationPostProcessor.java:125)
        at 
org.apache.cloudstack.api.command.user.volume.ExtractVolumeCmd.execute(ExtractVolumeCmd.java:130)
        at com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:155)
        at 
com.cloud.async.AsyncJobManagerImpl$1.run(AsyncJobManagerImpl.java:513)
        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)
2013-07-12 14:21:16,880 DEBUG [cloud.async.AsyncJobManagerImpl] 
(Job-Executor-107:job-237) Complete async job-237, jobStatus: 2, resultCode: 
530, result: Error Code: 530 Error text: Failed to copy the volume from the 
source primary storage pool to secondary storage.
2013-07-12 14:21:19,020 DEBUG [cloud.api.ApiServlet] (catalina-exec-6:null) 
===START===  10.217.252.55 -- GET  
command=queryAsyncJobResult&jobId=a645cebf-deb5-4d47-8c7a-680fb6658cb0&response=json&sessionkey=9vSrcgX%2FCmGDlEVYju75eRVFXWw%3D&_=1373664078745
2013-07-12 14:21:19,027 DEBUG [cloud.async.AsyncJobManagerImpl] 
(catalina-exec-6:null) Async job-237 completed


Note - As part of this operation we see the previously downloaded volume in the 
secondary store - secondary/volumes/<account id>/<volume id> gets cleared.

When the another attempt to download volume is done it succeeds.


--
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

Reply via email to