Bug 452903 - KDE Connect crashes when opening module settings
Summary: KDE Connect crashes when opening module settings
Status: RESOLVED DUPLICATE of bug 453305
Alias: None
Product: kdeconnect
Classification: Applications
Component: common (show other bugs)
Version: 22.04.0
Platform: Arch Linux Linux
: NOR crash
Target Milestone: ---
Assignee: Albert Vaca Cintora
URL:
Keywords: drkonqi
: 452906 453456 (view as bug list)
Depends on:
Blocks:
 
Reported: 2022-04-23 10:46 UTC by Eric Kotato
Modified: 2022-05-13 19:01 UTC (History)
6 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
kdeconnect-kde-22.04.0-fix-crash-in-plugin-settings (910 bytes, patch)
2022-04-23 13:41 UTC, Yaroslav Sidlovsky
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Eric Kotato 2022-04-23 10:46:09 UTC
Application: kdeconnect-settings (22.04.0)

Qt Version: 5.15.3
Frameworks Version: 5.93.0
Operating System: Linux 5.17.4-zen1-1-zen x86_64
Windowing System: X11
Distribution: "Arch Linux"
DrKonqi: 5.24.4 [KCrashBackend]

-- Information about the crash:
Every time when I'm trying to open settings of modules (like notification sending or command execution), app crashes without opening the window.

Repoducing steps:
1. Connect to at least one device.
2. Open KDE Connect settings and select this device.
3. Find any module that has additional settings.
4. Try to open settings of the module.

The crash can be reproduced every time.

-- Backtrace:
Application: Настройка KDE Connect (kdeconnect-settings), signal: Segmentation fault
Content of s_kcrashErrorMessage: {_M_t = {<std::__uniq_ptr_impl<char, std::default_delete<char []> >> = {_M_t = std::tuple containing = {[1] = 0x0, [2] = {<No data fields>}}}, <No data fields>}}
[KCrash Handler]
#6  0x00007f8321d17c3d in std::__uniq_ptr_impl<KSycocaEntryPrivate, std::default_delete<KSycocaEntryPrivate> >::_M_ptr (this=<optimized out>, this=<optimized out>) at /usr/include/c++/11.2.0/bits/unique_ptr.h:173
#7  std::unique_ptr<KSycocaEntryPrivate, std::default_delete<KSycocaEntryPrivate> >::get (this=<optimized out>, this=<optimized out>) at /usr/include/c++/11.2.0/bits/unique_ptr.h:422
#8  std::unique_ptr<KSycocaEntryPrivate, std::default_delete<KSycocaEntryPrivate> >::operator-> (this=<optimized out>, this=<optimized out>) at /usr/include/c++/11.2.0/bits/unique_ptr.h:416
#9  qGetPtrHelper<std::unique_ptr<KSycocaEntryPrivate, std::default_delete<KSycocaEntryPrivate> > const> (ptr=..., ptr=...) at /usr/include/qt/QtCore/qglobal.h:1143
#10 KSycocaEntry::d_func (this=<optimized out>) at /usr/src/debug/kservice-5.93.0/src/sycoca/ksycocaentry.h:139
#11 KSycocaEntry::property (this=0x0, name=...) at /usr/src/debug/kservice-5.93.0/src/sycoca/ksycocaentry.cpp:104
#12 0x00007f83195c934d in KdeConnectPluginKcm::KdeConnectPluginKcm (this=<optimized out>, parent=<optimized out>, args=..., componentName=..., this=<optimized out>, parent=<optimized out>, args=..., componentName=...) at /usr/src/debug/kdeconnect-kde-22.04.0/kcmplugin/kdeconnectpluginkcm.cpp:26
#13 0x00007f8318178a8f in SendNotificationsConfig::SendNotificationsConfig (args=..., parent=0x556a92f7d2e0, this=0x556a92966390) at /usr/src/debug/kdeconnect-kde-22.04.0/plugins/sendnotifications/sendnotifications_config.cpp:19
#14 KPluginFactory::createInstance<SendNotificationsConfig, QWidget> (parentWidget=<optimized out>, parent=<optimized out>, args=...) at /usr/include/KF5/KCoreAddons/kpluginfactory.h:875
#15 0x00007f832353b064 in KPluginFactory::create (this=0x556a92f82440, iface=0x7f8321cb99e0 <qt_meta_stringdata_KCModule+480> "KCModule", parentWidget=0x556a92f7d2e0, parent=0x556a92f7d2e0, args=..., keyword=...) at /usr/src/debug/kcoreaddons-5.93.0/src/lib/plugin/kpluginfactory.cpp:232
#16 0x00007f83236132ca in KPluginFactory::create<KCModule> (args=..., parent=0x556a92f7d2e0, keyword=..., this=0x556a92f82440) at /usr/include/KF5/KCoreAddons/kpluginfactory.h:936
#17 KCModuleLoader::loadModule (metaData=..., parent=0x556a92f7d2e0, args=...) at /usr/src/debug/kcmutils-5.93.0/src/kcmoduleloader.cpp:98
#18 0x00007f832361605e in KCModuleProxyPrivate::loadModule (this=0x556a92f830d0) at /usr/src/debug/kcmutils-5.93.0/src/kcmoduleproxy.cpp:119
#19 0x00007f83236166bb in KCModuleProxy::realModule (this=<optimized out>) at /usr/src/debug/kcmutils-5.93.0/src/kcmoduleproxy.cpp:59
#20 0x00007f8323629dce in PluginDelegate::configure (this=this@entry=0x556a92ab4fd0, index=...) at /usr/src/debug/kcmutils-5.93.0/src/kpluginwidget.cpp:486
#21 0x00007f832362a5d1 in PluginDelegate::slotConfigureClicked (this=0x556a92ab4fd0) at /usr/src/debug/kcmutils-5.93.0/src/kpluginwidget.cpp:471
#22 0x00007f8322553463 in QtPrivate::QSlotObjectBase::call (a=<optimized out>, r=<optimized out>, this=<optimized out>, this=<optimized out>, r=<optimized out>, a=<optimized out>) at ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#23 doActivate<false> (sender=0x556a92ee2250, signal_index=9, argv=0x7ffc3fdff760) at kernel/qobject.cpp:3886
#24 0x00007f832307f9b7 in QAbstractButton::clicked (this=this@entry=0x556a92ee2250, _t1=<optimized out>) at .moc/moc_qabstractbutton.cpp:308
#25 0x00007f83230821da in QAbstractButtonPrivate::emitClicked (this=0x556a92ee29f0) at widgets/qabstractbutton.cpp:416
#26 0x00007f832308370a in QAbstractButtonPrivate::click (this=0x556a92ee29f0) at widgets/qabstractbutton.cpp:409
#27 0x00007f83230838d8 in QAbstractButton::mouseReleaseEvent (this=0x556a92ee2250, e=0x7ffc3fdffce0) at widgets/qabstractbutton.cpp:1045
#28 0x00007f8322fd1446 in QWidget::event (this=0x556a92ee2250, event=0x7ffc3fdffce0) at kernel/qwidget.cpp:8659
#29 0x00007f8322f9b2c6 in QApplicationPrivate::notify_helper (this=this@entry=0x556a927bb540, receiver=receiver@entry=0x556a92ee2250, e=e@entry=0x7ffc3fdffce0) at kernel/qapplication.cpp:3637
#30 0x00007f8322fa00f7 in QApplication::notify (this=0x7ffc3fdff970, receiver=0x556a92ee2250, e=0x7ffc3fdffce0) at kernel/qapplication.cpp:3081
#31 0x00007f83225225aa in QCoreApplication::notifyInternal2 (receiver=0x556a92ee2250, event=0x7ffc3fdffce0) at kernel/qcoreapplication.cpp:1064
#32 0x00007f8322f9eabf in QApplicationPrivate::sendMouseEvent (receiver=0x556a92ee2250, event=0x7ffc3fdffce0, alienWidget=0x556a92ee2250, nativeWidget=0x556a92943a80, buttonDown=<optimized out>, lastMouseReceiver=..., spontaneous=true, onlyDispatchEnterLeave=false) at kernel/qapplication.cpp:2619
#33 0x00007f8322fef927 in QWidgetWindow::handleMouseEvent (this=0x556a92968410, event=0x7ffc3fe00050) at kernel/qwidgetwindow.cpp:683
#34 0x00007f8322ff14dc in QWidgetWindow::event (this=0x556a92968410, event=0x7ffc3fe00050) at kernel/qwidgetwindow.cpp:300
#35 0x00007f8322f9b2c6 in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x556a92968410, e=0x7ffc3fe00050) at kernel/qapplication.cpp:3637
#36 0x00007f83225225aa in QCoreApplication::notifyInternal2 (receiver=0x556a92968410, event=0x7ffc3fe00050) at kernel/qcoreapplication.cpp:1064
#37 0x00007f83228f7fd0 in QGuiApplicationPrivate::processMouseEvent (e=0x556a92f0e780) at kernel/qguiapplication.cpp:2282
#38 0x00007f83228e26f5 in QWindowSystemInterface::sendWindowSystemEvents (flags=flags@entry=...) at kernel/qwindowsysteminterface.cpp:1169
#39 0x00007f831c5fef60 in xcbSourceDispatch (source=<optimized out>) at /usr/src/debug/qtbase/src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:105
#40 0x00007f8320531163 in g_main_dispatch (context=0x7f8314005010) at ../glib/glib/gmain.c:3417
#41 g_main_context_dispatch (context=0x7f8314005010) at ../glib/glib/gmain.c:4135
#42 0x00007f83205879e9 in g_main_context_iterate.constprop.0 (context=context@entry=0x7f8314005010, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/glib/gmain.c:4211
#43 0x00007f832052e6c5 in g_main_context_iteration (context=0x7f8314005010, may_block=1) at ../glib/glib/gmain.c:4276
#44 0x00007f832256e57a in QEventDispatcherGlib::processEvents (this=0x556a9288e100, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#45 0x00007f832251a88b in QEventLoop::exec (this=0x7ffc3fe003e0, flags=...) at ../../include/QtCore/../../src/corelib/global/qflags.h:69
#46 0x00007f8322525fd7 in QCoreApplication::exec () at ../../include/QtCore/../../src/corelib/global/qflags.h:121
#47 0x00007f83228f31d2 in QGuiApplication::exec () at kernel/qguiapplication.cpp:1867
#48 0x00007f8322f9964a in QApplication::exec () at kernel/qapplication.cpp:2829
#49 0x0000556a922db54e in main (argc=<optimized out>, argv=0x7ffc3fe004a8) at /usr/src/debug/kdeconnect-kde-22.04.0/settings/main.cpp:51
[Inferior 1 (process 1886) detached]

Reported using DrKonqi
This report was filed against 'kde' because the product 'kdeconnect-settings' could not be located in Bugzilla. Add it to drkonqi's mappings file!
Comment 1 Colin J Thomson 2022-04-23 11:12:53 UTC
I am also seeing this on F36

Operating System: Fedora Linux 36
KDE Plasma Version: 5.24.4
KDE Frameworks Version: 5.93.0
Qt Version: 5.15.3
Kernel Version: 5.17.4-300.fc36.x86_64 (64-bit)
Graphics Platform: X11
Comment 2 Colin J Thomson 2022-04-23 12:40:15 UTC
*** Bug 452906 has been marked as a duplicate of this bug. ***
Comment 3 Yaroslav Sidlovsky 2022-04-23 13:41:26 UTC
Created attachment 148321 [details]
kdeconnect-kde-22.04.0-fix-crash-in-plugin-settings

Looks like call to KService::serviceByDesktopName(componentName) returns nullptr
and there is no check for nullptr before dereferencing it.
See: https://invent.kde.org/network/kdeconnect-kde/-/blob/27da388c74e5eebca05251de471057486612f69b/kcmplugin/kdeconnectpluginkcm.cpp#L26

Also looks like this bug has been already fixed in master...
Comment 4 Ömer Fadıl USTA 2022-04-23 23:48:37 UTC
Hello Yaroslav , thank you for spending time for the reporting
are you sure this bug still exist even in release/22.04
because looks like even the related codes doesnt exist there 
https://invent.kde.org/network/kdeconnect-kde/-/blob/release/22.04/kcmplugin/kdeconnectpluginkcm.cpp
Comment 5 Yaroslav Sidlovsky 2022-04-24 09:01:56 UTC
Here is code from https://download.kde.org/stable/release-service/22.04.0/src/kdeconnect-kde-22.04.0.tar.xz:
```
    d->m_pluginName = KService::serviceByDesktopName(componentName).constData()->property(QStringLiteral("X-KDE-ParentComponents")).toString();
```

I think that the commit with fix missed release TAR.
Maybe someone could make kdeconnect-kde-22.04.1.tar.xz with this commit included?
Comment 6 Yaroslav Sidlovsky 2022-04-24 09:03:18 UTC
I mean that commit is missing: https://invent.kde.org/network/kdeconnect-kde/-/commit/a0b9a2131c2fa30c041448f87fa927128785cea0.
Comment 7 Yaroslav Sidlovsky 2022-05-06 09:18:47 UTC
*** Bug 453456 has been marked as a duplicate of this bug. ***
Comment 8 Nicolas Fella 2022-05-06 18:36:08 UTC

*** This bug has been marked as a duplicate of bug 453305 ***