Summary: | SDDM configuration page is crashing in KPageWidget::currentPage() every time I close it | ||
---|---|---|---|
Product: | [Applications] systemsettings | Reporter: | Aliaksei <aliaksei.here> |
Component: | kcm_sddm | Assignee: | Plasma Bugs List <plasma-bugs> |
Status: | RESOLVED FIXED | ||
Severity: | crash | CC: | dagr, kde, kde, kdedev, nate, nicolas.fella, tbertels |
Priority: | NOR | Keywords: | drkonqi |
Version: | 6.1.3 | ||
Target Milestone: | --- | ||
Platform: | Fedora RPMs | ||
OS: | Linux | ||
Latest Commit: | https://invent.kde.org/plasma/sddm-kcm/-/commit/5bc3220be8353b4d5b68e992af367bfeb85ea291 | Version Fixed In: | 6.1.5 |
Sentry Crash Report: | https://crash-reports.kde.org/organizations/kde/issues/44004/events/ab2556a472844b208838ea7d377af353/ |
Description
Aliaksei
2024-07-28 16:38:35 UTC
#5 0x00007f004d716799 in std::__uniq_ptr_impl<KPageViewPrivate, std::default_delete<KPageViewPrivate> >::_M_ptr (this=0x100000027) at /usr/include/c++/14/bits/unique_ptr.h:193 #6 std::unique_ptr<KPageViewPrivate, std::default_delete<KPageViewPrivate> >::get (this=0x100000027) at /usr/include/c++/14/bits/unique_ptr.h:464 #7 qGetPtrHelper<std::unique_ptr<KPageViewPrivate, std::default_delete<KPageViewPrivate> > const> (ptr=std::unique_ptr<KPageViewPrivate> = {...}) at /home/nico/kde/usr/include/QtCore/qtclasshelpermacros.h:103 #8 KPageWidget::d_func (this=0xffffffff) at /home/nico/kde/src/kwidgetsaddons/src/kpagewidget.h:27 #9 KPageWidget::currentPage (this=0xffffffff) at /home/nico/kde/src/kwidgetsaddons/src/kpagewidget.cpp:124 #10 0x000000000042dc97 in operator() (__closure=0x2b8fe720) at /home/nico/kde/src/systemsettings/app/ModuleView.cpp:284 #11 operator() (__closure=<optimized out>) at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:142 #12 QtPrivate::FunctorCallBase::call_internal<void, QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, ModuleView::addModule(MenuItem*, const QStringList&)::<lambda()> >::call(ModuleView::addModule(MenuItem*, const QStringList&)::<lambda()>&, void**)::<lambda()> > (args=<optimized out>, fn=<optimized out>) at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:72 #13 QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, ModuleView::addModule(MenuItem*, const QStringList&)::<lambda()> >::call (f=..., arg=<optimized out>) at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:141 #14 QtPrivate::FunctorCallable<ModuleView::addModule(MenuItem*, const QStringList&)::<lambda()> >::call<QtPrivate::List<>, void> (f=..., arg=<optimized out>) at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:363 #15 QtPrivate::QCallableObject<ModuleView::addModule(MenuItem*, const QStringList&)::<lambda()>, QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase *, QObject *, void **, bool *) (which=<optimized out>, this_=0x2b8fe710, r=<optimized out>, a=<optimized out>, ret=<optimized out>) at /home/nico/kde/usr/include/QtCore/qobjectdefs_impl.h:573 #16 0x00007f004bdfbb12 in QtPrivate::QSlotObjectBase::call (this=0x2b8fe710, r=<optimized out>, a=0x7fffb86c5478) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobjectdefs_impl.h:487 #17 doActivate<false> (sender=0x2ccbff70, signal_index=5, argv=0x7fffb86c5478) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:4120 #18 0x00007f004bdfbb12 in QtPrivate::QSlotObjectBase::call (this=0x2d00aa30, r=<optimized out>, a=0x7fffb86c5568) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobjectdefs_impl.h:487 #19 doActivate<false> (sender=0x2cc509e0, signal_index=5, argv=0x7fffb86c5568) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:4120 #20 0x00007f004bdf21f7 in QMetaObject::activate (sender=sender@entry=0x2cc509e0, m=m@entry=0x7f004fa79ac0 <KAbstractConfigModule::staticMetaObject>, local_signal_index=local_signal_index@entry=2, argv=argv@entry=0x0) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:4180 #21 0x00007f004fa73883 in KAbstractConfigModule::representsDefaultsChanged (this=this@entry=0x2cc509e0) at /home/nico/kde/build/kcmutils/src/core/KF6KCMUtilsCore_autogen/include/moc_kabstractconfigmodule.cpp:308 #22 0x00007f004fa73bb3 in KAbstractConfigModule::setRepresentsDefaults (this=this@entry=0x2cc509e0, defaults=<optimized out>) at /home/nico/kde/src/kcmutils/src/core/kabstractconfigmodule.cpp:118 #23 0x00007f004fa883c9 in KQuickManagedConfigModule::settingsChanged (this=0x2cc509e0) at /home/nico/kde/src/kcmutils/src/qml/kquickmanagedconfigmodule.cpp:92 #24 0x00007f004fa88f31 in KQuickManagedConfigModule::qt_static_metacall (_o=0x2cc509e0, _c=QMetaObject::InvokeMetaMethod, _id=3, _a=0x7fffb86c56e8) at /home/nico/kde/build/kcmutils/src/qml/KF6KCMUtilsQuick_autogen/include/moc_kquickmanagedconfigmodule.cpp:109 #25 KQuickManagedConfigModule::qt_metacall (this=this@entry=0x2cc509e0, _c=_c@entry=QMetaObject::InvokeMetaMethod, _id=3, _a=_a@entry=0x7fffb86c56e8) at /home/nico/kde/build/kcmutils/src/qml/KF6KCMUtilsQuick_autogen/include/moc_kquickmanagedconfigmodule.cpp:143 #26 0x00007efff1ea0025 in SddmKcm::qt_metacall (this=0x2cc509e0, _c=QMetaObject::InvokeMetaMethod, _id=<optimized out>, _a=0x7fffb86c56e8) at /home/nico/kde/build/sddm-kcm/src/kcm_sddm_autogen/EWIEGA46WW/moc_sddmkcm.cpp:244 #27 0x00007f004bdfbd5f in doActivate<false> (sender=0x2b345fa0, signal_index=8, argv=0x7fffb86c56e8) at /home/nico/workspace/qt6/qtbase/src/corelib/kernel/qobject.cpp:4146 #28 0x00007efff1e9fefc in SddmSettings::qt_metacall (this=0x2b345fa0, _c=QMetaObject::WriteProperty, _id=<optimized out>, _a=0x7fffb86c5940) at /home/nico/kde/build/sddm-kcm/src/kcm_sddm_autogen/EJRQKI7XPS/moc_sddmsettings.cpp:332 #29 0x00007f004e86cd59 in QV4::QObjectWrapper::setProperty (engine=engine@entry=0x2ac0f6c0, object=object@entry=0x2b345fa0, property=0x2c95fbe0, value=...) at /home/nico/workspace/qt6/qtdeclarative/src/qml/qml/qqmlpropertydata_p.h:256 #30 0x00007f004e86dd0e in QV4::QObjectWrapper::setQmlProperty (engine=engine@entry=0x2ac0f6c0, qmlContext=..., object=0x2b345fa0, name=<optimized out>, flags=flags@entry=..., value=...) at /home/nico/workspace/qt6/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:555 #31 0x00007f004e86dec9 in QV4::QObjectWrapper::virtualPut (m=0x7f00153bf658, id=..., value=..., receiver=0x7f00153bf658) at /home/nico/workspace/qt6/qtdeclarative/src/qml/jsruntime/qv4qobjectwrapper.cpp:953 *** Bug 487194 has been marked as a duplicate of this bug. *** *** Bug 485510 has been marked as a duplicate of this bug. *** A possibly relevant merge request was started @ https://invent.kde.org/plasma/sddm-kcm/-/merge_requests/77 Git commit 5cb6a56f9084ee56fe64f3c3db7a424f63af3662 by Nicolas Fella. Committed on 31/08/2024 at 15:34. Pushed by nicolasfella into branch 'master'. Fix needssave state management When opening the "Advanced" page we first get onEnabledChanged with false and then with true for the comboboxes. This causes the KCM to be in modified state despite no changes being made. When closing the KCM this further confuses systemsettings, causing a crash To avoid this restructure the code so that settings are only written when interactively changing the checkbox value SENTRY: SYSTEMSETTINGS-2DD M +9 -2 src/ui/Advanced.qml https://invent.kde.org/plasma/sddm-kcm/-/commit/5cb6a56f9084ee56fe64f3c3db7a424f63af3662 Git commit 5bc3220be8353b4d5b68e992af367bfeb85ea291 by Nicolas Fella. Committed on 02/09/2024 at 11:06. Pushed by nicolasfella into branch 'Plasma/6.1'. Fix needssave state management When opening the "Advanced" page we first get onEnabledChanged with false and then with true for the comboboxes. This causes the KCM to be in modified state despite no changes being made. When closing the KCM this further confuses systemsettings, causing a crash To avoid this restructure the code so that settings are only written when interactively changing the checkbox value SENTRY: SYSTEMSETTINGS-2DD (cherry picked from commit 5cb6a56f9084ee56fe64f3c3db7a424f63af3662) M +9 -2 src/ui/Advanced.qml https://invent.kde.org/plasma/sddm-kcm/-/commit/5bc3220be8353b4d5b68e992af367bfeb85ea291 |