Bug 465510 - Crash when discarding changes in Quick Settings
Summary: Crash when discarding changes in Quick Settings
Status: RESOLVED FIXED
Alias: None
Product: systemsettings
Classification: Applications
Component: general (show other bugs)
Version: 5.26.90
Platform: Debian testing Linux
: NOR crash
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2023-02-09 15:13 UTC by Thomas Wuillemin
Modified: 2023-03-24 15:37 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In: 5.27.4


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Thomas Wuillemin 2023-02-09 15:13:15 UTC
Application: systemsettings (5.26.90)

Qt Version: 5.15.8
Frameworks Version: 5.102.0
Operating System: Linux 6.1.0-3-amd64 x86_64
Windowing System: X11
Distribution: Debian GNU/Linux bookworm/sid
DrKonqi: 5.26.90 [KCrashBackend]

-- Information about the crash:
To reproduce:

- Open System Settings, it should open on the Home/Quick Settings
 - Change an item, for example the animation speed
- Click on one of the most used page (Touchpad in my case, but all inks seem to work) on the bottom of the page
- A dialog ask to apply or discard the changes
- Click Discard
- The selected page (Touchpad) is diplayed
- Another similar dialog which ask to apply or discard the changes is displayed immediately, no changes made
- Click Discard
- Application crash

The crash can be reproduced every time.

-- Backtrace:
Application: System Settings (systemsettings), signal: Segmentation fault

[KCrash Handler]
#4  0x00007f68232effea in KCModuleProxy::realModule() const () from /lib/x86_64-linux-gnu/libKF5KCMUtils.so.5
#5  0x00007f68232f012f in KCModuleProxy::load() () from /lib/x86_64-linux-gnu/libKF5KCMUtils.so.5
#6  0x00007f6823b8d837 in ModuleView::resolveChanges(KCModuleProxy*) () from /lib/x86_64-linux-gnu/libsystemsettingsview.so.3
#7  0x00007f67fc2c3630 in ?? () from /usr/lib/x86_64-linux-gnu/qt5/plugins/systemsettingsview/systemsettings_sidebar_mode.so
#8  0x00007f67fc2c41bb in ?? () from /usr/lib/x86_64-linux-gnu/qt5/plugins/systemsettingsview/systemsettings_sidebar_mode.so
#9  0x0000563a0d21fa41 in ?? ()
#10 0x00007f68220e8f4f in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#11 0x00007f682350df07 in KDBusService::activateRequested(QStringList const&, QString const&) () from /lib/x86_64-linux-gnu/libKF5DBusAddons.so.5
#12 0x00007f682351090e in KDBusService::CommandLine(QStringList const&, QString const&, QMap<QString, QVariant> const&) () from /lib/x86_64-linux-gnu/libKF5DBusAddons.so.5
#13 0x00007f6823519a5c in ?? () from /lib/x86_64-linux-gnu/libKF5DBusAddons.so.5
#14 0x00007f68216c561b in ?? () from /lib/x86_64-linux-gnu/libQt5DBus.so.5
#15 0x00007f68216c9080 in ?? () from /lib/x86_64-linux-gnu/libQt5DBus.so.5
#16 0x00007f68216c9a82 in ?? () from /lib/x86_64-linux-gnu/libQt5DBus.so.5
#17 0x00007f68216cbd68 in ?? () from /lib/x86_64-linux-gnu/libQt5DBus.so.5
#18 0x00007f68220dd6f0 in QObject::event(QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#19 0x00007f6822d62fae in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5
#20 0x00007f68220b16f8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#21 0x00007f68220b4681 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#22 0x00007f682210a153 in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#23 0x00007f68208657a9 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#24 0x00007f6820865a38 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#25 0x00007f6820865acc in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#26 0x00007f6822109836 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#27 0x00007f68220b017b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#28 0x00007f68220b82d6 in QCoreApplication::exec() () from /lib/x86_64-linux-gnu/libQt5Core.so.5
#29 0x0000563a0d21ddee in ?? ()
#30 0x00007f6821c4618a in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#31 0x00007f6821c46245 in __libc_start_main () from /lib/x86_64-linux-gnu/libc.so.6
#32 0x0000563a0d21e6e1 in ?? ()
[Inferior 1 (process 3007) detached]

The reporter indicates this bug may be a duplicate of or related to bug 454705.

Reported using DrKonqi
Comment 1 Bug Janitor Service 2023-02-10 12:22:39 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/plasma-desktop/-/merge_requests/1381
Comment 2 Bug Janitor Service 2023-02-10 12:29:01 UTC
A possibly relevant merge request was started @ https://invent.kde.org/plasma/systemsettings/-/merge_requests/198
Comment 3 David Redondo 2023-02-10 13:25:52 UTC
Git commit 4d55735ce0b0ae134c4c69d6b92e2ac1af8970c7 by David Redondo.
Committed on 10/02/2023 at 13:07.
Pushed by davidre into branch 'master'.

kcms/landingPage: Remove double definition of onClickHandler

No need to do it twice. Also this uncovered a bug in systemsettings

M  +0    -2    kcms/landingpage/package/contents/ui/MostUsedIcon.qml

https://invent.kde.org/plasma/plasma-desktop/commit/4d55735ce0b0ae134c4c69d6b92e2ac1af8970c7
Comment 4 David Redondo 2023-02-10 14:05:16 UTC
Git commit a943561ac6f4586ccc81b5009a17d38017e7fee1 by David Redondo.
Committed on 10/02/2023 at 14:05.
Pushed by davidre into branch 'Plasma/5.27'.

kcms/landingPage: Remove double definition of onClickHandler

No need to do it twice. Also this uncovered a bug in systemsettings


(cherry picked from commit 4d55735ce0b0ae134c4c69d6b92e2ac1af8970c7)

M  +0    -2    kcms/landingpage/package/contents/ui/MostUsedIcon.qml

https://invent.kde.org/plasma/plasma-desktop/commit/a943561ac6f4586ccc81b5009a17d38017e7fee1
Comment 5 David Redondo 2023-03-24 15:26:57 UTC
Git commit 58907166d6600de3ad654922689af2a6bd0e1c51 by David Redondo.
Committed on 24/03/2023 at 08:28.
Pushed by davidre into branch 'master'.

Cancel pending resolveChanges dialog when a new one is started

We run a nested event loop while the message dialog is shown and
is waiting for user input. When during this a new request to
open another module happened (via dbus) we would show a second
dialog and run another event loop. After the first dialog was
answered with discard changes, the module was destroyed, so the
second discard answer chrashes trying to reset module which was
no longer around.
Instead prevent this by rejecting the first dialog (effect being
staying on the current module and doing nothing) before showing
the new one. This also ensures that afterwards the correct module
is opened (the one from the second request).
FIXED-IN:5.27.4

M  +21   -13   core/ModuleView.cpp

https://invent.kde.org/plasma/systemsettings/commit/58907166d6600de3ad654922689af2a6bd0e1c51
Comment 6 David Redondo 2023-03-24 15:37:10 UTC
Git commit 988ee832615a396595108159f24a8e342bd22612 by David Redondo.
Committed on 24/03/2023 at 15:32.
Pushed by davidre into branch 'Plasma/5.27'.

Cancel pending resolveChanges dialog when a new one is started

We run a nested event loop while the message dialog is shown and
is waiting for user input. When during this a new request to
open another module happened (via dbus) we would show a second
dialog and run another event loop. After the first dialog was
answered with discard changes, the module was destroyed, so the
second discard answer chrashes trying to reset module which was
no longer around.
Instead prevent this by rejecting the first dialog (effect being
staying on the current module and doing nothing) before showing
the new one. This also ensures that afterwards the correct module
is opened (the one from the second request).
FIXED-IN:5.27.4

(cherry picked from commit 58907166d6600de3ad654922689af2a6bd0e1c51)

M  +21   -13   core/ModuleView.cpp

https://invent.kde.org/plasma/systemsettings/commit/988ee832615a396595108159f24a8e342bd22612