[ 
https://issues.apache.org/jira/browse/CLOUDSTACK-3416?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Sanjeev N closed CLOUDSTACK-3416.
---------------------------------


Works fine.
                
> [Object_Store_Refactor] Extract Volume multiple times on the same volume 
> results in failure
> -------------------------------------------------------------------------------------------
>
>                 Key: CLOUDSTACK-3416
>                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-3416
>             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: latest build from master branch
>            Reporter: Sanjeev N
>            Assignee: Min Chen
>             Fix For: 4.2.0
>
>         Attachments: management-server.rar
>
>
> [Object_Store_Refactor] Extract Volume multiple times on the same volume 
> results in failure
> Steps to Reproduce:
> ================
> 1.Bring up CS in advanced zone with s3 as the storage provider
> 2.create a guest vm using the default cent OS template
> 3.Create a small disk, attach to a vm and detach it
> 4.Extract volume
> This is copy the volume from primary to secondary cache storage and then to 
> s3 and will provide presinged URL to download the volume.
> 5.Repeat step 4 couple of times
> Extract volume fails with following exceptions:
> 2013-07-09 11:27:46,950 DEBUG [cloud.api.ApiServlet] (catalina-exec-25:null) 
> ===START===  10.146.0.20 -- GET  
> command=extractVolume&id=9972a317-8f8f-49d3-b91a-7eac8c193b20&zoneid=2c82a035-11cf-4303-9724-e35129dbb07e&mode=HTTP_DOWNLOAD&response=json&sessionkey=kRXjQ8Ib6WEGFB8nHLPghtXoVxs%3D&_=1373363953955
> 2013-07-09 11:27:46,991 DEBUG [cloud.async.AsyncJobManagerImpl] 
> (catalina-exec-25:null) submit async job-17, details: AsyncJobVO {id:17, 
> userId: 2, accountId: 2, sessionKey: null, instanceType: Volume, instanceId: 
> 6, cmd: org.apache.cloudstack.api.command.user.volume.ExtractVolumeCmd, 
> cmdOriginator: null, cmdInfo: 
> {"response":"json","id":"9972a317-8f8f-49d3-b91a-7eac8c193b20","sessionkey":"kRXjQ8Ib6WEGFB8nHLPghtXoVxs\u003d","cmdEventType":"VOLUME.EXTRACT","ctxUserId":"2","zoneid":"2c82a035-11cf-4303-9724-e35129dbb07e","httpmethod":"GET","_":"1373363953955","ctxAccountId":"2","ctxStartEventId":"68","mode":"HTTP_DOWNLOAD"},
>  cmdVersion: 0, callbackType: 0, callbackAddress: null, status: 0, 
> processStatus: 0, resultCode: 0, result: null, initMsid: 6615759585382, 
> completeMsid: null, lastUpdated: null, lastPolled: null, created: null}
> 2013-07-09 11:27:46,995 DEBUG [cloud.api.ApiServlet] (catalina-exec-25:null) 
> ===END===  10.146.0.20 -- GET  
> command=extractVolume&id=9972a317-8f8f-49d3-b91a-7eac8c193b20&zoneid=2c82a035-11cf-4303-9724-e35129dbb07e&mode=HTTP_DOWNLOAD&response=json&sessionkey=kRXjQ8Ib6WEGFB8nHLPghtXoVxs%3D&_=1373363953955
> 2013-07-09 11:27:46,998 DEBUG [cloud.async.AsyncJobManagerImpl] 
> (Job-Executor-17:job-17) Executing 
> org.apache.cloudstack.api.command.user.volume.ExtractVolumeCmd for job-17
> 2013-07-09 11:27:47,066 DEBUG [storage.volume.VolumeObject] 
> (Job-Executor-17:job-17) Failed to update state
> com.cloud.utils.fsm.NoTransitionException: Unable to transition to a new 
> state from Creating 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:2776)
>         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:514)
>         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-09 11:27:47,074 ERROR [storage.volume.VolumeServiceImpl] 
> (Job-Executor-17:job-17) 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 Creating 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:2776)
>         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:514)
>         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-09 11:27:47,094 DEBUG [agent.transport.Request] 
> (Job-Executor-17:job-17) Seq 3-847708178: Sending  { Cmd , MgmtId: 
> 6615759585382, via: 3, Ver: v1, Flags: 100011, 
> [{"org.apache.cloudstack.storage.command.DeleteCommand":{"data":{"org.apache.cloudstack.storage.to.VolumeObjectTO":{"uuid":"9972a317-8f8f-49d3-b91a-7eac8c193b20","volumeType":"DATADISK","dataStore":{"com.cloud.agent.api.to.S3TO":{"id":2,"uuid":"0e7a46b0-c9fd-4d7f-9f68-3e346a2bcd35","accessKey":"9M7I6JPYZHDNLG43TWCD","secretKey":"KL7IAVYcYO8URicgniNjeCmL7k3tYKMpJRXNHw==","endPoint":"10.147.29.57:8080","bucketName":"imagestore","httpsFlag":false,"created":"Jul
>  9, 2013 7:59:12 
> AM","enableRRS":false}},"name":"test","size":5368709120,"path":"volumes/2/6/727c5651-56b4-466c-993b-9384c29b9c41.vhd","volumeId":6,"accountId":2,"format":"VHD","id":6}},"wait":0}}]
>  }
> 2013-07-09 11:27:47,201 DEBUG [agent.transport.Request] 
> (AgentManager-Handler-1:null) Seq 3-847708178: Processing:  { Ans: , MgmtId: 
> 6615759585382, via: 3, Ver: v1, Flags: 10, 
> [{"com.cloud.agent.api.Answer":{"result":true,"details":"Deleted volume %s 
> from bucket imagestore.","wait":0}}] }
> 2013-07-09 11:27:47,202 DEBUG [agent.transport.Request] 
> (Job-Executor-17:job-17) Seq 3-847708178: Received:  { Ans: , MgmtId: 
> 6615759585382, via: 3, Ver: v1, Flags: 10, { Answer } }
> 2013-07-09 11:27:47,261 WARN  
> [storage.datastore.ObjectInDataStoreManagerImpl] (Job-Executor-17:job-17) 
> Unsupported data object (VOLUME, 
> org.apache.cloudstack.storage.datastore.PrimaryDataStoreImpl@6f941e86)
> 2013-07-09 11:27:47,271 ERROR [cloud.async.AsyncJobManagerImpl] 
> (Job-Executor-17:job-17) 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:2790)
>         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:514)
>         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-09 11:27:47,272 DEBUG [cloud.async.AsyncJobManagerImpl] 
> (Job-Executor-17:job-17) Complete async job-17, jobStatus: 2, resultCode: 
> 530, result: Error Code: 530 Error text: Failed to copy the volume from the 
> source primary storage pool to secondary storage.
> Since there was a failure in extractVolumecmd, it executed DeleteCommand and 
> deleted the volume which got copied to S3 after step4:
> 2013-07-09 11:27:47,094 DEBUG [agent.transport.Request] 
> (Job-Executor-17:job-17) Seq 3-847708178: Sending  { Cmd , MgmtId: 
> 6615759585382, via: 3, Ver: v1, Flags: 100011, 
> [{"org.apache.cloudstack.storage.command.DeleteCommand":{"data":{"org.apache.cloudstack.storage.to.VolumeObjectTO":{"uuid":"9972a317-8f8f-49d3-b91a-7eac8c193b20","volumeType":"DATADISK","dataStore":{"com.cloud.agent.api.to.S3TO":{"id":2,"uuid":"0e7a46b0-c9fd-4d7f-9f68-3e346a2bcd35","accessKey":"9M7I6JPYZHDNLG43TWCD","secretKey":"KL7IAVYcYO8URicgniNjeCmL7k3tYKMpJRXNHw==","endPoint":"10.147.29.57:8080","bucketName":"imagestore","httpsFlag":false,"created":"Jul
>  9, 2013 7:59:12 
> AM","enableRRS":false}},"name":"test","size":5368709120,"path":"volumes/2/6/727c5651-56b4-466c-993b-9384c29b9c41.vhd","volumeId":6,"accountId":2,"format":"VHD","id":6}},"wait":0}}]
>  }
> 2013-07-09 11:27:47,201 DEBUG [agent.transport.Request] 
> (AgentManager-Handler-1:null) Seq 3-847708178: Processing:  { Ans: , MgmtId: 
> 6615759585382, via: 3, Ver: v1, Flags: 10, 
> [{"com.cloud.agent.api.Answer":{"result":true,"details":"Deleted volume %s 
> from bucket imagestore.","wait":0}}] }
> At this stage volume was deleted only from s3 but not from NFS cache storage.
> Following are the cloud DB entries:
> mysql> select * from volumes where id=6;
> +----+------------+-----------+---------+--------------+-------------+-----------+------+--------------------------------------+------------+--------+--------------------------------------+--------+----------------+------------+---------+-------------+-----------+------------------+-------------+----------------------------+-------------+---------------------+----------+---------------------+---------+-------+------------+--------------+-----------+----------------+--------+----------+----------+
> | id | account_id | domain_id | pool_id | last_pool_id | instance_id | 
> device_id | name | uuid                                 | size       | folder 
> | path                                 | pod_id | data_center_id | iscsi_name 
> | host_ip | volume_type | pool_type | disk_offering_id | template_id | 
> first_snapshot_backup_uuid | recreatable | created             | attached | 
> updated             | removed | state | chain_info | update_count | disk_type 
> | display_volume | format | min_iops | max_iops |
> +----+------------+-----------+---------+--------------+-------------+-----------+------+--------------------------------------+------------+--------+--------------------------------------+--------+----------------+------------+---------+-------------+-----------+------------------+-------------+----------------------------+-------------+---------------------+----------+---------------------+---------+-------+------------+--------------+-----------+----------------+--------+----------+----------+
> |  6 |          2 |         1 |       1 |         NULL |        NULL |      
> NULL | test | 9972a317-8f8f-49d3-b91a-7eac8c193b20 | 5368709120 | NULL   | 
> 30608de5-9cdb-48c8-a321-509f9b993afb |   NULL |              1 | NULL       | 
> NULL    | DATADISK    | NULL      |                3 |        NULL | NULL     
>                   |           0 | 2013-07-09 15:13:22 | NULL     | 2013-07-09 
> 15:27:47 | NULL    | Ready | NULL       |           10 | NULL      |          
>     1 | VHD    |     NULL |     NULL |
> +----+------------+-----------+---------+--------------+-------------+-----------+------+--------------------------------------+------------+--------+--------------------------------------+--------+----------------+------------+---------+-------------+-----------+------------------+-------------+----------------------------+-------------+---------------------+----------+---------------------+---------+-------+------------+--------------+-----------+----------------+--------+----------+----------+
> 1 row in set (0.01 sec)
> mysql> select * from volume_store_ref;
> +----+----------+-----------+---------+---------------------+---------------------+--------+--------------+------------+---------------+----------------+----------+-----------+------------+------------------------------------------------------+------+-----------+-----------+--------------+---------+---------------------+
> | id | store_id | volume_id | zone_id | created             | last_updated    
>     | job_id | download_pct | size       | physical_size | download_state | 
> checksum | error_str | local_path | install_path                              
>            | url  | state     | destroyed | update_count | ref_cnt | updated  
>            |
> +----+----------+-----------+---------+---------------------+---------------------+--------+--------------+------------+---------------+----------------+----------+-----------+------------+------------------------------------------------------+------+-----------+-----------+--------------+---------+---------------------+
> |  2 |        1 |         6 |       0 | 2013-07-09 15:19:57 | 2013-07-09 
> 15:25:03 | NULL   |            0 | 5368709120 |             0 | NULL          
>  | NULL     | NULL      | NULL       | 
> volumes/2/6/727c5651-56b4-466c-993b-9384c29b9c41.vhd | NULL | Ready     |     
>     0 |            2 |       0 | 2013-07-09 15:20:16 |
> |  3 |        2 |         6 |       0 | 2013-07-09 15:25:02 | NULL            
>     | NULL   |            0 |    2114048 |             0 | NULL           | 
> NULL     | NULL      | NULL       | 
> volumes/2/6/727c5651-56b4-466c-993b-9384c29b9c41.vhd | NULL | Creating  |     
>     0 |            1 |       0 | 2013-07-09 15:25:03 |
> |  5 |        2 |         6 |       0 | 2013-07-09 15:27:47 | NULL            
>     | NULL   |            0 |          0 |             0 | NULL           | 
> NULL     | NULL      | NULL       | volumes/2/6                               
>            | NULL | Allocated |         0 |            0 |       0 | NULL     
>            |
> +----+----------+-----------+---------+---------------------+---------------------+--------+--------------+------------+---------------+----------------+----------+-----------+------------+------------------------------------------------------+------+-----------+-----------+--------------+---------+---------------------+
> 3 rows in set (0.00 sec)

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