Application: systemsettings (5.26.90) Qt Version: 5.15.8 Frameworks Version: 5.102.0 Operating System: Linux 6.1.0-2-amd64 x86_64 Windowing System: X11 Distribution: Debian GNU/Linux 11 (bullseye) DrKonqi: 5.26.90 [KCrashBackend] -- Information about the crash: Worked fine. I opened an app to add a command line argument, saved, now I can't open properties again (for any app, it seems) because of the segfaults. The crash can be reproduced every time. -- Backtrace: Application: System Settings (systemsettings), signal: Segmentation fault [KCrash Handler] #4 0x00007fb31ecb3d64 in QWidgetLineControl::internalSetText(QString const&, int, bool) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #5 0x00007fb31938ab83 in ?? () from /lib/x86_64-linux-gnu/libKF5KIOWidgets.so.5 #6 0x00007fb31938e0f8 in ?? () from /lib/x86_64-linux-gnu/libKF5KIOWidgets.so.5 #7 0x00007fb31938e60a in ?? () from /lib/x86_64-linux-gnu/libKF5KIOWidgets.so.5 #8 0x00007fb3055ef463 in ?? () from /usr/lib/x86_64-linux-gnu/qt5/plugins/plasma/kcms/systemsettings/kcm_autostart.so #9 0x00007fb3055ee171 in ?? () from /usr/lib/x86_64-linux-gnu/qt5/plugins/plasma/kcms/systemsettings/kcm_autostart.so #10 0x00007fb31bac6c93 in ?? () from /lib/x86_64-linux-gnu/libQt5Qml.so.5 #11 0x00007fb31b9a3521 in ?? () from /lib/x86_64-linux-gnu/libQt5Qml.so.5 #12 0x00007fb31b9a53e0 in QV4::QObjectMethod::callInternal(QV4::Value const*, QV4::Value const*, int) const () from /lib/x86_64-linux-gnu/libQt5Qml.so.5 #13 0x00007fb31b9c1cb6 in ?? () from /lib/x86_64-linux-gnu/libQt5Qml.so.5 #14 0x00007fb31b9c53df in ?? () from /lib/x86_64-linux-gnu/libQt5Qml.so.5 #15 0x00007fb31b957c2e in QV4::Function::call(QV4::Value const*, QV4::Value const*, int, QV4::ExecutionContext const*) () from /lib/x86_64-linux-gnu/libQt5Qml.so.5 #16 0x00007fb31bae144d in QQmlJavaScriptExpression::evaluate(QV4::CallData*, bool*) () from /lib/x86_64-linux-gnu/libQt5Qml.so.5 #17 0x00007fb31ba92baf in QQmlBoundSignalExpression::evaluate(void**) () from /lib/x86_64-linux-gnu/libQt5Qml.so.5 #18 0x00007fb31ba942f8 in ?? () from /lib/x86_64-linux-gnu/libQt5Qml.so.5 #19 0x00007fb31bac677f in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) () from /lib/x86_64-linux-gnu/libQt5Qml.so.5 #20 0x00007fb31dce8a8d in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #21 0x00007fb319195592 in QQuickAction::triggered(QObject*) () from /lib/x86_64-linux-gnu/libQt5QuickTemplates2.so.5 #22 0x00007fb31919657e in ?? () from /lib/x86_64-linux-gnu/libQt5QuickTemplates2.so.5 #23 0x00007fb319197223 in QQuickAction::qt_metacall(QMetaObject::Call, int, void**) () from /lib/x86_64-linux-gnu/libQt5QuickTemplates2.so.5 #24 0x00007fb31bac6c93 in ?? () from /lib/x86_64-linux-gnu/libQt5Qml.so.5 #25 0x00007fb31b9a20bd in ?? () from /lib/x86_64-linux-gnu/libQt5Qml.so.5 #26 0x00007fb31b9a53e0 in QV4::QObjectMethod::callInternal(QV4::Value const*, QV4::Value const*, int) const () from /lib/x86_64-linux-gnu/libQt5Qml.so.5 #27 0x00007fb31b9c1cb6 in ?? () from /lib/x86_64-linux-gnu/libQt5Qml.so.5 #28 0x00007fb31b9c53df in ?? () from /lib/x86_64-linux-gnu/libQt5Qml.so.5 #29 0x00007fb31b957c2e in QV4::Function::call(QV4::Value const*, QV4::Value const*, int, QV4::ExecutionContext const*) () from /lib/x86_64-linux-gnu/libQt5Qml.so.5 #30 0x00007fb31bae144d in QQmlJavaScriptExpression::evaluate(QV4::CallData*, bool*) () from /lib/x86_64-linux-gnu/libQt5Qml.so.5 #31 0x00007fb31ba92baf in QQmlBoundSignalExpression::evaluate(void**) () from /lib/x86_64-linux-gnu/libQt5Qml.so.5 #32 0x00007fb31ba942f8 in ?? () from /lib/x86_64-linux-gnu/libQt5Qml.so.5 #33 0x00007fb31bac677f in QQmlNotifier::emitNotify(QQmlNotifierEndpoint*, void**) () from /lib/x86_64-linux-gnu/libQt5Qml.so.5 #34 0x00007fb31dce8a8d in ?? () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #35 0x00007fb319194221 in QQuickAbstractButtonPrivate::handleRelease(QPointF const&) () from /lib/x86_64-linux-gnu/libQt5QuickTemplates2.so.5 #36 0x00007fb3191b3251 in QQuickControl::mouseReleaseEvent(QMouseEvent*) () from /lib/x86_64-linux-gnu/libQt5QuickTemplates2.so.5 #37 0x00007fb31c0550c8 in QQuickItem::event(QEvent*) () from /lib/x86_64-linux-gnu/libQt5Quick.so.5 #38 0x00007fb31eb62fae in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #39 0x00007fb31dcb16f8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #40 0x00007fb31c07298a in QQuickWindowPrivate::deliverMouseEvent(QQuickPointerMouseEvent*) () from /lib/x86_64-linux-gnu/libQt5Quick.so.5 #41 0x00007fb31c07408d in QQuickWindowPrivate::deliverPointerEvent(QQuickPointerEvent*) () from /lib/x86_64-linux-gnu/libQt5Quick.so.5 #42 0x00007fb31e3493f5 in QWindow::event(QEvent*) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5 #43 0x00007fb31eb62fae in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #44 0x00007fb31dcb16f8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #45 0x00007fb31cbd1057 in QQuickWidget::mouseReleaseEvent(QMouseEvent*) () from /lib/x86_64-linux-gnu/libQt5QuickWidgets.so.5 #46 0x00007fb31eba4db8 in QWidget::event(QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #47 0x00007fb31eb62fae in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #48 0x00007fb31eb6b552 in QApplication::notify(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #49 0x00007fb31dcb16f8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #50 0x00007fb31eb6965e in QApplicationPrivate::sendMouseEvent(QWidget*, QMouseEvent*, QWidget*, QWidget*, QWidget**, QPointer<QWidget>&, bool, bool) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #51 0x00007fb31ebbdbd8 in ?? () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #52 0x00007fb31ebc0f60 in ?? () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #53 0x00007fb31eb62fae in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Widgets.so.5 #54 0x00007fb31dcb16f8 in QCoreApplication::notifyInternal2(QObject*, QEvent*) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #55 0x00007fb31e33d3ed in QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent*) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5 #56 0x00007fb31e311cac in QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Gui.so.5 #57 0x00007fb3189a1eba in ?? () from /lib/x86_64-linux-gnu/libQt5XcbQpa.so.5 #58 0x00007fb31c4657a9 in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #59 0x00007fb31c465a38 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #60 0x00007fb31c465acc in g_main_context_iteration () from /lib/x86_64-linux-gnu/libglib-2.0.so.0 #61 0x00007fb31dd09836 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #62 0x00007fb31dcb017b in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #63 0x00007fb31dcb82d6 in QCoreApplication::exec() () from /lib/x86_64-linux-gnu/libQt5Core.so.5 #64 0x000055a992fb5dee in ?? () #65 0x00007fb31df7c18a in ?? () from /lib/x86_64-linux-gnu/libc.so.6 #66 0x00007fb31df7c245 in __libc_start_main () from /lib/x86_64-linux-gnu/libc.so.6 #67 0x000055a992fb66e1 in ?? () [Inferior 1 (process 2432) detached] Reported using DrKonqi
Correction: not any app, but the one I edited
Could have been caused by mistakenly adding the argument into the Program field rather than Arguments
Can you please go to .config/autostart/ and attach the .desktop file of the entry you edited?
(In reply to Nicolas Fella from comment #3) > Can you please go to .config/autostart/ and attach the .desktop file of the > entry you edited? I deleted that one and made one that works (see my previous comment). Do you want one that does cause the crash?
Yes, having the content of a .desktop file that causes the crash would help a lot
Created attachment 155957 [details] Crash-inducing autostart .desktop file Adding the `--window=hide` erroneously to Program instead of Arguments seems to result in the Exec line being quoted
The desktop file you attached doesn't crash for me, but editing it to add '' around the Exec does make it crash
#5 0x00007fbc01cafe5c in __pthread_kill_implementation () from /lib64/libc.so.6 #6 0x00007fbc01c5fa76 in raise () from /lib64/libc.so.6 #7 0x00007fbc01c497fc in abort () from /lib64/libc.so.6 #8 0x00007fbc02298b75 in qt_message_fatal (message=<synthetic pointer>..., context=...) at global/qlogging.cpp:1914 #9 QMessageLogger::fatal (this=this@entry=0x7ffe6c974560, msg=msg@entry=0x7fbc0258b048 "ASSERT: \"%s\" in file %s, line %d") at global/qlogging.cpp:893 #10 0x00007fbc02297ff5 in qt_assert (assertion=<optimized out>, file=<optimized out>, line=<optimized out>) at global/qglobal.cpp:3391 #11 0x00007fbc04a7e00b in QList<QString>::first (this=0x7ffe6c9747c8) at /home/nico/kde/usr/include/QtCore/qlist.h:361 #12 0x00007fbc04b2c232 in QList<QString>::takeFirst (this=0x7ffe6c9747c8) at /home/nico/kde/usr/include/QtCore/qlist.h:603 #13 0x00007fbc04b182a3 in KDEPrivate::KDesktopPropsPlugin::KDesktopPropsPlugin (this=0x1b0d7b0, _props=0x296de80) at /home/nico/kde/src/kio/src/widgets/kpropertiesdialog.cpp:3411 #14 0x00007fbc04b062e1 in KPropertiesDialogPrivate::insertPages (this=0x3196530) at /home/nico/kde/src/kio/src/widgets/kpropertiesdialog.cpp:640 #15 0x00007fbc04b051ee in KPropertiesDialogPrivate::init (this=0x3196530) at /home/nico/kde/src/kio/src/widgets/kpropertiesdialog.cpp:435 #16 0x00007fbc04b04254 in KPropertiesDialog::KPropertiesDialog (this=0x296de80, item=..., parent=0x0) at /home/nico/kde/src/kio/src/widgets/kpropertiesdialog.cpp:241 #17 0x00007fbbd0013ced in AutostartModel::editApplication (this=0x1cbc740, row=1, context=0x1d19360) at /home/nico/kde/src/plasma-workspace/kcms/autostart/autostartmodel.cpp:468 #18 0x00007fbbd000f111 in AutostartModel::qt_static_metacall (_o=0x1cbc740, _c=QMetaObject::InvokeMetaMethod, _id=3, _a=0x7ffe6c974f90) at /home/nico/kde/build/plasma-workspace/kcms/autostart/kcm_autostart_autogen/EWIEGA46WW/moc_autostartmodel.cpp:126 #19 0x00007fbbd000f34c in AutostartModel::qt_metacall (this=0x1cbc740, _c=QMetaObject::InvokeMetaMethod, _id=3, _a=0x7ffe6c974f90) at /home/nico/kde/build/plasma-workspace/kcms/autostart/kcm_autostart_autogen/EWIEGA46WW/moc_autostartmodel.cpp:181 #20 0x00007fbc012b9d23 in QQmlObjectOrGadget::metacall (this=this@entry=0x7ffe6c975230, type=type@entry=QMetaObject::InvokeMetaMethod, index=<optimized out>, index@entry=58, argv=<optimized out>) at qml/qqmlobjectorgadget.cpp:51 #21 0x00007fbc0119d949 in CallMethod (callType=<optimized out>, callArgs=0x3, engine=<optimized out>, argTypes=<optimized out>, argCount=<optimized out>, returnType=<optimized out>, index=<optimized out>, object=...) at /home/nico/workspace/qt5/qtbase/include/QtCore/../../src/corelib/tools/qvarlengtharray.h:189 #22 CallPrecise (object=..., data=..., engine=engine@entry=0x1cb9ff0, callArgs=callArgs@entry=0x7fbbca1406a0, callType=callType@entry=QMetaObject::InvokeMetaMethod) at jsruntime/qv4qobjectwrapper.cpp:1553 #23 0x00007fbc0119f75b in CallOverloaded (callType=<optimized out>, propertyCache=<optimized out>, callArgs=<optimized out>, engine=<optimized out>, data=..., object=...) at jsruntime/qv4qobjectwrapper.cpp:1629 #24 QV4::QObjectMethod::callInternal (this=<optimized out>, thisObject=<optimized out>, argv=<optimized out>, argc=<optimized out>) at jsruntime/qv4qobjectwrapper.cpp:2117 #25 0x00007fbc011ba457 in QV4::FunctionObject::call (argc=<optimized out>, argv=<optimized out>, thisObject=<optimized out>, this=<optimized out>) at ../../include/QtQml/5.15.8/QtQml/private/../../../../../src/qml/jsruntime/qv4functionobject_p.h:202 #26 QV4::Moth::VME::interpret (frame=0x2eddd, engine=0x1cb9ff0, code=0x1ce68f0 "\360\345\022\001\274\177") at jsruntime/qv4vme_moth.cpp:757 #27 0x00007fbc011be70f in QV4::Moth::VME::exec (frame=frame@entry=0x7ffe6c9754d0, engine=engine@entry=0x1cb9ff0) at jsruntime/qv4vme_moth.cpp:466 #28 0x00007fbc01154cf6 in QV4::Function::call (this=this@entry=0x1ce4670, thisObject=<optimized out>, argv=argv@entry=0x7fbbca140600, argc=<optimized out>, context=<optimized out>) at jsruntime/qv4function.cpp:69 #29 0x00007fbc012d35ea in QQmlJavaScriptExpression::evaluate (this=this@entry=0x2d709e0, callData=callData@entry=0x7fbbca1405d0, isUndefined=isUndefined@entry=0x0) at qml/qqmljavascriptexpression.cpp:212 #30 0x00007fbc0128761f in QQmlBoundSignalExpression::evaluate (this=<optimized out>, a=<optimized out>) at ../../include/QtQml/5.15.8/QtQml/private/../../../../../src/qml/jsruntime/qv4jscall_p.h:95 #31 0x00007fbc01288c80 in QQmlBoundSignal_callback (e=0x2d70990, a=0x7ffe6c9770d0) at ../../include/QtQml/5.15.8/QtQml/private/../../../../../src/qml/qml/qqmlboundsignalexpressionpointer_p.h:69 #32 0x00007fbc012b985f in QQmlNotifier::emitNotify (endpoint=<optimized out>, a=0x7ffe6c9770d0) at qml/qqmlnotifier.cpp:104 #33 0x00007fbc024e782d in doActivate<false> (sender=0x2d702f0, signal_index=11, argv=0x7ffe6c9770d0) at kernel/qobject.cpp:3815
*** Bug 464188 has been marked as a duplicate of this bug. ***
The problem is we have an Exec line like "Exec='solaar --window=hide'". Because of the = it gets parsed as an environment variable and stripped away, leaving an empty command, which causes the crash
Interestingly, desktop-file-validate doesn't flag that file as broken: $ desktop-file-validate ~/Desktop/crashme.desktop /home/nate/Desktop/crashme.desktop: warning: value "" for key "Path" in group "Desktop Entry" does not look like an absolute path /home/nate/Desktop/crashme.desktop: warning: key "TerminalOptions" in group "Desktop Entry" is deprecated $ echo $? 0
*** Bug 465546 has been marked as a duplicate of this bug. ***
Exactly the same problem here. After add --window=hide to solaar autostart, I can't edit this entry anymore. Fresh new installed KDE neon.
*** Bug 466757 has been marked as a duplicate of this bug. ***
(In reply to Dmitrii Odintcov from comment #2) > Could have been caused by mistakenly adding the argument into the Program > field rather than Arguments This is exactly what I did, and crashed Plasma.
*** Bug 468722 has been marked as a duplicate of this bug. ***
*** Bug 473927 has been marked as a duplicate of this bug. ***
*** Bug 473998 has been marked as a duplicate of this bug. ***
*** Bug 474189 has been marked as a duplicate of this bug. ***
*** Bug 472325 has been marked as a duplicate of this bug. ***
*** Bug 473290 has been marked as a duplicate of this bug. ***
*** Bug 478464 has been marked as a duplicate of this bug. ***
*** Bug 473034 has been marked as a duplicate of this bug. ***
*** Bug 468346 has been marked as a duplicate of this bug. ***
*** Bug 469451 has been marked as a duplicate of this bug. ***
*** This bug has been marked as a duplicate of bug 466164 ***
In progress with https://invent.kde.org/frameworks/kio/-/merge_requests/1510.
*** Bug 466164 has been marked as a duplicate of this bug. ***
*** Bug 466417 has been marked as a duplicate of this bug. ***
*** Bug 468420 has been marked as a duplicate of this bug. ***
*** Bug 469494 has been marked as a duplicate of this bug. ***
Git commit 78d4364677fbe658c6e05d19bb158f895403ccc9 by Harald Sitter. Committed on 14/12/2023 at 04:24. Pushed by sitter into branch 'master'. kpropertiesdialog: don't trip over malformed Exec when the user incorrectly put env vars into the Program field the resulting desktop file will be somewhat malformed and literally contain > Exec='FOO=1 Bar' this then needs careful handling when parsing so we don't accidentally drain the execline list. when this scenario appears we'll need to assume the last item in the list is the program as we can't really tell if it is a program that looks like an env var or an env var without program M +8 -0 src/widgets/kpropertiesdialogbuiltin_p.cpp https://invent.kde.org/frameworks/kio/-/commit/78d4364677fbe658c6e05d19bb158f895403ccc9
This is fixed for the properties dialog, but not kmenuedit, which has the same bug
Git commit ebad60218b9d9e6901ae48c3dec9b90da963809c by Harald Sitter. Committed on 18/12/2023 at 08:52. Pushed by sitter into branch 'kf5'. kpropertiesdialog: don't trip over malformed Exec when the user incorrectly put env vars into the Program field the resulting desktop file will be somewhat malformed and literally contain > Exec='FOO=1 Bar' this then needs careful handling when parsing so we don't accidentally drain the execline list. when this scenario appears we'll need to assume the last item in the list is the program as we can't really tell if it is a program that looks like an env var or an env var without program (cherry picked from commit 78d4364677fbe658c6e05d19bb158f895403ccc9) M +6 -0 src/widgets/kpropertiesdialog.cpp https://invent.kde.org/frameworks/kio/-/commit/ebad60218b9d9e6901ae48c3dec9b90da963809c
KMenuEdit actually appears to be fixed as well; I can no longer reproduce the issue there. But just in case I'm wrong, I've marked all the KMenuEdit crashes as duplicates of Bug 466164, so we can just un-dupe that one if needed.
*** Bug 478646 has been marked as a duplicate of this bug. ***
*** Bug 479797 has been marked as a duplicate of this bug. ***
*** Bug 485297 has been marked as a duplicate of this bug. ***