ios-app icon indicating copy to clipboard operation
ios-app copied to clipboard

[BUG] ios upload hangs

Open johanatandromeda opened this issue 1 year ago • 19 comments

Steps to reproduce

  1. Upload several videos from filmic pro

Expected behavior

Tell us what should happen

upload video files should work

Actual behavior

Tell us what happens instead

Upload of large video files from filmic pro hangs in running. Restart of own cloud does not help. Restart of the app does not help. Toggle airplane mode does not help. Restart the phone does usually proceed with the next file that also hangs.

Client

iOS version:

16.4.1

ownCloud app version:

ownCloud release version 11.11.1 build 230 (app: 58fd75c, sdk: 57729a6)

Device model:

iPhone 14 pro

Server configuration

Web server:

owncloud provided docker images + haproxy for TLS.

Database:

PHP version:

ownCloud version:

Storage backend (external storage):

Logs

Web server error log

Insert your webserver log here

ownCloud log (data/owncloud.log)


# Sync Record 907
<table>
<tr><td nowrap valign="top">Sync Record ID</td><td><code>907</code></td></tr>
<tr><td nowrap valign="top">State</td><td><code>2</code></td></tr>
<tr><td nowrap valign="top">In progress since</td><td><code>2023-04-24 20:23:12 +0000</code></td></tr>
<tr><td nowrap valign="top">Origin Process</td><td><code>&lt;OCProcessSession: 0x28267adc0, uuid: 4ECB9DB5-3BFD-49EE-82A0-FAADC7535995, bundleIdentifier: com.owncloud.ios-app.ownCloud-File-Provider, lastActive: 2023-04-24 20:23:04 +0000, bootTimestamp: 1682355092, processType: 1&gt;</code></td></tr>
<tr><td nowrap valign="top">Origin Process Valid</td><td><code>1</code></td></tr>
<tr><td nowrap valign="top">Timestamp</td><td><code>2023-04-24 20:23:12 +0000</code></td></tr>
<tr><td nowrap valign="top">Lane ID</td><td><code>302</code></td></tr>
<tr><td nowrap valign="top">Local ID</td><td><code>79532013D4784818A3BA6B8FF25C3A5A</code></td></tr>
<tr><td nowrap valign="top">Action ID</td><td><code>upload</code></td></tr>
<tr><td nowrap valign="top">Action</td><td>
<table>
<tr><td nowrap valign="top">Class</td><td><code>OCSyncActionUpload</code></td></tr>
<tr><td nowrap valign="top">Identifier</td><td><code>upload</code></td></tr>
<tr><td nowrap valign="top">Localized Description</td><td><code>Uploading 04232023_141200.mov…</code></td></tr>
<tr><td nowrap valign="top">Item</td><td><code>&lt;OCItem: 0x133e08350, type: 0, name: 04232023_141200.mov, path: /Video/Raw/Algot kalas/04232023_141200.mov, size: 231404542 bytes, MIME-Type: video/quicktime, Last modified: 2023-04-23 12:12:22 +0000, Last used: 2023-04-24 20:23:12 +0000 fileID: _placeholder_3C2C5910-3760-469B-A92A-82E7592D7B8B, eTag: _placeholder_, parentID: 00026288octvqk93kqla, localID: 79532013D4784818A3BA6B8FF25C3A5A, parentLocalID: D5F84564605D4E688BBDB304EC1EFA6C, localRelativePath: 79532013D4784818A3BA6B8FF25C3A5A/04232023_141200.mov, syncActivity: upload(1) activeSyncRecords=(
    907
)&gt;</code></td></tr>
</table>

</td></tr>
<tr><td nowrap valign="top">HTTP Requests</td><td>
<table>
<tr><td nowrap valign="top">default</td><td>
<table>
</table>

</td></tr>
<tr><td nowrap valign="top">ephermal</td><td>
<table>
</table>

</td></tr>
</table>

</td></tr>
</table>



Tell us what could be improved:

johanatandromeda avatar Apr 25 '23 17:04 johanatandromeda

I’ve been having trouble with upload hangs for some time as well. For me, uploads seem to hang whenever the app switches from foreground to background, or the network connection is poor.

I’ve also seen some others report similar issues on the forum.

brandon1024 avatar May 27 '23 11:05 brandon1024

Please test with the v12.0 TestFlight version:

  • https://owncloud.com/beta-testing/#ios

In case it’s still happening, please enable „Diagnostics“ in the Settings, then swipe-left the stuck entry. Please post the information shown there. With the „Reschedule“ button, you could fix this one entry, but this is only a workaround, not the solution.

michaelstingl avatar May 27 '23 11:05 michaelstingl

It's still happening with iOS app version 12.0.2. I'll post diagnostics next time it happens.

johanatandromeda avatar Jul 11 '23 22:07 johanatandromeda

New TestFlight build 272 is available for testing:

  • https://testflight.apple.com/join/MaKmwsqZ

michaelstingl avatar Jul 12 '23 06:07 michaelstingl

Installed it. Will test upload

johanatandromeda avatar Jul 12 '23 11:07 johanatandromeda

The issue with stuck uploads is still present

Sync Record 1

Sync Record ID1
State2
In progress since2023-07-12 11:22:46 +0000
Origin Process<OCProcessSession: 0x282c18570, uuid: EBB13AED-E636-42B8-A3E7-32D2A1DAF482, bundleIdentifier: com.owncloud.ios-app.ownCloud-File-Provider, lastActive: 2023-07-12 11:22:39 +0000, bootTimestamp: 1687597380, processType: 1>
Origin Process Valid0
Timestamp2023-07-12 11:22:46 +0000
Lane ID1
Local ID3962278D5E0349128A262DF9B7E60B77
Action IDupload
Action
ClassOCSyncActionUpload
Identifierupload
Localized DescriptionUploading 07122023_132129.mov…
Item<OCItem: 0x104607070, type: 0, name: 07122023_132129.mov, path: /Video/Raw/Falkenberg 2023/07122023_132129.mov, size: 445217342 bytes, MIME-Type: video/quicktime, Last modified: 2023-07-12 11:22:19 +0000, Last used: 2023-07-12 11:22:46 +0000, driveID: (null), fileID: _placeholder_619A4BE9-3AF2-4C98-A4A7-2A3755DE9188, eTag: _placeholder_, parentID: 00027201octvqk93kqla, localID: 3962278D5E0349128A262DF9B7E60B77, parentLocalID: CB000ADB59D44860AA48FA535D7ECFDF, localRelativePath: 3962278D5E0349128A262DF9B7E60B77/07122023_132129.mov, syncActivity: upload(1) activeSyncRecords=( 1 )>
HTTP Requests
ephermal
default
HTTP Task 936
Task ID936
Bundle ID*
Wait for Bundle ID Process0
URL Session Task ID1
Partition ID1EAC6AE2-E3E0-4DA2-AB1D-D89C8B93019E
Pipeline IDdefault
State2
Request ID95A600DB-57A2-487C-8669-F170F67D10AA
Request MethodGET
Request URLhttps://cloud.andromeda.nu/remote.php/dav/files/johan/Share/Ironman%20Music.mov
Request Final0
Response Status<OCHTTPStatus: 0x2820c80c0, code: 200>
Finished0
HTTP Task 937
Task ID937
Bundle ID*
Wait for Bundle ID Process0
URL Session Task ID2
Partition ID1EAC6AE2-E3E0-4DA2-AB1D-D89C8B93019E
Pipeline IDdefault
State2
Request IDE6955616-2EEC-495E-A584-F25ED1CA18A4
Request MethodGET
Request URLhttps://cloud.andromeda.nu/remote.php/dav/files/johan/Share/Ironman.mov
Request Final0
Response Status<OCHTTPStatus: 0x2820c89c0, code: 200>
Finished0
HTTP Task 939
Task ID939
Bundle ID*
Wait for Bundle ID Process0
URL Session Task ID3
Partition ID1EAC6AE2-E3E0-4DA2-AB1D-D89C8B93019E
Pipeline IDdefault
State2
Request ID0FF8BC66-5DFD-456D-9270-55B269623EC9
Request MethodGET
Request URLhttps://cloud.andromeda.nu/remote.php/dav/files/johan/Isabels%20konsert/IMG_5641.MOV
Request Final0
Response Status<OCHTTPStatus: 0x2820c8700, code: 200>
Finished0

johanatandromeda avatar Jul 12 '23 12:07 johanatandromeda

Tested more. One time the spinner wheels showed progress. Most of the times they just spin around. I managed to upload the files by

  1. Upload
  2. Have the status screen open
  3. Watch the router and wait for the upload to be done (Unifi, can watch each client)
  4. Press reschedule in the spinning upload

One time that did not work and I got the error file is locked

johanatandromeda avatar Jul 15 '23 21:07 johanatandromeda

The largest file was an almost 6GB video from filmic pro. I used share in filmic pro for all the uploads

johanatandromeda avatar Jul 15 '23 21:07 johanatandromeda

OwnCloud is the docker version behind haproxy for ssl offload

johanatandromeda avatar Jul 15 '23 21:07 johanatandromeda

Still there with the latest update

Sync Record 1852

Sync Record ID1852
State2
In progress since2023-07-21 12:01:47 +0000
Origin Process<OCProcessSession: 0x281d03690, uuid: A4A3C7DB-D3B6-4AF2-A72A-79BE55C85C93, bundleIdentifier: com.owncloud.ios-app.ownCloud-File-Provider, lastActive: 2023-07-21 12:01:42 +0000, bootTimestamp: 1689762675, processType: 1>
Origin Process Valid1
Timestamp2023-07-21 12:01:46 +0000
Lane ID54
Local ID6A5E7733F6A44C5C9AE111BE3568FDC2
Action IDupload
Action
ClassOCSyncActionUpload
Identifierupload
Localized DescriptionUploading 07212023_125822.mov…
Item<OCItem: 0x103407110, type: 0, name: 07212023_125822.mov, path: /Video/Raw/Falkenberg 2023/07212023_125822.mov, size: 709648401 bytes, MIME-Type: video/quicktime, Last modified: 2023-07-21 10:59:25 +0000, Last used: 2023-07-21 12:01:46 +0000, driveID: (null), fileID: _placeholder_BCAFEFFC-1BB9-4697-AEAE-FF07ED099914, eTag: _placeholder_, parentID: 00027201octvqk93kqla, localID: 6A5E7733F6A44C5C9AE111BE3568FDC2, parentLocalID: E989428D33454CAF8F5DDBB2C99C3481, localRelativePath: 6A5E7733F6A44C5C9AE111BE3568FDC2/07212023_125822.mov, syncActivity: upload(1) activeSyncRecords=( 1852 )>
HTTP Requests
default
HTTP Task 936
Task ID936
Bundle ID*
Wait for Bundle ID Process0
URL Session Task ID1
Partition ID1EAC6AE2-E3E0-4DA2-AB1D-D89C8B93019E
Pipeline IDdefault
State2
Request ID95A600DB-57A2-487C-8669-F170F67D10AA
Request MethodGET
Request URLhttps://cloud.andromeda.nu/remote.php/dav/files/johan/Share/Ironman%20Music.mov
Request Final0
Response Status<OCHTTPStatus: 0x2811048c0, code: 200>
Finished0
HTTP Task 937
Task ID937
Bundle ID*
Wait for Bundle ID Process0
URL Session Task ID2
Partition ID1EAC6AE2-E3E0-4DA2-AB1D-D89C8B93019E
Pipeline IDdefault
State2
Request IDE6955616-2EEC-495E-A584-F25ED1CA18A4
Request MethodGET
Request URLhttps://cloud.andromeda.nu/remote.php/dav/files/johan/Share/Ironman.mov
Request Final0
Response Status<OCHTTPStatus: 0x281104a80, code: 200>
Finished0
HTTP Task 939
Task ID939
Bundle ID*
Wait for Bundle ID Process0
URL Session Task ID3
Partition ID1EAC6AE2-E3E0-4DA2-AB1D-D89C8B93019E
Pipeline IDdefault
State2
Request ID0FF8BC66-5DFD-456D-9270-55B269623EC9
Request MethodGET
Request URLhttps://cloud.andromeda.nu/remote.php/dav/files/johan/Isabels%20konsert/IMG_5641.MOV
Request Final0
Response Status<OCHTTPStatus: 0x281104970, code: 200>
Finished0
ephermal

johanatandromeda avatar Jul 21 '23 12:07 johanatandromeda

Reschedule the first of the three stuck ones removed all three

johanatandromeda avatar Jul 21 '23 12:07 johanatandromeda

Version 12.0.3 (273)

johanatandromeda avatar Jul 21 '23 12:07 johanatandromeda

@johanatandromeda I really don't like 6GB uploads from iOS app to oC10 server.

Desktop app uploads chunks, between 10MB and 100MB in size, but iOS app sends a single big PUT, and there's a lot that can go wrong, especially with Proxy setups etc.

Different story with iOS app and ownCloud Infinite Scale (oCIS): There iOS app uses TUS (Resumable Upload Protocol), where admins can configure partial upload sizes, with a default=100MB.

To investigate, please upload screen recordings of the full process and app debug logs (including HTTP):

  • https://cloud.owncloud.com/s/JeNy0IevFFUFj92

Here you can find more information:

  • https://doc.owncloud.com/ios-app/12.0/appendices/troubleshooting.html#capturing-app-debug-logs

ownCloud team can access internally here:

  • https://cloud.owncloud.com/f/6048079

michaelstingl avatar Jul 25 '23 15:07 michaelstingl

I’ve been having trouble with upload hangs for some time as well. For me, uploads seem to hang whenever the app switches from foreground to background, or the network connection is poor.

@brandon1024 It would be very helpful if you could open an individual issue, so we can investigate your issue in detail.

michaelstingl avatar Jul 25 '23 15:07 michaelstingl

@johanatandromeda I really don't like 6GB uploads from iOS app to oC10 server.

Desktop app uploads chunks, between 10MB and 100MB in size, but iOS app sends a single big PUT, and there's a lot that can go wrong, especially with Proxy setups etc.

Out of curiosity, why is chunking possible on the desktop app but not in the iOS app when talking to oC10? Technical limitations of some sort I would imagine?

In any case, @johanatandromeda and I are running into similar issues. If an upload fails from the client side (big PUT request fails half way through, for instance), should we not notify the user that the upload failed? Maybe change the spinner to red instead of blue? The details don't matter much to me, but notifying the user of a failure is pretty important.

There's a similar issue open where @felix-schwarz mentioned that the error handling in this part of the project is pretty lacking.

@brandon1024 It would be very helpful if you could open an individual issue, so we can investigate your issue in detail.

I can do that yeah. It would be a duplicate of 1103 though. I'm in the process of migrating to ocis though, so I don't know if I'll be able to offer much in the way of debug logs and such.

brandon1024 avatar Jul 31 '23 15:07 brandon1024

Out of curiosity, why is chunking possible on the desktop app but not in the iOS app when talking to oC10? Technical limitations of some sort I would imagine?

oC10 chunking was never implemented in the iOS app. For strategic reasons, development efforts went into oCIS TUS upload protocol and oCIS Spaces.

michaelstingl avatar Aug 01 '23 07:08 michaelstingl

I can do that yeah. It would be a duplicate of https://github.com/owncloud/ios-app/issues/1103 though. I'm in the process of migrating to ocis though, so I don't know if I'll be able to offer much in the way of debug logs and such.

Insufficient information in #1103 . If you could provide detailed information in a new issue, now we have some capacity to have a closer look. But we can als focus on oCIS if you encounter issues that need improvement.

michaelstingl avatar Aug 01 '23 07:08 michaelstingl

I tried on my LAN but could not reproduce the error. The largest file was 1.5GB. I will try over internet with logging enabled and screen recordings.

johanatandromeda avatar Aug 01 '23 08:08 johanatandromeda

I've noticed huge stability improvements lately. Uploads are not hanging like they used to on the latest version of the iOS app with ocis 4.0.1. Large (5+ GB) uploads are uploading successfully.

I have noticed that uploads get stuck in the "running" state if the app goes to the background or the device screen turns off, but I think that's a separate issue altogether.

I'm happy to see this issue closed :-)

brandon1024 avatar Oct 02 '23 17:10 brandon1024