fix: Don't recursively call processEvents - #10314
Conversation
nilsding
left a comment
There was a problem hiding this comment.
thanks for your contribution!
81dba5f to
a51523b
Compare
|
/backport to stable-34.0 please |
Calling QCoreApplication::processEvents() causes a recursive re-entrant event loop that will eventually run out of stack space. This should have broken way earlier, but it appears that it went under the radar until a sufficiently fast network and storage is attached. It's unclear why this was even called in the first place - QApplication::exec() already runs the GUI QEventLoop anyway. Fixes nextcloud#10312. Signed-off-by: Xaymar <[email protected]>
a51523b to
22bf46a
Compare
|
Artifact containing the AppImage: nextcloud-appimage-pr-10314.zip Digest: To test this change/fix you can download the above artifact file, unzip it, and run it. Please make sure to quit your existing Nextcloud app and backup your data. |
|
Tested out the daily builds with this in it, and it does indeed fix the disappearing client issue! No more stack overflows. |
|
Hello there, We hope that the review process is going smooth and is helpful for you. We want to ensure your pull request is reviewed to your satisfaction. If you have a moment, our community management team would very much appreciate your feedback on your experience with this PR review process. Your feedback is valuable to us as we continuously strive to improve our community developer experience. Please take a moment to complete our short survey by clicking on the following link: https://cloud.nextcloud.com/apps/forms/s/i9Ago4EQRZ7TWxjfmeEpPkf6 Thank you for contributing to Nextcloud and we hope to hear from you soon! (If you believe you should not receive this message, you can add yourself to the blocklist.) |
Resolves
Fixes #10312
Summary
Removes the re-entrant main QEventLoop handling caused by calling
QCoreApplication::processEvents()which eventually causes a stack overflow. It's unclear what this call was supposed to do as the main QEventLoop is already handled by callingQApplication::exec()which is necessary anyway. This appears to be a remnant of someone not being well versed in asynchronous workloads, though that doesn't appear to be the only issue with the code in question.TODO
Checklist
AI (if applicable)