-
Notifications
You must be signed in to change notification settings - Fork 129
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[feature/better-sync] Sync Engine fixes and improvements #1351
Conversation
|
62ac8dc
to
532b6ca
Compare
48eed6d
to
840bad6
Compare
… errors in HTTP layer
- ProgressView: add minimum + touch friendly sizes to avoid display as zero-sized views (which prevented cancelling by tapping because the touch never reached the view)
- AvailableOfflineAction: fix bug where a folder selected for Available Offline could not be removed form Available Offline by action (due to Swift != comparison apparently not using -isEqual:)
551b2ae
to
7837e1b
Compare
Checks to do Uploads
|
(1)I'm having some problems to perform bulk uploads
Expected: 50 files uploaded. For bigger amount of files, the problem gets worse. I caught a log file over these steps: ownCloud_14_Aug_2024_at_12_15_54.log.txt and also, a short footage: RPReplay_Final1723630629.MP4NOTE: that are the new 100 uploads plus 24 that were lost before (only uploaded 26 out of 50). It is stucked in there (3 of 124) with no advance. After killing and reopening the app, iPhone XR iOS 17.6.1 |
@jesmrec Thanks for the log and screen recording! Excellent basis for debugging 😃 After a first glance at the logs, it appears that
The improvements in this branch focused on improving uploads in general and didn't include Media Upload. Background: Media Upload is not part of the SDK (where this branch focused on improvements), maintains its own queue of photo/video items to export and convert from the Photo Library - and only then schedules uploads. The uploads that were scheduled went through as far as I can tell. I certainly need to spend some time to debug Media Upload next and see what's causing the issues you observed here, but that's outside the scope of this PR at least. |
OK, as testing task for the uploads, i put on my desk a test plan that checks that all kind of uploads work as expected. Starting for media, but also uploads from Files app, auto uploads or uploads from 3rd party apps. I don't find any other way to check this... i will resume the work. |
I found that the File Provider appears to almost immediately be killed on iPadOS 18 because it runs out of the 20 MB memory at launch time (after 1 ms), which makes debugging it almost impossible. Recalling that newer OpenSSL versions now load cipher suites and strings automatically, I checked whether it was linked into the File Provider and - indeed - it's included via the So, in order to remove OpenSSL from the File Provider as well as all other unneeded parts, I changed the project to build and link the necessary parts from However, since Media Upload should be rock solid and the File Provider might still run out of memory depending in the size of an account, I disabled upload via File Provider for it. All of the above changes are in #1376 now. |
- fix protocol warnings new in Xcode 16 - adopt newer #unavailable syntax instead of if #available { /* Nothing */ } else { /* Code*/ }
New checks performed:
|
@felix-schwarz i performed some checks based in the cases listed just above 👆 , result was OK. I just noticed that very populated folders (3000 files inside or more) sometimes does a slow navigation. An spinner while loading the list of files could be a good idea (out of scope here). As agreed, regression testing in release phase will test also other cases. |
Changes from this PR were also included in #1376 and merged that way. |
Description
This PR includes the following fixes and improvements to the Sync Engine in the SDK:
[feature/better-sync] Better sync ios-sdk#102
OCSignal
to decouple sync actions from local completion enclosures, and thereby particular HTTP queues and processesPROPFIND
could lead to a hanging, never-completing sync operation)[feature/tus-progress] Add progress reporting for TUS uploads, fix HTTP layer issue ios-sdk#103
UNKNOWN TASK
issue in HTTP layer where tracking information on requests could erroneously get dropped from other processes using the same HTTP queue/partition combo, leading to stuck transfers that could only be recovered from via a relaunch/reboot[fix/sync-hangs] Detect hanging Sync Actions and restart them ios-sdk#104
[fix/tus-cancellation] Detect and terminate spurious TUS upload jobs ios-sdk#106
[feature/policy-upgrades] Item Policy Upgrades ios-sdk#107
It also fixed and improves the following in the app itself:
Further opportunities for exploration and improvement:
OCSignal
s)Related Issue
Screenshots (if appropriate):
Types of changes