Bug 484667 - Systemsetting crashes when closing while kdiskfree module is open
Summary: Systemsetting crashes when closing while kdiskfree module is open
Status: RESOLVED FIXED
Alias: None
Product: kdf
Classification: Applications
Component: general (show other bugs)
Version: 24.02.1
Platform: Other Linux
: NOR crash
Target Milestone: ---
Assignee: Unassigned bugs mailing-list
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-03-28 15:42 UTC by Nicolas Fella
Modified: 2024-10-05 10:25 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Nicolas Fella 2024-03-28 15:42:22 UTC
#0  QHeaderView::isSectionHidden (this=0x0, logicalIndex=0) at /home/nico/workspace/qt6/qtbase/src/widgets/itemviews/qheaderview.cpp:933
#1  0x00007ffff68a2ba0 in QTreeView::isColumnHidden (this=<optimized out>, column=<optimized out>)
    at /home/nico/workspace/qt6/qtbase/src/widgets/itemviews/qtreeview.cpp:516
#2  0x00007fffd802882d in KDFWidget::applySettings (this=0x26bca70) at /home/nico/kde/src/kdf/src/kdfwidget.cpp:145
#3  0x00007fffdbec035f in KDiskFreeWidget::~KDiskFreeWidget (this=0x21298f0, __in_chrg=<optimized out>) at /home/nico/kde/src/kdf/src/kcmdf.cpp:31
#4  KDiskFreeWidget::~KDiskFreeWidget (this=0x21298f0, __in_chrg=<optimized out>) at /home/nico/kde/src/kdf/src/kcmdf.cpp:32
#5  0x00007ffff43b5305 in QObjectPrivate::deleteChildren (this=this@entry=0x178a3c0) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:2222
#6  0x00007ffff65d3fb8 in QWidget::~QWidget (this=0x15873a0, __in_chrg=<optimized out>) at /home/nico/workspace/qt6/qtbase/src/widgets/kernel/qwidget.cpp:1559
#7  0x00007ffff6758899 in QScrollArea::~QScrollArea (this=0x15873a0, __in_chrg=<optimized out>)
    at /home/nico/workspace/qt6/qtbase/src/widgets/widgets/qscrollarea.cpp:133
#8  0x00007ffff43b5305 in QObjectPrivate::deleteChildren (this=this@entry=0x98b8a0) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:2222
#9  0x00007ffff65d3fb8 in QWidget::~QWidget (this=0x85a830, __in_chrg=<optimized out>) at /home/nico/workspace/qt6/qtbase/src/widgets/kernel/qwidget.cpp:1559
#10 0x00007ffff6fb072d in KPageStackedWidget::~KPageStackedWidget (this=0x85a830, __in_chrg=<optimized out>) at /home/nico/kde/src/kwidgetsaddons/src/kpageview_p.h:25
#11 0x00007ffff6fb074e in KPageStackedWidget::~KPageStackedWidget (this=0x85a830, __in_chrg=<optimized out>) at /home/nico/kde/src/kwidgetsaddons/src/kpageview_p.h:25
#12 0x00007ffff43b5305 in QObjectPrivate::deleteChildren (this=this@entry=0x9b8ec0) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:2222
#13 0x00007ffff65d3fb8 in QWidget::~QWidget (this=0x98ea20, __in_chrg=<optimized out>) at /home/nico/workspace/qt6/qtbase/src/widgets/kernel/qwidget.cpp:1559
#14 0x00007ffff6f9693c in KPageView::~KPageView (this=0x98ea20, __in_chrg=<optimized out>) at /home/nico/kde/src/kwidgetsaddons/src/kpageview.cpp:658
#15 0x00007ffff6fb4386 in KPageWidget::~KPageWidget (this=0x98ea20, __in_chrg=<optimized out>) at /home/nico/kde/src/kwidgetsaddons/src/kpagewidget.cpp:58
#16 0x00007ffff6fb43a8 in KPageWidget::~KPageWidget (this=0x98ea20, __in_chrg=<optimized out>) at /home/nico/kde/src/kwidgetsaddons/src/kpagewidget.cpp:58
#17 0x00007ffff43b5305 in QObjectPrivate::deleteChildren (this=this@entry=0xa84b50) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:2222
#18 0x00007ffff65d3fb8 in QWidget::~QWidget (this=0x832530, __in_chrg=<optimized out>) at /home/nico/workspace/qt6/qtbase/src/widgets/kernel/qwidget.cpp:1559
#19 0x00007ffff7fb6971 in ModuleView::~ModuleView (this=0x832530, __in_chrg=<optimized out>) at /home/nico/kde/src/systemsettings/core/ModuleView.cpp:222
#20 0x00007ffff43b5305 in QObjectPrivate::deleteChildren (this=this@entry=0x99c8f0) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:2222
#21 0x00007ffff65d3fb8 in QWidget::~QWidget (this=this@entry=0x832500, __in_chrg=<optimized out>)
    at /home/nico/workspace/qt6/qtbase/src/widgets/kernel/qwidget.cpp:1559
#22 0x0000000000420fb5 in FocusHackWidget::~FocusHackWidget (this=0x832500, __in_chrg=<optimized out>) at /home/nico/kde/src/systemsettings/app/SidebarMode.cpp:45
#23 FocusHackWidget::~FocusHackWidget (this=0x832500, __in_chrg=<optimized out>) at /home/nico/kde/src/systemsettings/app/SidebarMode.cpp:45
#24 0x00007ffff43b5305 in QObjectPrivate::deleteChildren (this=this@entry=0x912f20) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:2222
#25 0x00007ffff65d3fb8 in QWidget::~QWidget (this=0x76e440, __in_chrg=<optimized out>) at /home/nico/workspace/qt6/qtbase/src/widgets/kernel/qwidget.cpp:1559
#26 0x00007ffff676edd9 in QStackedWidget::~QStackedWidget (this=0x76e440, __in_chrg=<optimized out>)
    at /home/nico/workspace/qt6/qtbase/src/widgets/widgets/qstackedwidget.cpp:112
#27 0x00007ffff43b5305 in QObjectPrivate::deleteChildren (this=this@entry=0x7a7b30) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:2222
#28 0x00007ffff65d3fb8 in QWidget::~QWidget (this=0x7bac00, __in_chrg=<optimized out>) at /home/nico/workspace/qt6/qtbase/src/widgets/kernel/qwidget.cpp:1559
#29 0x00007ffff6707cbd in QMainWindow::~QMainWindow (this=<optimized out>, __in_chrg=<optimized out>)
    at /home/nico/workspace/qt6/qtbase/src/widgets/widgets/qmainwindow.cpp:340
#30 0x00007ffff7bca347 in KXmlGuiWindow::~KXmlGuiWindow
    (this=this@entry=0x7bac00, __vtt_parm=__vtt_parm@entry=0x451708 <VTT for SettingsBase+8>, __in_chrg=<optimized out>)
    at /home/nico/kde/src/kxmlgui/src/kxmlguiwindow.cpp:217
#31 0x0000000000419e8b in SettingsBase::~SettingsBase (this=0x7bac00, __in_chrg=<optimized out>, __vtt_parm=<optimized out>)
    at /home/nico/kde/src/systemsettings/app/SettingsBase.cpp:69
#32 0x0000000000419f51 in SettingsBase::~SettingsBase (this=0x7bac00, __in_chrg=<optimized out>, __vtt_parm=<optimized out>)
    at /home/nico/kde/src/systemsettings/app/SettingsBase.cpp:69
#33 0x00007ffff43af938 in QObject::event (this=this@entry=0x7bac00, e=e@entry=0x25fe960) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:1437
#34 0x00007ffff65d8379 in QWidget::event (this=this@entry=0x7bac00, event=event@entry=0x25fe960) at /home/nico/workspace/qt6/qtbase/src/widgets/kernel/qwidget.cpp:9461
--Type <RET> for more, q to quit, c to continue without paging--c
#35 0x00007ffff6709c3a in QMainWindow::event (this=this@entry=0x7bac00, event=event@entry=0x25fe960)
    at /home/nico/workspace/qt6/qtbase/src/widgets/widgets/qmainwindow.cpp:1314
#36 0x00007ffff7b8723a in KMainWindow::event (this=this@entry=0x7bac00, ev=ev@entry=0x25fe960) at /home/nico/kde/src/kxmlgui/src/kmainwindow.cpp:906
#37 0x00007ffff7bcd26f in KXmlGuiWindow::event (this=0x7bac00, ev=0x25fe960) at /home/nico/kde/src/kxmlgui/src/kxmlguiwindow.cpp:221
#38 0x00007ffff6581b51 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x7bac00, e=0x25fe960)
    at /home/nico/workspace/qt6/qtbase/src/widgets/kernel/qapplication.cpp:3287
#39 0x00007ffff435f4f8 in QCoreApplication::notifyInternal2 (receiver=0x7bac00, event=0x25fe960)
    at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1134
#40 0x00007ffff435f6b9 in QCoreApplication::sendEvent (receiver=<optimized out>, event=<optimized out>)
    at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1575
#41 0x00007ffff4362c41 in QCoreApplicationPrivate::sendPostedEvents (receiver=0x0, event_type=0, data=0x488c30)
    at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1932
#42 0x00007ffff4362f28 in QCoreApplication::sendPostedEvents (receiver=<optimized out>, event_type=<optimized out>)
    at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qcoreapplication.cpp:1789
#43 0x00007ffff460b5a3 in postEventSourceDispatch (s=0x4b29d0) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:244
#44 0x00007ffff3820e5c in g_main_dispatch (context=0x7fffdc000ef0) at ../glib/gmain.c:3476
#45 g_main_context_dispatch_unlocked (context=0x7fffdc000ef0) at ../glib/gmain.c:4284
#46 0x00007ffff387bf18 in g_main_context_iterate_unlocked.isra.0
    (context=context@entry=0x7fffdc000ef0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4349
#47 0x00007ffff381ead3 in g_main_context_iteration (context=0x7fffdc000ef0, may_block=1) at ../glib/gmain.c:4414
#48 0x00007ffff460aebc in QEventDispatcherGlib::processEvents (this=0x48c670, flags=...)
    at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:394
#49 0x00007ffff436ae6b in QEventLoop::exec (this=this@entry=0x7fffffffd340, flags=..., flags@entry=...)
    at /home/nico/workspace/qt6/qtbase/src/corelib/global/qflags.h:34
#50 0x00007ffff4367862 in QCoreApplication::exec () at /home/nico/workspace/qt6/qtbase/src/corelib/global/qflags.h:74
#51 0x00007ffff4bb3a8c in QGuiApplication::exec () at /home/nico/workspace/qt6/qtbase/src/gui/kernel/qguiapplication.cpp:1926
#52 0x00007ffff6581ac5 in QApplication::exec () at /home/nico/workspace/qt6/qtbase/src/widgets/kernel/qapplication.cpp:2555
#53 0x0000000000413a51 in main (argc=<optimized out>, argv=<optimized out>) at /home/nico/kde/src/systemsettings/app/main.cpp:175

SOFTWARE/OS VERSIONS
KDE Plasma Version: master
KDE Frameworks Version: master
Qt Version: 6.7

ADDITIONAL INFORMATION
Comment 1 Bug Janitor Service 2024-09-22 13:05:23 UTC
A possibly relevant merge request was started @ https://invent.kde.org/utilities/kdf/-/merge_requests/24
Comment 2 Albert Astals Cid 2024-10-05 06:40:05 UTC
Git commit 926d933f86828bcd3b796939dd8060f9670079c9 by Albert Astals Cid, on behalf of Nicolas Fella.
Committed on 05/10/2024 at 06:39.
Pushed by aacid into branch 'master'.

Fix crash when closing KCM

The KCM widget and its children are destroyed before the KCModule is destroyed,
so by the time we destroy the KCModule accessing the widget crashes.

Instead save the state when the widget is destroyed.

M  +0    -4    src/kcmdf.cpp
M  +0    -1    src/kcmdf.h
M  +0    -6    src/kdf.cpp
M  +0    -3    src/kdf.h
M  +2    -1    src/kdfwidget.cpp

https://invent.kde.org/utilities/kdf/-/commit/926d933f86828bcd3b796939dd8060f9670079c9
Comment 3 Nicolas Fella 2024-10-05 10:25:02 UTC
Git commit 6946c62d2a091a3a309dc78620a0137c260e95d8 by Nicolas Fella.
Committed on 05/10/2024 at 10:24.
Pushed by nicolasfella into branch 'release/24.08'.

Fix crash when closing KCM

The KCM widget and its children are destroyed before the KCModule is destroyed,
so by the time we destroy the KCModule accessing the widget crashes.

Instead save the state when the widget is destroyed.
(cherry picked from commit 926d933f86828bcd3b796939dd8060f9670079c9)

M  +0    -4    src/kcmdf.cpp
M  +0    -1    src/kcmdf.h
M  +0    -8    src/kdf.cpp
M  +0    -2    src/kdf.h
M  +2    -2    src/kdfwidget.cpp

https://invent.kde.org/utilities/kdf/-/commit/6946c62d2a091a3a309dc78620a0137c260e95d8