Bug 434623

Summary: System Settings crashes in FirewallClient::setBackend() when firewall page is opened a second time
Product: [Applications] systemsettings Reporter: Nate Graham <nate>
Component: kcm_firewallAssignee: Tomaz Canabrava <tumaix>
Status: RESOLVED NOT A BUG    
Severity: crash CC: tcanabrava
Priority: VHI    
Version: unspecified   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Nate Graham 2021-03-19 14:45:00 UTC
100% reproducible for me on git master, with everything KDE from built from source.

Steps to rproduce are identical to Bug 433025, but now the backtrace of the crash is different:

#0  0x00007f6da409971f in FirewallClient::setBackend(QStringList const&)
    (this=this@entry=0x864d4d0, backendList=...)
    at /home/nate/kde/src/plasma-firewall/kcm/core/firewallclient.cpp:279
#1  0x00007f6da409a2b0 in FirewallClient::FirewallClient(QObject*)
    (this=0x864d4d0, parent=<optimized out>) at /usr/include/c++/10/bits/stl_algobase.h:378
#2  0x00007f6da419beac in KCMFirewall::KCMFirewall(QObject*, QList<QVariant> const&)
    (this=0x83c4850, parent=<optimized out>, args=<optimized out>)
    at /home/nate/kde/src/plasma-firewall/kcm/kcm.cpp:27
#3  0x00007f6da419e19a in KPluginFactory::createInstance<KCMFirewall, QObject>(QWidget*, QObject*, QList<QVariant> const&) (parentWidget=<optimized out>, parent=<optimized out>, args=...)
    at /home/nate/kde/usr/include/KF5/KCoreAddons/kpluginfactory.h:726
#4  0x00007f6de67cfac2 in KPluginFactory::create(char const*, QWidget*, QObject*, QList<QVariant> const&, QString const&)
    (this=this@entry=0x1f4c2f0, iface=0x7f6de8b250f0 <qt_meta_stringdata_KQuickAddons__ConfigModule+1392> "KQuickAddons::ConfigModule", parentWidget=parentWidget@entry=0x0, parent=parent@entry=0x0, args=..., keyword=...) at /home/nate/kde/src/kcoreaddons/src/lib/plugin/kpluginfactory.cpp:177
#5  0x00007f6de8c13918 in KPluginFactory::create<KQuickAddons::ConfigModule>(QObject*, QList<QVariant> const&) (args=..., parent=0x0, this=0x1f4c2f0)
    at /home/nate/kde/usr/include/KF5/KCoreAddons/kpluginfactory.h:771
#6  KCModuleLoader::loadModule(KCModuleInfo const&, KCModuleLoader::ErrorReporting, QWidget*, QStringList const&) (mod=..., report=report@entry=KCModuleLoader::Inline, parent=0x7f77e30, args=...)
    at /home/nate/kde/src/kcmutils/src/kcmoduleloader.cpp:98
#7  0x00007f6de8c1b882 in KCModuleProxyPrivate::loadModule() (this=this@entry=0xa1e2080)
    at /home/nate/kde/src/kcmutils/src/kcmoduleproxy.cpp:81
#8  0x00007f6de8c1bcaa in KCModuleProxy::realModule() const (this=this@entry=0x7f77e30)
    at /home/nate/kde/src/kcmutils/src/kcmoduleproxy.cpp:54
#9  0x00007f6de8c1c283 in KCModuleProxy::showEvent(QShowEvent*) (this=0x7f77e30, ev=0x7ffd10a8ce40)
    at /home/nate/kde/src/kcmutils/src/kcmoduleproxy.cpp:147
#10 0x00007f6de720734e in QWidget::event(QEvent*) (this=0x7f77e30, event=0x7ffd10a8ce40)
    at kernel/qwidget.cpp:9019
#11 0x00007f6de71c74ff in QApplicationPrivate::notify_helper(QObject*, QEvent*)
    (this=<optimized out>, receiver=0x7f77e30, e=0x7ffd10a8ce40) at kernel/qapplication.cpp:3632
#12 0x00007f6de649232a in QCoreApplication::notifyInternal2(QObject*, QEvent*)
    (receiver=0x7f77e30, event=0x7ffd10a8ce40) at kernel/qcoreapplication.cpp:1063
#13 0x00007f6de7203d43 in QWidgetPrivate::show_helper() (this=0x9caa4a0) at kernel/qwidget.cpp:7813
#14 0x00007f6de7203b1b in QWidgetPrivate::show_recursive() (this=<optimized out>)
    at kernel/qwidget.cpp:7692
#15 0x00007f6de7203ca9 in QWidgetPrivate::showChildren(bool)
    (this=this@entry=0xa196070, spontaneous=spontaneous@entry=false) at kernel/qwidget.h:132
#16 0x00007f6de7203d1f in QWidgetPrivate::show_helper() (this=this@entry=0xa196070)
    at kernel/qwidget.cpp:7768
#17 0x00007f6de7206e93 in QWidgetPrivate::setVisible(bool)
    (this=0xa196070, visible=<optimized out>) at kernel/qwidget.cpp:8111
#18 0x00007f6de7203c89 in QWidgetPrivate::showChildren(bool)
    (this=this@entry=0x9cfa140, spontaneous=spontaneous@entry=false) at kernel/qwidget.cpp:8183
#19 0x00007f6de7203d1f in QWidgetPrivate::show_helper() (this=this@entry=0x9cfa140)
    at kernel/qwidget.cpp:7768
#20 0x00007f6de7206e93 in QWidgetPrivate::setVisible(bool)
    (this=0x9cfa140, visible=<optimized out>) at kernel/qwidget.cpp:8111
#21 0x00007f6de71ec59f in QStackedLayout::setCurrentIndex(int) (this=0x179daf0, index=1)
   stackedlayout.cpp:321
#22 0x00007f6de79b1eb5 in KPageViewPrivate::_k_pageSelected(QItemSelection const&, QItemSelection const&) (this=0x181ef10, index=<optimized out>, previous=...)
    at /home/nate/kde/src/kwidgetsaddons/src/kpageview.cpp:252
#23 0x00007f6de64c8980 in doActivate<false>(QObject*, int, void**) (sender=0x17df790, signal_index=3, argv=argv@entry=0x7ffd10a8d310) at kernel/qobject.cpp:3898
#24 0x00007f6de64c1c60 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**)
    (sender=<optimized out>, m=m@entry=0x7f6de6775040 <QItemSelectionModel::staticMetaObject>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffd10a8d310) at kernel/qobject.cpp:3946
#25 0x00007f6de643d2e0 in QItemSelectionModel::selectionChanged(QItemSelection const&, QItemSelection const&) (this=<optimized out>, _t1=<optimized out>, _t2=<optimized out>)
    at .moc/moc_qitemselectionmodel.cpp:475
#26 0x00007f6de6445ede in QItemSelectionModel::select(QItemSelection const&, QFlags<QItemSelectionModel::SelectionFlag>) (this=0x17df790, selection=<optimized out>, command=...)
    at itemmodels/qitemselectionmodel.cpp:1340
#27 0x00007f6de6440b63 in QItemSelectionModel::select(QModelIndex const&, QFlags<QItemSelectionModel::SelectionFlag>) (command=..., index=<optimized out>, this=0x17df790)
    at itemmodels/qitemselectionmodel.cpp:1190
#28 QItemSelectionModel::setCurrentIndex(QModelIndex const&, QFlags<QItemSelectionModel::SelectionFlag>) (this=0x17df790, index=<optimized out>, command=...) at itemmodels/qitemselectionmodel.cpp:1415
#29 0x00007f6de79b04b7 in KPageViewPrivate::updateSelection() (this=this@entry=0x181ef10) at /home/nate/kde/src/kwidgetsaddons/src/kpageview.cpp:117
#30 0x00007f6de79b1d5c in KPageViewPrivate::updateSelection() (this=0x181ef10) at /home/nate/kde/src/kwidgetsaddons/src/kpageview.cpp:111
#31 KPageViewPrivate::_k_modelChanged() (this=0x181ef10) at /home/nate/kde/src/kwidgetsaddons/src/kpageview.cpp:223
#32 0x00007f6de64c8980 in doActivate<false>(QObject*, int, void**) (sender=0x17e6580, signal_index=6, argv=argv@entry=0x7ffd10a8d690) at kernel/qobject.cpp:3898
#33 0x00007f6de64c1c60 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**)
    (sender=sender@entry=0x17e6580, m=m@entry=0x7f6de6774f40 <QAbstractItemModel::staticMetaObject>, local_signal_index=local_signal_index@entry=3, argv=argv@entry=0x7ffd10a8d690)
    at kernel/qobject.cpp:3946
#34 0x00007f6de642d066 in QAbstractItemModel::layoutChanged(QList<QPersistentModelIndex> const&, QAbstractItemModel::LayoutChangeHint) (this=this@entry=0x17e6580, _t1=..., _t2=<optimized out>, 
    _t2@entry=QAbstractItemModel::NoLayoutChangeHint) at .moc/moc_qabstractitemmodel.cpp:571
#35 0x00007f6de79b7b8c in KPageWidgetModel::addPage(KPageWidgetItem*) (this=0x17e6580, item=0xa177480) at /home/nate/kde/src/kwidgetsaddons/src/kpagewidgetmodel.cpp:434
#36 0x00007f6dcc0d223c in  () at /usr/lib64/qt5/plugins/systemsettingsview/systemsettings_sidebar_mode.so
#37 0x00007f6dcc0c8c81 in  () at /usr/lib64/qt5/plugins/systemsettingsview/systemsettings_sidebar_mode.so
#38 0x00007f6dcc0cb2f1 in  () at /usr/lib64/qt5/plugins/systemsettingsview/systemsettings_sidebar_mode.so
#39 0x00007f6dcc0cbf23 in  () at /usr/lib64/qt5/plugins/systemsettingsview/systemsettings_sidebar_mode.so
#40 0x00007f6de8308afd in QQmlObjectOrGadget::metacall(QMetaObject::Call, int, void**) const (this=this@entry=0x7ffd10a8ddc0, type=type@entry=QMetaObject::InvokeMetaMethod, index=<optimized out>, 
    index@entry=32, argv=<optimized out>) at /usr/src/debug/libqt5-qtdeclarative-5.15.2-3.1.x86_64/src/qml/qml/qqmlobjectorgadget.cpp:51
#41 0x00007f6de81f1d6e in CallMethod
    (callType=<optimized out>, callArgs=0x7ffd10a8ddc0, engine=<optimized out>, argTypes=<optimized out>, argCount=<optimized out>, returnType=<optimized out>, index=<optimized out>, object=...)
    at /usr/include/qt5/QtCore/qvarlengtharray.h:201
#42 CallPrecise(QQmlObjectOrGadget const&, QQmlPropertyData const&, QV4::ExecutionEngine*, QV4::CallData*, QMetaObject::Call)
    (object=..., data=<optimized out>, engine=engine@entry=0x1cae6a0, callArgs=callArgs@entry=0x7f6da6bbf5b8, callType=callType@entry=QMetaObject::InvokeMetaMethod)
    at /usr/src/debug/libqt5-qtdeclarative-5.15.2-3.1.x86_64/src/qml/jsruntime/qv4qobjectwrapper.cpp:1569

#43 0x00007f6de81f3bba in CallOverloaded (callType=<optimized out>, propertyCache=<optimized out>, callArgs=<optimized out>, engine=<optimized out>, data=<optimized out>, object=<optimized out>)
    at /usr/src/debug/libqt5-qtdeclarative-5.15.2-3.1.x86_64/src/qml/jsruntime/qv4qobjectwrapper.cpp:1645
#44 QV4::QObjectMethod::callInternal(QV4::Value const*, QV4::Value const*, int) const (this=<optimized out>, thisObject=<optimized out>, argv=<optimized out>, argc=<optimized out>)
    at /usr/src/debug/libqt5-qtdeclarative-5.15.2-3.1.x86_64/src/qml/jsruntime/qv4qobjectwrapper.cpp:2133
#45 0x00007f6de820f3ef in QV4::FunctionObject::call(QV4::Value const*, QV4::Value const*, int) const (argc=<optimized out>, argv=<optimized out>, thisObject=<optimized out>, this=<optimized out>)
    at /usr/src/debug/libqt5-qtdeclarative-5.15.2-3.1.x86_64/include/QtQml/5.15.2/QtQml/private/../../../../../src/qml/jsruntime/qv4functionobject_p.h:172
#46 QV4::Moth::VME::interpret(QV4::CppStackFrame*, QV4::ExecutionEngine*, char const*) (frame=0x7ffd10a8e080, engine=0x1cae6a0, code=0x7f6da6bbf540 "@\337c\246m\177")
    at /usr/src/debug/libqt5-qtdeclarative-5.15.2-3.1.x86_64/src/qml/jsruntime/qv4vme_moth.cpp:754
#47 0x00007f6de8211f17 in QV4::Moth::VME::exec(QV4::CppStackFrame*, QV4::ExecutionEngine*) (frame=frame@entry=0x7ffd10a8e080, engine=engine@entry=0x1cae6a0)
    at /usr/src/debug/libqt5-qtdeclarative-5.15.2-3.1.x86_64/src/qml/jsruntime/qv4vme_moth.cpp:463
#48 0x00007f6de81ad73d in QV4::Function::call(QV4::Value const*, QV4::Value const*, int, QV4::ExecutionContext const*)
    (this=this@entry=0x195a870, thisObject=<optimized out>, argv=argv@entry=0x7f6da6bbf500, argc=<optimized out>, context=<optimized out>)
    at /usr/src/debug/libqt5-qtdeclarative-5.15.2-3.1.x86_64/src/qml/jsruntime/qv4function.cpp:69
#49 0x00007f6de83247f5 in QQmlJavaScriptExpression::evaluate(QV4::CallData*, bool*) (this=this@entry=0x1dd21d0, callData=callData@entry=0x7f6da6bbf4d0, isUndefined=isUndefined@entry=0x0)
    at /usr/src/debug/libqt5-qtdeclarative-5.15.2-3.1.x86_64/src/qml/qml/qqmljavascriptexpression.cpp:212
#50 0x00007f6de82d896b in QQmlBoundSignalExpression::evaluate(void**) (this=<optimized out>, a=<optimized out>)
    at /usr/src/debug/libqt5-qtdeclarative-5.15.2-3.1.x86_64/include/QtQml/5.15.2/QtQml/private/../../../../../src/qml/jsruntime/qv4jscall_p.h:95
#51 0x00007f6de82d8e50 in QQmlBoundSignal_callback(QQmlNotifierEndpoint*, void**) (e=0x1dd2180, a=0x0)
    at /usr/src/debug/libqt5-qtdeclarative-5.15.2-3.1.x86_64/include/QtQml/5.15.2/QtQml/private/../../../../../src/qml/qml/qqmlboundsignalexpressionpointer_p.h:69
#52 0x00007f6de83085ad in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) (endpoint=<optimized out>, a=0x0)
    at /usr/src/debug/libqt5-qtdeclarative-5.15.2-3.1.x86_64/src/qml/qml/qqmlnotifier.cpp:104
#53 0x00007f6de64c84d5 in doActivate<false>(QObject*, int, void**) (sender=0x4e63020, signal_index=64, argv=0x0) at kernel/qobject.cpp:3778
#54 0x00007f6de1648141 in QQuickAbstractButtonPrivate::handleRelease(QPointF const&) (this=0x4e630e0, point=...) at qquickabstractbutton.cpp:182
#55 0x00007f6de1662555 in QQuickControl::mouseReleaseEvent(QMouseEvent*) (this=<optimized out>, event=0x7ffd10a90050) at qquickcontrol.cpp:2151
#56 0x00007f6de87b99c8 in QQuickItem::event(QEvent*) (this=0x4e63020, ev=0x7ffd10a90050) at /usr/src/debug/libqt5-qtdeclarative-5.15.2-3.1.x86_64/src/quick/items/qquickitem.cpp:8189
#57 0x00007f6de71c74ff in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x4e63020, e=0x7ffd10a90050) at kernel/qapplication.cpp:3632
#58 0x00007f6de649232a in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x4e63020, event=0x7ffd10a90050) at kernel/qcoreapplication.cpp:1063
#59 0x00007f6de87d5894 in QQuickWindowPrivate::deliverMouseEvent(QQuickPointerMouseEvent*) (this=this@entry=0x18e2500, pointerEvent=0x7f30140)
    at /usr/src/debug/libqt5-qtdeclarative-5.15.2-3.1.x86_64/src/quick/items/qquickwindow.cpp:2020
#60 0x00007f6de87d6bcb in QQuickWindowPrivate::deliverPointerEvent(QQuickPointerEvent*) (this=0x18e2500, event=0x7f30140)
    at /usr/src/debug/libqt5-qtdeclarative-5.15.2-3.1.x86_64/src/quick/items/qquickwindow.cpp:2612
#61 0x00007f6de6a8efa5 in QWindow::event(QEvent*) (this=0x17e18a0, ev=<optimized out>) at kernel/qwindow.cpp:2438
#62 0x00007f6de71c74ff in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x17e18a0, e=0x7ffd10a90050) at kernel/qapplication.cpp:3632
#63 0x00007f6de649232a in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x17e18a0, event=0x7ffd10a90050) at kernel/qcoreapplication.cpp:1063
#64 0x00007f6de5c69f77 in QQuickWidget::mouseReleaseEvent(QMouseEvent*) (this=<optimized out>, e=0x7ffd10a905d0)
    at /usr/src/debug/libqt5-qtdeclarative-5.15.2-3.1.x86_64/src/quickwidgets/qquickwidget.cpp:1417
#65 0x00007f6de720734e in QWidget::event(QEvent*) (this=0x187bfd0, event=0x7ffd10a905d0) at kernel/qwidget.cpp:9019
#66 0x00007f6de71c74ff in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=this@entry=0x14037d0, receiver=receiver@entry=0x187bfd0, e=e@entry=0x7ffd10a905d0) at kernel/qapplication.cpp:3632
#67 0x00007f6de71ce3eb in QApplication::notify(QObject*, QEvent*) (this=0x7ffd10a902d0, receiver=0x187bfd0, e=0x7ffd10a905d0) at kernel/qapplication.cpp:3076
#68 0x00007f6de649232a in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x187bfd0, event=0x7ffd10a905d0) at kernel/qcoreapplication.cpp:1063
#69 0x00007f6de71cd416 in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool)
    (receiver=receiver@entry=0x187bfd0, event=event@entry=0x7ffd10a905d0, alienWidget=alienWidget@entry=0x187bfd0, nativeWidget=0x15ac740, buttonDown=buttonDown@entry=0x7f6de76f5670 <qt_button_down>, lastMouseReceiver=..., spontaneous=true, onlyDispatchEnterLeave=false) at kernel/qapplication.cpp:2614
#70 0x00007f6de721f3b1 in QWidgetWindow::handleMouseEvent(QMouseEvent*) (this=0x19edab0, event=0x7ffd10a90890) at kernel/qwidgetwindow.cpp:683
#71 0x00007f6de72228be in QWidgetWindow::event(QEvent*) (this=0x19edab0, event=0x7ffd10a90890) at kernel/qwidgetwindow.cpp:300
#72 0x00007f6de71c74ff in QApplicationPrivate::notify_helper(QObject*, QEvent*) (this=<optimized out>, receiver=0x19edab0, e=0x7ffd10a90890) at kernel/qapplication.cpp:3632
#73 0x00007f6de649232a in QCoreApplication::notifyInternal2(QObject*, QEvent*) (receiver=0x19edab0, event=0x7ffd10a90890) at kernel/qcoreapplication.cpp:1063
#74 0x00007f6de6a82d03 in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) (e=0xa7db470) at kernel/qguiapplication.cpp:2282
#75 0x00007f6de6a58c5c in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) (flags=flags@entry=...) at kernel/qwindowsysteminterface.cpp:1169
#76 0x00007f6de2452faa in xcbSourceDispatch(GSource*, GSourceFunc, gpointer) (source=source@entry=0x14f8be0) at qxcbeventdispatcher.cpp:105
#77 0x00007f6de491cf57 in g_main_dispatch (context=0x7f6ddc005000) at ../glib/gmain.c:3325
#78 g_main_context_dispatch (context=0x7f6ddc005000) at ../glib/gmain.c:4043
#79 0x00007f6de491d2d8 in g_main_context_iterate (context=context@entry=0x7f6ddc005000, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:4119
#80 0x00007f6de491d38f in g_main_context_iteration (context=0x7f6ddc005000, may_block=may_block@entry=1) at ../glib/gmain.c:4184
#81 0x00007f6de64e98bf in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x15079b0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#82 0x00007f6de6490ceb in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) (this=this@entry=0x7ffd10a90bc0, flags=..., flags@entry=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#83 0x00007f6de6498f60 in QCoreApplication::exec() () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#84 0x00007f6de6a7635c in QGuiApplication::exec() () at kernel/qguiapplication.cpp:1867
#85 0x00007f6de71c7475 in QApplication::exec() () at kernel/qapplication.cpp:2824
#86 0x000000000040dd79 in main(int, char**) (argc=<optimized out>, argv=0x7ffd10a90cf0) at /home/nate/kde/src/systemsettings/app/main.cpp:208
Comment 1 Nate Graham 2021-03-19 14:45:27 UTC
Tomaz, could you take a look? Thanks!
Comment 2 tcanabrava 2021-03-19 15:37:53 UTC
yes, on it.
Comment 3 Nate Graham 2021-03-19 15:55:36 UTC
I'm so sorry; this is not a real bug. :(

I build the KCM from source, but the remote repo I was pulling from was your original fork, left over from back when the KCM was still in development--not the newer URL after it was moved to the plasma group. So I was using an old version of the KCM. I can no longer reproduce the crash when I build the latest version.

So sorry for the false alarm!