-
-
Notifications
You must be signed in to change notification settings - Fork 4.2k
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
Can't open / sync big files on external storage (webdav) #30282
Comments
Add a data point. |
This problem is still in 22.2.5. |
Problem still occurs in 23.0.2 |
I'm pretty sure I've tracked down the issue. In #26266 the way Guzzle HTTP clients are constructed was changed from the default, which chose the handler based on the environment, to always use the curl handler. Just using the curl handler doesn't seem to support the The following patch, on top of 23.0.3.2 works around this issue, although it also reverts the security improvements from said PR: diff -ruN ./1/lib/private/Http/Client/ClientService.php ./0/lib/private/Http/Client/ClientService.php
--- ./1/lib/private/Http/Client/ClientService.php 2022-03-21 13:02:41.000000000 +0000
+++ ./0/lib/private/Http/Client/ClientService.php 2022-06-02 19:31:07.114812663 +0000
@@ -68,11 +68,7 @@
* @return Client
*/
public function newClient(): IClient {
- $handler = new CurlHandler();
- $stack = HandlerStack::create($handler);
- $stack->push($this->dnsPinMiddleware->addDnsPinning());
-
- $client = new GuzzleClient(['handler' => $stack]);
+ $client = new GuzzleClient();
return new Client(
$this->config, @LukasReschke @rullzer could you have a look? |
Good finding 👍 php-curl is a hard requirement for guzzle. But you are right we are always using Index: lib/private/Http/Client/ClientService.php
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/lib/private/Http/Client/ClientService.php b/lib/private/Http/Client/ClientService.php
--- a/lib/private/Http/Client/ClientService.php (revision e5309201f7479be1464fe10c71e4a039dddd26b9)
+++ b/lib/private/Http/Client/ClientService.php (date 1654617117944)
@@ -63,8 +63,7 @@
* @return Client
*/
public function newClient(): IClient {
- $handler = new CurlHandler();
- $stack = HandlerStack::create($handler);
+ $stack = HandlerStack::create();
$stack->push($this->dnsPinMiddleware->addDnsPinning());
$client = new GuzzleClient(['handler' => $stack]);
Does this work too? |
@kesselb Confirmed to work! 👍 |
Mind to sent a pull request? |
@kesselb This fixes the issue for Nextcloud 24.0.2 aswell 👍 I was previously experiencing timeouts when syncing larger files such as videos from/to an external WebDAV storage. |
If no one wants to create the PR, shall I do it? |
done |
Not fixed in the stable25 Branch: #34749 |
Hey, I do the test and it is not really fixed.
|
Please update to Nextcloud 27, set a higher timeout for dav storage, and create a new issue if the issue is still there. |
Thanks! NC 27.0.1 seems not mature enough for me now to make Prod update. |
Oh, well spotted. I don't understand the partial revert 🤷 |
Feel free to do another attempt on this with the same fix against master. Last time I tried the tests have been failing and I had no idea how to resolve them. |
Hi, we still have the issue on 29.0.4. How can we help ? |
At least it is still an issue in 28.0.9. |
I am currently facing the issue between two 30.0.4 servers. Has to increase the For reference, the option got introduced by #38292 |
How to use GitHub
Steps to reproduce
Seems it is related to #30262 and #29969 with #26071
5. Use Workaround as per #26071 (comment)
6. See that Web UI is now opening, but with a huge delay (whole file being downloaded), but client sync does not work still.
Expected behaviour
Do not download files (as per #30262) when folder simply opened, use cache instead.
Do not download files when properties only needed (last modification date, or size)
Actual behaviour
External Storage could not be synchronized, even via Desktop Client it simply does not open and not synced any more.
All files downloaded to
/tmp
or RAM and causing timeout.Server configuration
Operating system: Ubuntu 20.04
Web server: Apache/2.4.51
Database: 10.3.32-MariaDB
PHP version: 7.4.26
Nextcloud version: 22.2.3.0
Updated from an older Nextcloud/ownCloud or fresh install: updated
Where did you install Nextcloud from: Official
Signing status:
Signing status
List of activated apps:
App list
Nextcloud configuration:
Config report
Are you using external storage, if yes which one: local/webdav
Are you using encryption: no
Are you using an external user-backend, if yes which one: no
Logs
Nextcloud log (data/nextcloud.log)
Nextcloud log
Nextcloud Desktop Client log
Nextcloud Client log
The text was updated successfully, but these errors were encountered: