Summary: | Random Plasma crashes caused by `reuseItems: true` in DelegateModel | ||
---|---|---|---|
Product: | [Plasma] plasmashell | Reporter: | Stefan Schmidt <thrimbor+kdebugs> |
Component: | Task Manager and Icons-Only Task Manager | Assignee: | Plasma Bugs List <plasma-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | kde, nate, qydwhotmail, thrimbor+kdebugs |
Priority: | NOR | Keywords: | drkonqi |
Version: | 5.24.4 | ||
Target Milestone: | 1.0 | ||
Platform: | Arch Linux | ||
OS: | Linux | ||
See Also: |
https://bugreports.qt.io/browse/QTBUG-102811 https://bugreports.qt.io/browse/QTBUG-91425 |
||
Latest Commit: | https://invent.kde.org/qt/qt/qtdeclarative/-/merge_requests/42 | Version Fixed In: | kde/5.15 |
Sentry Crash Report: | |||
Attachments: | New crash information added by DrKonqi |
Description
Stefan Schmidt
2022-04-15 13:58:16 UTC
Created attachment 148217 [details]
New crash information added by DrKonqi
plasmashell (5.24.4) using Qt 5.15.3
This time it crashed when pressing the Meta key. I had debuginfod installed, so it retrieved the debug info from the web this time.
-- Backtrace (Reduced):
#6 std::__atomic_base<int>::load(std::memory_order) const (__m=std::memory_order_relaxed, this=0x70006f006f0070, this=<optimized out>, __m=<optimized out>) at /usr/include/c++/11.2.0/bits/atomic_base.h:479
#7 QAtomicOps<int>::loadRelaxed<int>(std::atomic<int> const&) (_q_value=..., _q_value=<optimized out>) at /usr/include/qt/QtCore/qatomic_cxx11.h:239
#8 QBasicAtomicInteger<int>::loadRelaxed() const (this=0x70006f006f0070, this=<optimized out>) at /usr/include/qt/QtCore/qbasicatomic.h:107
#9 QWeakPointer<QObject>::internalData() const (this=0x55aaab606348) at /usr/include/qt/QtCore/qsharedpointer_impl.h:698
#10 QPointer<QObject>::data() const (this=0x55aaab606348, this=<optimized out>) at /usr/include/qt/QtCore/qpointer.h:77
No KDE code implicated; no idea what this could be. Might be a Qt bug. The crash is caused by QQmlDelegateModel. Currently in Plasma only task manager uses it if you don't have other 3rd applets installed. When an item is pooled and then destroyed, the program will crash. Git commit a23fb82fcac7d4af4e981a9c84780cb25a82e88a by Fushan Wen. Committed on 24/04/2022 at 00:52. Pushed by ngraham into branch 'Plasma/5.24'. applets/taskmanager: Disable `reuseItems` to avoid a crash When the size (height) of ScrollView depends on its delegate items and `reuseItems` is set to true, the program is prone to crash. M +1 -1 applets/taskmanager/package/contents/ui/ToolTipDelegate.qml https://invent.kde.org/plasma/plasma-desktop/commit/a23fb82fcac7d4af4e981a9c84780cb25a82e88a Git commit 22d9376c3bc36104ec56d935642f9ad7d8fd219a by Nate Graham, on behalf of Fushan Wen. Committed on 25/04/2022 at 20:23. Pushed by ngraham into branch 'master'. applets/taskmanager: Workaround for QTBUG-102811 When the size of ScrollView depends on its delegate items and `reuseItems` is set to true, the program is prone to crash. Although delayed binding on `Layout.minimumWidth` mitigates the crash, there are still some related crash reports. This adds a workaround for QTBUG-102811 to fix the potential crash. To reproduce the crash, open 20 Konsole windows and 2 windows of other program, set `delayed: false` in `Binding on Layout.minimumWidth` in the origin code, and move mouse between the two grouped tasks in the task manager. M +18 -15 applets/taskmanager/package/contents/ui/ToolTipDelegate.qml https://invent.kde.org/plasma/plasma-desktop/commit/22d9376c3bc36104ec56d935642f9ad7d8fd219a A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/1418 Git commit af51f8e0529f8db0b5612a15830adba53cfa900b by Fushan Wen. Committed on 09/03/2023 at 10:28. Pushed by fusionfuture into branch 'master'. applets/taskmanager: remove workaround for QTBUG-102811 It's no longer reproducible with 3ba196eddc8c37bc56a799a8189c18a4da550a4c because the loader will unload the model when the current tooltip type changes. M +3 -10 applets/taskmanager/package/contents/ui/ToolTipDelegate.qml https://invent.kde.org/plasma/plasma-desktop/commit/af51f8e0529f8db0b5612a15830adba53cfa900b |