-
Notifications
You must be signed in to change notification settings - Fork 803
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 unrecoverable freezing when PutMultiFileJob is used with upload rate limits enabled #5680
Conversation
34771df
to
548cfff
Compare
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## master #5680 +/- ##
==========================================
+ Coverage 59.19% 59.25% +0.05%
==========================================
Files 143 143
Lines 18469 18463 -6
==========================================
+ Hits 10933 10940 +7
+ Misses 7536 7523 -13
|
Signed-off-by: Claudio Cambra <[email protected]>
…e the guarded ptr Signed-off-by: Claudio Cambra <[email protected]>
Signed-off-by: Claudio Cambra <[email protected]>
Signed-off-by: Claudio Cambra <[email protected]>
Signed-off-by: Claudio Cambra <[email protected]>
…e the guarded ptr
Signed-off-by: Claudio Cambra <[email protected]>
…ot open Signed-off-by: Claudio Cambra <[email protected]>
Signed-off-by: Claudio Cambra <[email protected]>
Signed-off-by: Claudio Cambra <[email protected]>
Signed-off-by: Claudio Cambra <[email protected]>
…const auto, readability, etc Signed-off-by: Claudio Cambra <[email protected]>
…DelayTimerExpired Signed-off-by: Claudio Cambra <[email protected]>
…asuringTimerExpired Signed-off-by: Claudio Cambra <[email protected]>
…pired getFileJobSigned-off-by: Claudio Cambra <[email protected]>
Signed-off-by: Claudio Cambra <[email protected]>
0d6d570
to
49bb5a0
Compare
/backport to stable-3.8 |
AppImage file: nextcloud-PR-5680-49bb5a005c1411bc118ed5dd949b85ebe1c29c96-x86_64.AppImage |
Kudos, SonarCloud Quality Gate passed! |
I still have the problem with 3.9.1. By deleting [BWLimit] in the conf, it works. |
Problem still present with 3.11.0 on windows 10 |
Same on Windows 11, same client version. |
On bulk upload we create a QHttpMultipart object which will take several UploadDevices in. Internally, the QHttpMultipart class has a QIODevice subclass which uses a while loop to read the contents of our UploadDevices.
With rate limits enabled this causes an infinite loop as we are not providing any data in UploadDevice's readData when the device is choked or limited.
This PR fixes the app freeze by disabling rate limits on upload devices used in bulk upload PutMultiFileJobs, though this means no rate limiting on these jobs (though this was never working anyway so no loss here)
This PR also includes a bit of additional logging, and lots of code modernisation fixes. The key commit is e72b68c
Closes #5675
Closes #5094