-
Notifications
You must be signed in to change notification settings - Fork 5
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
Fix stream download release #618
Conversation
@phil-davis I might need some help with the tests. I guess we need to include some kind of compatibility for those tests so they can run with 10.10.0. The alternative is to drop the 10.10.0 pipeline, but it's probably a bad idea. |
Errors might be caused by changes in the native libraries, which are part of the environment and not of ownCloud. https://github.com/owncloud/core/blob/07b8298b80532ad29ebe80a86f49dc13946e05e6/lib/private/LargeFileHelper.php#L123 points to a change in the behavior of curl / php-curl which might be behind one of the errors. The old native curl version might not be available, or we might be fetching a more recent version Other than this scenario, it's weird there is any error in the tests with the final 10.10.0 version, specially when the failing tests are attached to core and don't belong to an app. |
I have a new, more plausible theory for the failing tests. The target commit / PR that changes things seems to be owncloud/core#40059 . Note that the commented failing tests are the same as what we have in this PR. I assume that the tests for the 10.10.0 release were done with the ubuntu 18.04 image and without the mentioned patch. That could explain why the tests passed at the time. Now that we're using the ubuntu 20.04 image, we might need the patch, but the patch was merged after the 10.10.0 released, so it's not available for the 10.10.0 code. That explains why the tests are now failing. Taking into account that the 10.10.0 pipeline has been changed to 10.11.0 from the this app recently in master, I think the best solution is to cherry-pick that commit into the release. |
#613 seems to be the issue |
Signed-off-by: Kiran Parajuli <[email protected]>
Kudos, SonarCloud Quality Gate passed! |
Ref: https://github.com/owncloud/enterprise/issues/5372
Recent changes allowed concurrent uploads by using a curlMultiHandler. However, this is causing issues with the downloads because they aren't being streamed properly. Currently, with the curlMultiHandler, we need to download the whole file from S3 before starting sending it to the client. This is causing long delays in the client, which could hit timeouts, specially for big files.
In order to fix this issue, we'll use a different connection in order to handle the downloads. For downloads, we'll use the old streamHandler; for the rest of actions, the new curlMutilHandler. This way, the downloads will be streamed to the client as soon as possible, and we'll still have concurrent uploads.