Summary: | ScrollBar binding loop can cause apps to freeze | ||
---|---|---|---|
Product: | [Frameworks and Libraries] frameworks-qqc2-desktop-style | Reporter: | Matej Starc <matej.starc> |
Component: | general | Assignee: | Marco Martin <notmart> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | ahiemstra, aleixpol, bugseforuns, clin, ettore.spongano, ggrabler, guimarcalsilva, kde, me, nate, nik.kaiser87, noahadvs, notuxius, postix, qydwhotmail, rajeeshknambiar, rdieter |
Priority: | HI | ||
Version: | 5.90.0 | ||
Target Milestone: | --- | ||
Platform: | Compiled Sources | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/frameworks/kirigami/commit/c28dff79721d3805edcd413ef233216b3b3b0104 | Version Fixed In: | 5.97 |
Sentry Crash Report: | |||
Attachments: | how to reproduce video |
Description
Matej Starc
2022-01-19 17:28:26 UTC
*** Bug 449583 has been marked as a duplicate of this bug. *** *** Bug 449581 has been marked as a duplicate of this bug. *** As observed by the reported, this is related to the resizing triggered by adding the scrollbar. It happens where we put the window in that size that with the scrollbar there's N columns and without N-1 or so it's seemed to me debugging 449583. A solution would be to never take width to calculate columns when it can affect the resulting width (and same goes with height and rows). (In reply to Aleix Pol from comment #3) > As observed by the reported, this is related to the resizing triggered by > adding the scrollbar. > > It happens where we put the window in that size that with the scrollbar > there's N columns and without N-1 or so it's seemed to me debugging 449583. > > A solution would be to never take width to calculate columns when it can > affect the resulting width (and same goes with height and rows). So it resizes infinitely(In reply to Aleix Pol from comment #3) > As observed by the reported, this is related to the resizing triggered by > adding the scrollbar. > > It happens where we put the window in that size that with the scrollbar > there's N columns and without N-1 or so it's seemed to me debugging 449583. > > A solution would be to never take width to calculate columns when it can > affect the resulting width (and same goes with height and rows). Sorry I had a hard time understanding the issue here.. So it tries to add a scrollbar (changes width and calculates how many rows it needs), but after that the scrollbar is not needed anymore, removes it (calculates how many rows it needs) and goes back to the first step ? Yes, that's my understanding of the problem, at least. *** Bug 401533 has been marked as a duplicate of this bug. *** *** Bug 451007 has been marked as a duplicate of this bug. *** *** Bug 447080 has been marked as a duplicate of this bug. *** *** Bug 446934 has been marked as a duplicate of this bug. *** *** Bug 447958 has been marked as a duplicate of this bug. *** A little bump here; to inform that this is currently (only) release blocker bug for Fedora 36. See https://bugzilla.redhat.com/show_bug.cgi?id=2057563 *** Bug 452326 has been marked as a duplicate of this bug. *** I've been looking into this issue and I was unable to reproduce it with the test case you suggested. Can you please confirm that it's still present? (In reply to Aleix Pol from comment #13) > I've been looking into this issue and I was unable to reproduce it with the > test case you suggested. Can you please confirm that it's still present? The fastest way I did it was to have 3 cards in a single row and the resize the window by moving the top up and down slowly scrollbar has to change visibility. https://pastebin.com/pjU3KuYz This page is no longer available. It has either expired, been removed by its creator, or removed by one of the Pastebin staff. :( (In reply to Aleix Pol from comment #15) > This page is no longer available. It has either expired, been removed by its > creator, or removed by one of the Pastebin staff. > > :( This shouldn't expire or be removed until I delete it. https://cloud.aljaxus.eu/index.php/s/aD7scnSQ58HcTNs (In reply to Matej Starc from comment #16) > (In reply to Aleix Pol from comment #15) > > This page is no longer available. It has either expired, been removed by its > > creator, or removed by one of the Pastebin staff. > > > > :( > This shouldn't expire or be removed until I delete it. > https://cloud.aljaxus.eu/index.php/s/aD7scnSQ58HcTNs This video makes the current cardsGridView even more concerning. From what i've noticed ScrollBar doesn't disappear (around 25 sec), most of the app or whole goes black (around 43 sec and 48 sec) and finally activates the binding loop at 54 seconds. https://cloud.aljaxus.eu/index.php/s/tP9rYwXXitzazNY A possibly relevant merge request was started @ https://invent.kde.org/frameworks/kirigami/-/merge_requests/548 (In reply to Bug Janitor Service from comment #18) > A possibly relevant merge request was started @ > https://invent.kde.org/frameworks/kirigami/-/merge_requests/548 Thanks, I will check it out. (In reply to Bug Janitor Service from comment #18) > A possibly relevant merge request was started @ > https://invent.kde.org/frameworks/kirigami/-/merge_requests/548 For some reason, I can't activate the binding loop anymore when using current arch stable. Git commit d03c06bf7e047a822db66e8227a9a6bc060b2c67 by Marco Martin. Committed on 03/06/2022 at 08:52. Pushed by mart into branch 'master'. Delete and port away from internal ScrollView Refactor ScrollablePage to port it out of our internal implementation of ScrollView to upstream QQC2.ScrollView port the other users as well, most notably OverlaySheet and Dialog. Testing on various applications don't seem to produce any noticeable differences M +0 -2 src/CMakeLists.txt M +2 -1 src/controls/ContextDrawer.qml M +26 -28 src/controls/Dialog.qml M +161 -48 src/controls/ScrollablePage.qml D +0 -207 src/controls/private/RefreshableScrollView.qml M +0 -17 src/controls/templates/OverlayDrawer.qml M +17 -13 src/controls/templates/OverlaySheet.qml D +0 -161 src/controls/templates/private/ScrollView.qml https://invent.kde.org/frameworks/kirigami/commit/d03c06bf7e047a822db66e8227a9a6bc060b2c67 Git commit c28dff79721d3805edcd413ef233216b3b3b0104 by Marco Martin. Committed on 14/07/2022 at 12:11. Pushed by mart into branch 'master'. second attempt of Delete and port away from internal ScrollView This reintroduces the refactor of ScrollablePage which was reverted due to last minute regressions. Refactor ScrollablePage to port it out of our internal implementation of ScrollView to upstream QQC2.ScrollView port the other users as well, most notably OverlaySheet and Dialog. Testing on various applications don't seem to produce any noticeable differences M +0 -2 src/CMakeLists.txt M +2 -1 src/controls/ContextDrawer.qml M +26 -28 src/controls/Dialog.qml M +207 -47 src/controls/ScrollablePage.qml D +0 -207 src/controls/private/RefreshableScrollView.qml M +0 -17 src/controls/templates/OverlayDrawer.qml M +26 -14 src/controls/templates/OverlaySheet.qml D +0 -161 src/controls/templates/private/ScrollView.qml https://invent.kde.org/frameworks/kirigami/commit/c28dff79721d3805edcd413ef233216b3b3b0104 |