Skip to content

solid-device-automounter/kcm: do not create proxy widget in initializer list

Fushan Wen requested to merge work/fuf/evilorder into master

It's too early because DeviceAutomounterKCM needs to be destructed before the proxy widget to make sure saveLayout can still access deviceView.

Backtrace
(gdb) bt
#0  0x00007f3b038949ec in __pthread_kill_implementation () at /lib64/libc.so.6
#1  0x00007f3b03841176 in raise () at /lib64/libc.so.6
#2  0x00007f3b06dddb93 in KCrash::defaultCrashHandler(int) () at /lib64/libKF6Crash.so.6
#3  0x00007f3b03841240 in <signal handler called> () at /lib64/libc.so.6
#4  0x00007f3b0645d94d in QHeaderView::sectionSize(int) const () at /lib64/libQt6Widgets.so.6
#5  0x00007f3ade02083c in  () at /usr/lib64/qt6/plugins/plasma/kcms/systemsettings_qwidgets/kcm_device_automounter.so
#6  0x00007f3ade020f83 in  () at /usr/lib64/qt6/plugins/plasma/kcms/systemsettings_qwidgets/kcm_device_automounter.so
#7  0x00007f3b041cba93 in QObjectPrivate::deleteChildren() (this=0x560aca436750)
    at /usr/src/debug/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qobject.cpp:2207
#8  0x00007f3b061f3ae8 in QWidget::~QWidget() () at /lib64/libQt6Widgets.so.6
#9  0x00007f3b06382de9 in QScrollArea::~QScrollArea() () at /lib64/libQt6Widgets.so.6
#10 0x00007f3b041cba93 in QObjectPrivate::deleteChildren() (this=0x560aca066c50)
    at /usr/src/debug/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qobject.cpp:2207
#11 0x00007f3b061f3ae8 in QWidget::~QWidget() () at /lib64/libQt6Widgets.so.6
#12 0x00007f3b06b1089d in  () at /lib64/libKF6WidgetsAddons.so.6
#13 0x00007f3b041cba93 in QObjectPrivate::deleteChildren() (this=0x560aca888060)
    at /usr/src/debug/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qobject.cpp:2207
#14 0x00007f3b061f3ae8 in QWidget::~QWidget() () at /lib64/libQt6Widgets.so.6
#15 0x00007f3b06b12619 in KPageWidget::~KPageWidget() () at /lib64/libKF6WidgetsAddons.so.6
#16 0x00007f3b041cba93 in QObjectPrivate::deleteChildren() (this=0x560aca8c4560)
    at /usr/src/debug/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qobject.cpp:2207
#17 0x00007f3b061f3ae8 in QWidget::~QWidget() () at /lib64/libQt6Widgets.so.6
#18 0x00007f3b07223069 in ModuleView::~ModuleView() () at /lib64/libsystemsettingsview.so.3
#19 0x00007f3b041cba93 in QObjectPrivate::deleteChildren() (this=0x560aca6ca440)
    at /usr/src/debug/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qobject.cpp:2207
#20 0x00007f3b061f3ae8 in QWidget::~QWidget() () at /lib64/libQt6Widgets.so.6
#21 0x0000560ac8a1b88d in  ()
#22 0x00007f3b041cba93 in QObjectPrivate::deleteChildren() (this=0x560ac9f371e0)
    at /usr/src/debug/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qobject.cpp:2207
#23 0x00007f3b061f3ae8 in QWidget::~QWidget() () at /lib64/libQt6Widgets.so.6
#24 0x00007f3b06395459 in QStackedWidget::~QStackedWidget() () at /lib64/libQt6Widgets.so.6
#25 0x00007f3b041cba93 in QObjectPrivate::deleteChildren() (this=0x560ac9f384c0)
    at /usr/src/debug/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qobject.cpp:2207
#26 0x00007f3b061f3ae8 in QWidget::~QWidget() () at /lib64/libQt6Widgets.so.6
#27 0x0000560ac8a1455b in  ()
#28 0x0000560ac8a14619 in  ()
#29 0x00007f3b041ca6b7 in QObject::event(QEvent*) (this=0x560ac9f02290, e=0x560aca5da630)
    at /usr/src/debug/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qobject.cpp:1424
#30 0x00007f3b071755b9 in KXmlGuiWindow::event(QEvent*) () at /lib64/libKF6XmlGui.so.6
#31 0x00007f3b061c1aae in QApplicationPrivate::notify_helper(QObject*, QEvent*) () at /lib64/libQt6Widgets.so.6
#32 0x00007f3b04187498 in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x560ac9f02290, event=0x560aca5da630)
    at /usr/src/debug/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qcoreapplication.cpp:1121
#33 0x00007f3b041874d9 in QCoreApplication::sendEvent(QObject*, QEvent*) (receiver=<optimized out>, event=<optimized out>)
    at /usr/src/debug/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qcoreapplication.cpp:1539
#34 0x00007f3b041877f7 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*)
    (receiver=0x0, event_type=0, data=0x560ac9b7de80)
    at /usr/src/debug/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qcoreapplication.cpp:1901
#35 0x00007f3b043a6783 in postEventSourceDispatch(GSource*, GSourceFunc, gpointer) (s=0x560ac9bdc6c0)
    at /usr/src/debug/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qeventdispatcher_glib.cpp:243
#36 0x00007f3b0364af30 in  () at /lib64/libglib-2.0.so.0
#37 0x00007f3b0364cb58 in  () at /lib64/libglib-2.0.so.0
#38 0x00007f3b0364d20c in g_main_context_iteration () at /lib64/libglib-2.0.so.0
#39 0x00007f3b043a330c in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
    (this=0x560ac9b85810, flags=...) at /usr/src/debug/qtbase-everywhere-src-6.6.2/src/corelib/kernel/qeventdispatcher_glib.cpp:393
#40 0x00007f3b04191cbb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x7ffe7d671ef0, flags=...)
    at /usr/src/debug/qtbase-everywhere-src-6.6.2/src/corelib/global/qflags.h:34
#41 0x00007f3b0418b8e6 in QCoreApplication::exec() () at /usr/src/debug/qtbase-everywhere-src-6.6.2/src/corelib/global/qflags.h:74
#42 0x0000560ac8a10e4f in  ()
#43 0x00007f3b0382a1f0 in __libc_start_call_main () at /lib64/libc.so.6
#44 0x00007f3b0382a2b9 in __libc_start_main_impl () at /lib64/libc.so.6
#45 0x0000560ac8a11f95 in  ()

Merge request reports