[ 
https://issues.apache.org/jira/browse/CLOUDSTACK-7775?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14214691#comment-14214691
 ] 

Justyn Shull commented on CLOUDSTACK-7775:
------------------------------------------

This is also an issue for us.   The errors/logs we get are almost the same as 
in this ticket, but please let me know if there is any more information needed. 
 

In the meantime, I was able to workaround this error by editing 
/etc/xapi.d/plugins/s3xen on the hypervisor, and adding this line to the s3 
function:
{code}
filename = "%s.vhd" % filename.replace('/dev/VG_XenStorage-', 
'/var/run/sr-mount/').replace('VHD-', ‘')
{code}

It just changes the filename to what it would be set to if isISCSI returned 
false in 
*plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/XenServerStorageProcessor.java*
 around line 1070.   The IsISCSI function returns true for SRType.LVM which is 
what I’d be using with local storage - is that intended?

> Xen S3 backed secondary storage - local volume snapshots fail
> -------------------------------------------------------------
>
>                 Key: CLOUDSTACK-7775
>                 URL: https://issues.apache.org/jira/browse/CLOUDSTACK-7775
>             Project: CloudStack
>          Issue Type: Bug
>      Security Level: Public(Anyone can view this level - this is the 
> default.) 
>    Affects Versions: 4.4.0, 4.3.1
>            Reporter: CS User
>
> Xenserver, 6.01 latest hotfixes, cloudstack 4.3 and 4.4. Snapshot of volume 
> on local disk, to be transferred to S3. When the xenhost attemps the PUT 
> request, the snapshot is no longer present and so the request fails. 
> Snapshots of volumes stored on Primary storage work fine and are uploaded to 
> the S3 backed secondary storage as expected. 
> Also tried upgrading the hosts to Xenserver 6.2, however it still has the 
> same issue. On another environment with cloudstack 4.3, with Xenserver 6.01 
> (no recent xen hotfixes and no S3 backed secondary storage), local snapshots 
> work fine. 
> We see this in the management server logs:
> (I have removed references to any hosts from the logs and amended IP's)
> {noformat}
> 2014-10-21 12:36:55,332 WARN  [c.c.h.x.r.CitrixResourceBase] 
> (DirectAgent-235:ctx-55338794) Task failed! Task record:                 
> uuid: c520bf5a-1bc1-57ca-f9d0-960179118118
>            nameLabel: Async.host.call_plugin
>      nameDescription:
>    allowedOperations: []
>    currentOperations: {}
>              created: Tue Oct 21 12:36:56 BST 2014
>             finished: Tue Oct 21 12:36:56 BST 2014
>               status: failure
>           residentOn: com.xensource.xenapi.Host@1dd85be5
>             progress: 1.0
>                 type: <none/>
>               result:
>            errorInfo: [XENAPI_PLUGIN_FAILURE, getSnapshotSize, 
> CommandException, 2]
>          otherConfig: {}
>            subtaskOf: com.xensource.xenapi.Task@aaf13f6f
>             subtasks: []
> 2014-10-21 12:36:55,386 WARN  [c.c.h.x.r.CitrixResourceBase] 
> (DirectAgent-235:ctx-55338794) callHostPlugin failed for cmd: getSnapshotSize 
> with args snapshotUuid: 0cef2f39-03e8-458d-bf19-7a2294c40ac7, isISCSI: true, 
> primaryStorageSRUuid: b1802ff2-5a63-d1e7-04de-dea7ba7eab27,  due to Task 
> failed! Task record:                 uuid: 
> c520bf5a-1bc1-57ca-f9d0-960179118118
>            nameLabel: Async.host.call_plugin
>      nameDescription:
>    allowedOperations: []
>    currentOperations: {}
>              created: Tue Oct 21 12:36:56 BST 2014
>             finished: Tue Oct 21 12:36:56 BST 2014
>               status: failure
>           residentOn: com.xensource.xenapi.Host@1dd85be5
>             progress: 1.0
>                 type: <none/>
>               result:
>            errorInfo: [XENAPI_PLUGIN_FAILURE, getSnapshotSize, 
> CommandException, 2]
>          otherConfig: {}
>            subtaskOf: com.xensource.xenapi.Task@aaf13f6f
>             subtasks: []
> Task failed! Task record:                 uuid: 
> c520bf5a-1bc1-57ca-f9d0-960179118118
>            nameLabel: Async.host.call_plugin
>      nameDescription:
>    allowedOperations: []
>    currentOperations: {}
>              created: Tue Oct 21 12:36:56 BST 2014
>             finished: Tue Oct 21 12:36:56 BST 2014
>               status: failure
>           residentOn: com.xensource.xenapi.Host@1dd85be5
>             progress: 1.0
>                 type: <none/>
>               result:
>            errorInfo: [XENAPI_PLUGIN_FAILURE, getSnapshotSize, 
> CommandException, 2]
>          otherConfig: {}
>            subtaskOf: com.xensource.xenapi.Task@aaf13f6f
>             subtasks: []
>         at 
> com.cloud.hypervisor.xen.resource.CitrixResourceBase.checkForSuccess(CitrixResourceBase.java:3293)
>         at 
> com.cloud.hypervisor.xen.resource.CitrixResourceBase.callHostPluginAsync(CitrixResourceBase.java:3507)
>         at 
> com.cloud.hypervisor.xen.resource.XenServerStorageProcessor.getSnapshotSize(XenServerStorageProcessor.java:1211)
>         at 
> com.cloud.hypervisor.xen.resource.XenServerStorageProcessor.backupSnapshot(XenServerStorageProcessor.java:1401)
>         at 
> com.cloud.storage.resource.StorageSubsystemCommandHandlerBase.execute(StorageSubsystemCommandHandlerBase.java:94)
>         at 
> com.cloud.storage.resource.StorageSubsystemCommandHandlerBase.handleStorageCommands(StorageSubsystemCommandHandlerBase.java:52)
>         at 
> com.cloud.hypervisor.xen.resource.CitrixResourceBase.executeRequest(CitrixResourceBase.java:546)
>         at 
> com.cloud.hypervisor.xen.resource.XenServer56Resource.executeRequest(XenServer56Resource.java:61)
>         at 
> com.cloud.hypervisor.xen.resource.XenServer610Resource.executeRequest(XenServer610Resource.java:102)
>         at 
> com.cloud.agent.manager.DirectAgentAttache$Task.runInContext(DirectAgentAttache.java:216)
>         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 
> 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.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
>         at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
>         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:722)
> 2014-10-21 12:36:55,391 WARN  [c.c.h.x.r.CitrixResourceBase] 
> (DirectAgent-235:ctx-55338794) unable to destroy 
> task(com.xensource.xenapi.Task@84832980) on 
> host(45026915-2bf9-4ec1-8b57-f211194ff29b) due to
> You gave an invalid object reference.  The object may have recently been 
> deleted.  The class parameter gives the type of reference given, and the 
> handle parameter echoes the bad value given.
>         at com.xensource.xenapi.Types.checkResponse(Types.java:693)
>         at com.xensource.xenapi.Connection.dispatch(Connection.java:350)
>         at 
> com.cloud.hypervisor.xen.resource.XenServerConnectionPool$XenServerConnection.dispatch(XenServerConnectionPool.java:456)
>         at com.xensource.xenapi.Task.destroy(Task.java:616)
>         at 
> com.cloud.hypervisor.xen.resource.CitrixResourceBase.callHostPluginAsync(CitrixResourceBase.java:3523)
>         at 
> com.cloud.hypervisor.xen.resource.XenServerStorageProcessor.getSnapshotSize(XenServerStorageProcessor.java:1211)
>         at 
> com.cloud.hypervisor.xen.resource.XenServerStorageProcessor.backupSnapshot(XenServerStorageProcessor.java:1401)
>         at 
> com.cloud.storage.resource.StorageSubsystemCommandHandlerBase.execute(StorageSubsystemCommandHandlerBase.java:94)
>         at 
> com.cloud.storage.resource.StorageSubsystemCommandHandlerBase.handleStorageCommands(StorageSubsystemCommandHandlerBase.java:52)
>         at 
> com.cloud.hypervisor.xen.resource.CitrixResourceBase.executeRequest(CitrixResourceBase.java:546)
>         at 
> com.cloud.hypervisor.xen.resource.XenServer56Resource.executeRequest(XenServer56Resource.java:61)
>         at 
> com.cloud.hypervisor.xen.resource.XenServer610Resource.executeRequest(XenServer610Resource.java:102)
>         at 
> com.cloud.agent.manager.DirectAgentAttache$Task.runInContext(DirectAgentAttache.java:216)
>         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 
> 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.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
>         at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
>         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:722)
> 2014-10-21 12:36:56,777 DEBUG [c.c.a.m.AgentManagerImpl] 
> (AgentManager-Handler-12:null) SeqA 132-143: Processing Seq 132-143:  { Cmd , 
> MgmtId: -1, via: 132, Ver: v1, Flags: 11, 
> [{"com.cloud.agent.api.ConsoleProxyLoadReportCommand":{"_proxyVmId":64,"_loadInfo":"{\n
>   \"connections\": []\n}","wait":0}}] }
> 2014-10-21 12:36:56,804 DEBUG [c.c.h.x.r.CitrixResourceBase] 
> (DirectAgent-235:ctx-55338794) Host 192.14.225.18 
> OpaqueRef:a0fd0b23-f978-5f67-b626-1eadc343a141: Removing SR
> 2014-10-21 12:36:56,808 DEBUG [c.c.a.m.AgentManagerImpl] 
> (AgentManager-Handler-12:null) SeqA 132-143: Sending Seq 132-143:  { Ans: , 
> MgmtId: 345052759949, via: 132, Ver: v1, Flags: 100010, 
> [{"com.cloud.agent.api.AgentControlAnswer":{"result":true,"wait":0}}] }
> 2014-10-21 12:36:56,818 DEBUG [c.c.h.x.r.CitrixResourceBase] 
> (DirectAgent-235:ctx-55338794) Host 192.14.225.18 
> OpaqueRef:b02a715a-229e-3758-f4e4-88a7709810b5: Unplugging pbd
> 2014-10-21 12:36:57,488 DEBUG [c.c.h.x.r.CitrixResourceBase] 
> (DirectAgent-235:ctx-55338794) Host 192.14.225.18 
> OpaqueRef:a0fd0b23-f978-5f67-b626-1eadc343a141: Forgetting
> 2014-10-21 12:36:57,504 WARN  [c.c.h.x.r.XenServerStorageProcessor] 
> (DirectAgent-235:ctx-55338794) BackupSnapshot Failed due to S3 upload of 
> snapshots 0cef2f39-03e8-458d-bf19-7a2294c40ac7 failed
> com.cloud.utils.exception.CloudRuntimeException: S3 upload of snapshots 
> 0cef2f39-03e8-458d-bf19-7a2294c40ac7 failed
>         at 
> com.cloud.hypervisor.xen.resource.XenServerStorageProcessor.backupSnapshot(XenServerStorageProcessor.java:1421)
>         at 
> com.cloud.storage.resource.StorageSubsystemCommandHandlerBase.execute(StorageSubsystemCommandHandlerBase.java:94)
>         at 
> com.cloud.storage.resource.StorageSubsystemCommandHandlerBase.handleStorageCommands(StorageSubsystemCommandHandlerBase.java:52)
>         at 
> com.cloud.hypervisor.xen.resource.CitrixResourceBase.executeRequest(CitrixResourceBase.java:546)
>         at 
> com.cloud.hypervisor.xen.resource.XenServer56Resource.executeRequest(XenServer56Resource.java:61)
>         at 
> com.cloud.hypervisor.xen.resource.XenServer610Resource.executeRequest(XenServer610Resource.java:102)
>         at 
> com.cloud.agent.manager.DirectAgentAttache$Task.runInContext(DirectAgentAttache.java:216)
>         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 
> 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.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:178)
>         at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:292)
>         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:722)
> 2014-10-21 12:36:57,885 DEBUG [c.c.a.ApiServlet] 
> (catalina-exec-11:ctx-3e69dc37) ===START===  192.168.20.10 -- GET  
> command=queryAsyncJobResult&jobId=436e0dd3-283a-471c-aba1-5ecbdd19e0e5&response=json&sessionkey=bC690U9amEIq2aZn5caH5oi0Tog%3D&_=1413891416702
> {noformat}
> On the xenserver we see the following in the /var/log/cloud/vmops.log file:
> {noformat}
> 2014-10-21 12:36:11    DEBUG [root] #### VMOPS enter  
> create_secondary_storage_folder ####
> 2014-10-21 12:36:11    DEBUG [root] create_secondary_storage_folder, args: 
> {'newFolder': 'snapshots/2/257', 'remoteMountPath': 
> 'hostname.fake.net:/CS_TEST_SEC_01'}
> 2014-10-21 12:36:11    DEBUG [root] Successfully mounted 
> hostname.fake.net:/CS_TEST_SEC_01 to 
> /var/run/cloud_mount/17652326-6d41-44fc-b7e5-7ea0ab7e2d4d
> 2014-10-21 12:36:11    DEBUG [root] Successfully unmounted 
> /var/run/cloud_mount/17652326-6d41-44fc-b7e5-7ea0ab7e2d4d
> 2014-10-21 12:36:11    DEBUG [root] #### VMOPS exit  
> create_secondary_storage_folder ####
> 2014-10-21 12:36:31    DEBUG [root] #### VMOPS enter  get_rule_logs_for_vms 
> ####
> 2014-10-21 12:36:31    DEBUG [root] #### VMOPS enter  
> network_rules_for_rebooted_vm ####
> 2014-10-21 12:36:31    DEBUG [root] #### VMOPS enter  check_domid_changed ####
> 2014-10-21 12:36:31    DEBUG [root] #### VMOPS exit  check_domid_changed ####
> 2014-10-21 12:36:31    DEBUG [root] #### VMOPS exit  
> network_rules_for_rebooted_vm ####
> 2014-10-21 12:36:31    DEBUG [root] #### VMOPS enter  
> network_rules_for_rebooted_vm ####
> 2014-10-21 12:36:31    DEBUG [root] #### VMOPS enter  check_domid_changed ####
> 2014-10-21 12:36:31    DEBUG [root] #### VMOPS exit  check_domid_changed ####
> 2014-10-21 12:36:31    DEBUG [root] #### VMOPS exit  
> network_rules_for_rebooted_vm ####
> 2014-10-21 12:36:31    DEBUG [root] #### VMOPS exit  get_rule_logs_for_vms 
> ####
> 2014-10-21 12:36:56    DEBUG [root] primarySRPath: 
> /dev/VG_XenStorage-b1802ff2-5a63-d1e7-04de-dea7ba7eab27
> 2014-10-21 12:36:58    DEBUG [root] #### VMOPS enter  deleteSnapshotBackup 
> ####
> 2014-10-21 12:36:58    DEBUG [root] Calling deleteSnapshotBackup with 
> {'localMountPoint': 
> '/var/run/cloud_mount/ccd200be-0636-32f6-ad98-fb8e2fa8c70c', 'backupUUID': 
> '0cef2f39-03e8-458d-bf19-7a2294c40ac7', 'secondaryStora
> geMountPath': 'hostname.fake.net:/CS_TEST_SEC_01', 'path': 'snapshots/2/257'}
> 2014-10-21 12:36:58    DEBUG [root] Successfully mounted 
> hostname.fake.net:/CS_TEST_SEC_01/snapshots to 
> /var/run/cloud_mount/ccd200be-0636-32f6-ad98-fb8e2fa8c70c
> 2014-10-21 12:36:58    DEBUG [root] Chdired to 
> /var/run/cloud_mount/ccd200be-0636-32f6-ad98-fb8e2fa8c70c/2/257
> 2014-10-21 12:36:58    DEBUG [root] checking existence of 
> 0cef2f39-03e8-458d-bf19-7a2294c40ac7.vhd
> 2014-10-21 12:36:58    DEBUG [root] backupVHD 
> 0cef2f39-03e8-458d-bf19-7a2294c40ac7.vhd exists.
> 2014-10-21 12:36:58    DEBUG [root] #### VMOPS exit  deleteSnapshotBackup ####
> {noformat}
> On the xenserver we see the following in the /var/log/cloud/s3xen.log file:
> {noformat}
> 2014-10-21 12:36:57    DEBUG [root] #### VMOPS enter s3 #### ####
> 2014-10-21 12:36:57    DEBUG [root] #### VMOPS Operation put on file 
> /dev/VG_XenStorage-b1802ff2-5a63-d1e7-04de-dea7ba7eab27/VHD-0cef2f39-03e8-458d-bf19-7a2294c40ac7
>  from/in bucket CS_TEST_SEC_01 key 
> snapshots/2/257/VHD-0cef2f39-03e8-458d-bf19-7a2294c40ac7 ####
> 2014-10-21 12:36:57    DEBUG [root] #### VMOPS Traceback (most recent call 
> last):
>   File "/etc/xapi.d/plugins/s3xen", line 414, in s3
>     client.put(bucket, key, filename, maxSingleUploadBytes)
>   File "/etc/xapi.d/plugins/s3xen", line 325, in put
>     raise Exception(
> Exception: Attempt to put 
> /dev/VG_XenStorage-b1802ff2-5a63-d1e7-04de-dea7ba7eab27/VHD-0cef2f39-03e8-458d-bf19-7a2294c40ac7
>  that does not exist.
>  ####
> 2014-10-21 12:36:57    DEBUG [root] #### VMOPS exit s3 with result false ####
> {noformat}
> It appears that Xen is deleting the file on the local filesystem before the 
> S3 script has a chance to upload it, however the snapshot does appear to have 
> been successfully transferred to the secondary storage staging area, after 
> which the S3 transfer is attempted from the local lvm volume. When this fails 
> the snapshot is deleted, as you can see from the above logs. 
> It appears that either the issue with Xen deleting the snapshot needs to be 
> resolved (has this behavior changed recently?) or the PUT request to S3 needs 
> to send the file which is located in the staging area, rather than the file 
> on local disk, as happens with the primary storage volume snapshots. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to