Bug 439719 - Plasma crashed in KService::isApplication()
Summary: Plasma crashed in KService::isApplication()
Status: RESOLVED FIXED
Alias: None
Product: plasmashell
Classification: Plasma
Component: generic-crash (other bugs)
Version First Reported In: 5.22.0
Platform: openSUSE Linux
: NOR crash
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords: drkonqi
Depends on:
Blocks:
 
Reported: 2021-07-10 11:07 UTC by Norbert Cserpnyák
Modified: 2024-06-03 13:15 UTC (History)
5 users (show)

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 Norbert Cserpnyák 2021-07-10 11:07:00 UTC
Application: plasmashell (5.22.2)

Qt Version: 5.15.2
Frameworks Version: 5.83.0
Operating System: Linux 5.13.0-1-default x86_64
Windowing System: X11
Drkonqi Version: 5.22.2
Distribution: "openSUSE Tumbleweed"

-- Information about the crash:
- What I was doing when the application crashed:

I was doing maintenance on the system when this incident happened, I think I removed the application through the terminal.

The reporter is unsure if this crash is reproducible.

-- Backtrace:
Application: Plasma (plasmashell), signal: Segmentation fault
Content of s_kcrashErrorMessage: [Current thread is 1 (Thread 0x7f5ed46f6880 (LWP 1577))]
[KCrash Handler]
#6  std::__uniq_ptr_impl<KSycocaEntryPrivate, std::default_delete<KSycocaEntryPrivate> >::_M_ptr (this=0x10) at /usr/include/c++/11/bits/unique_ptr.h:173
#7  std::unique_ptr<KSycocaEntryPrivate, std::default_delete<KSycocaEntryPrivate> >::get (this=0x10) at /usr/include/c++/11/bits/unique_ptr.h:422
#8  std::unique_ptr<KSycocaEntryPrivate, std::default_delete<KSycocaEntryPrivate> >::operator-> (this=0x10) at /usr/include/c++/11/bits/unique_ptr.h:416
#9  qGetPtrHelper<std::unique_ptr<KSycocaEntryPrivate, std::default_delete<KSycocaEntryPrivate> > const> (ptr=std::unique_ptr<KSycocaEntryPrivate> = {...}) at /usr/include/qt5/QtCore/qglobal.h:1135
#10 KService::d_func (this=0x0) at /usr/src/debug/kservice-5.83.0-1.1.x86_64/src/services/kservice.h:608
#11 KService::isApplication (this=0x0) at /usr/src/debug/kservice-5.83.0-1.1.x86_64/src/services/kservice.cpp:862
#12 0x00007f5ea5964f09 in AppEntry::actions (this=0x5568f919a980) at /usr/include/qt5/QtCore/qshareddata.h:161
#13 0x00007f5ea5978154 in KAStatsFavoritesModel::Private::data (this=0x7ffc55b69610, this@entry=0x5568f91071e0, item=..., role=role@entry=265) at /usr/src/debug/plasma5-workspace-5.22.2.1-1.1.x86_64/applets/kicker/plugin/kastatsfavoritesmodel.cpp:354
#14 0x00007f5ea596eeb1 in PlaceholderModel::data (this=<optimized out>, index=..., role=265) at /usr/src/debug/plasma5-workspace-5.22.2.1-1.1.x86_64/applets/kicker/plugin/placeholdermodel.cpp:129
#15 0x00007f5ed608bc7f in QModelIndex::data (arole=265, this=0x7ffc55b696e0) at /usr/include/qt5/QtCore/qabstractitemmodel.h:460
#16 QQmlDMAbstractItemModelData::value (role=265, this=0x5568f7c23260) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde29-1.2.x86_64/src/qmlmodels/qqmladaptormodel.cpp:414
#17 QQmlDMCachedModelData::metaCall (this=0x5568f7c23260, call=<optimized out>, id=<optimized out>, arguments=0x7ffc55b69790) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde29-1.2.x86_64/src/qmlmodels/qqmladaptormodel.cpp:282
#18 0x00007f5ed85c5fe6 in QQmlPropertyData::readProperty (property=0x7ffc55b69770, target=0x5568f7c23260, this=0x5568f9118528) at ../../include/QtQml/5.15.2/QtQml/private/../../../../../../src/qml/qml/qqmlpropertydata_p.h:357
#19 loadProperty (v4=0x5568f51be130, object=0x5568f7c23260, property=...) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde29-1.2.x86_64/src/qml/jsruntime/qv4qobjectwrapper.cpp:176
#20 0x00007f5ed85e5f75 in QV4::Moth::VME::interpret (frame=0x7ffc55b69990, engine=0x5568f51be130, code=0x7f5ea4cff67e ":\025H\003\344") at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde29-1.2.x86_64/src/qml/jsruntime/qv4vme_moth.cpp:638
#21 0x00007f5ed85ea7d7 in QV4::Moth::VME::exec (frame=frame@entry=0x7ffc55b69990, engine=engine@entry=0x5568f51be130) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde29-1.2.x86_64/src/qml/jsruntime/qv4vme_moth.cpp:463
#22 0x00007f5ed857ea10 in QV4::ArrowFunction::virtualCall (fo=<optimized out>, thisObject=<optimized out>, argv=<optimized out>, argc=<optimized out>) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde29-1.2.x86_64/src/qml/jsruntime/qv4functionobject.cpp:528
#23 0x00007f5ed85f936a in QV4::FunctionObject::call (argc=2, argv=0x7f5ec9011580, thisObject=0x7f5ec9011568, this=0x7ffc55b69a38) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde29-1.2.x86_64/src/qml/jsruntime/qv4functionobject_p.h:202
#24 QV4::Runtime::CallPropertyLookup::call (engine=0x5568f51be130, base=..., index=<optimized out>, argv=0x7f5ec9011580, argc=2) at /usr/src/debug/libqt5-qtdeclarative-5.15.2+kde29-1.2.x86_64/src/qml/jsruntime/qv4runtime.cpp:1460
#25 0x00007f5ea7cfc6e1 in ?? ()
#26 0x0000000000000000 in ?? ()
[Inferior 1 (process 1577) detached]

Possible duplicates by query: bug 418844, bug 413349, bug 411378, bug 411089, bug 308053.

Reported using DrKonqi
Comment 1 Nate Graham 2021-07-30 18:01:15 UTC
Either we should stop passing bad data to kservice, or kservice should return a real answer instead of crashing when given bad data ("No, this invalid data is not an application"). Probably both, but fixing KService seems more important. Moving to KService.
Comment 2 Ahmad Samir 2021-08-25 17:41:57 UTC
IIUC, the crash here happens because AppEntry::actions() calls isApplication() on a nullptr, the issue is why/how did m_service become null in AppEntry.