Summary: | plasmashell crashes on infinite recursion in QSortFilterProxyModelPrivate::recursiveChildAcceptsRow() when trying to create default panel while "undo panel deletion" notification is visible | ||
---|---|---|---|
Product: | [Plasma] plasmashell | Reporter: | Nate Graham <nate> |
Component: | Edit Mode | Assignee: | Plasma Bugs List <plasma-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | admin, akselmo, notmart |
Priority: | NOR | Keywords: | regression |
Version: | master | ||
Target Milestone: | 1.0 | ||
Platform: | Other | ||
OS: | Linux | ||
URL: | https://bugreports.qt.io/browse/QTBUG-134210 | ||
Latest Commit: | https://invent.kde.org/plasma/plasma-workspace/-/commit/85f194c7fc04810af6761f7d5b875e12726dbd3f | Version Fixed In: | Plasma 6.3.3 and Qt 6.9.1 |
Sentry Crash Report: |
Description
Nate Graham
2025-02-25 19:36:09 UTC
Can also confirm. For me though, it also crashed on the first time I added default panel. It's backtrace was neverending recursion loop so I couldn't really get it out. A simpler way is: * send a permanent notification: notify-send foo -u critical * without closing it, add a new notification applet, even in the desktop The culript seems somehow NotificationFilterProxyModel::filterAcceptsRow but i couldn't figure out what exactly is happening yet It's actually a Qt bug: https://bugreports.qt.io/browse/QTBUG-134210 It should be possible to work around downstream A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/5271 Git commit 354c4c5eeec73ba9a17be36d1c133fd022ee122c by Marco Martin. Committed on 03/03/2025 at 09:46. Pushed by mart into branch 'master'. libnotificationmanager: Fix infinite recursion when adding a second applet Add a QConcatenateTablesProxyModel subclass which always has 1 column. This is a workaround to https://bugreports.qt.io/browse/QTBUG-134210 and https://bugs.kde.org/show_bug.cgi?id=500749 if a model is added to an empty QConcatenateTablesProxyModel it will report zero columns and non-zero rows, causing a data inconsistence which causes an infinite recursion in NotificationFilterProxyModel::filterAcceptsRow remove when the upstream bug is fixed M +20 -1 libnotificationmanager/notifications.cpp https://invent.kde.org/plasma/plasma-workspace/-/commit/354c4c5eeec73ba9a17be36d1c133fd022ee122c Git commit 85f194c7fc04810af6761f7d5b875e12726dbd3f by Nate Graham. Committed on 04/03/2025 at 22:24. Pushed by ngraham into branch 'Plasma/6.3'. libnotificationmanager: Fix infinite recursion when adding a second applet Add a QConcatenateTablesProxyModel subclass which always has 1 column. This is a workaround to https://bugreports.qt.io/browse/QTBUG-134210 and https://bugs.kde.org/show_bug.cgi?id=500749 if a model is added to an empty QConcatenateTablesProxyModel it will report zero columns and non-zero rows, causing a data inconsistence which causes an infinite recursion in NotificationFilterProxyModel::filterAcceptsRow remove when the upstream bug is fixed (cherry picked from commit 354c4c5eeec73ba9a17be36d1c133fd022ee122c) 32115e18 libnotificationmanager: Fix infinite recursion when adding a second applet 25f0a36f apply suggestions Co-authored-by: Marco Martin <notmart@gmail.com> M +20 -1 libnotificationmanager/notifications.cpp https://invent.kde.org/plasma/plasma-workspace/-/commit/85f194c7fc04810af6761f7d5b875e12726dbd3f *** Bug 501068 has been marked as a duplicate of this bug. *** |