Bug 492985

Summary: Crash in _XGetRequest() on selecting "plasma_engine_mouse" in dropdown
Product: [Plasma] Plasma SDK Reporter: ulterno
Component: engineexplorerAssignee: Plasma Bugs List <plasma-bugs-null>
Status: CONFIRMED ---    
Severity: crash CC: cwo.kde, giorgos.tsiapaliokas, nate
Priority: NOR    
Version First Reported In: 6.1.4   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed/Implemented In:
Sentry Crash Report:

Description ulterno 2024-09-11 18:59:20 UTC
SUMMARY
On selecting "plasma_engine_mouse" in the "Data Engines" dropdown menu, SIGSEGV.

STEPS TO REPRODUCE
1. Start plasmaengineexplorer
2. Select the "Data Engines" Combo Box to show menu
3. In the drop down menu, select the item, "plasma_engine_mouse"

OBSERVED RESULT
Program crashes after receiving SIGSEGV from the system.

EXPECTED RESULT
The TreeView below is to show stuff related to "plasma_engine_mouse".

SOFTWARE/OS VERSIONS

Linux/KDE Plasma: 
Operating System: EndeavourOS 
KDE Plasma Version: 6.1.4
KDE Frameworks Version: 6.5.0
Qt Version: 6.7.2
Kernel Version: 6.10.9-arch1-1 (64-bit)
Graphics Platform: Wayland
Processors: 16 × AMD Ryzen 7 5800X 8-Core Processor
Memory: 62.7 GiB of RAM
Graphics Processor: AMD Radeon RX 7600

plasma-sdk 6.1.4-1
kcoreaddons 6.5.0-1 

Also tested with:
plasma-sdk [master]
kcoreaddons 6.5.0-1 

ADDITIONAL INFORMATION

Most relevant Backtrace:

1  _XGetRequest                                                                                                                                                    
2  XQueryExtension                                                                                                                                                 
3  XInitExtension                                                                                                                                                  
4  XFixesFindDisplay                                                                                                                                               
5  XFixesQueryExtension                                                                                                                                            
6  ??                                                                                                                                                              
7  ??                                                                                                                                                              
8  ??                                                                                                                                                              
9  KPluginFactory::create<Plasma5Support::DataEngine>                                                                                        kpluginfactory.h   634
10 KPluginFactory::instantiatePlugin<Plasma5Support::DataEngine>                                                                             kpluginfactory.h   383
11 EngineExplorer::showEngine                                                                                                                engineexplorer.cpp 189
12 QtPrivate::FunctorCall<QtPrivate::IndexesList<0>, QtPrivate::List<QString const&>, void, void (EngineExplorer:: *)(QString const&)>::call qobjectdefs_impl.h 145
13 QtPrivate::FunctionPointer<void (EngineExplorer:: *)(QString const&)>::call<QtPrivate::List<QString const&>, void>                        qobjectdefs_impl.h 182
14 QtPrivate::QCallableObject<void (EngineExplorer:: *)(QString const&), QtPrivate::List<QString const&>, void>::impl                        qobjectdefs_impl.h 553
15 ??                                                                                                                                                              
16 ??                                                                                                                                                              
17 ??                                                                                                                                                              
18 ??                                                                                                                                                              
19 QComboBoxPrivateContainer::itemSelected(QModelIndex const&)                 <<<--- User Selected "plasma_engine_mouse" ComboBox Entry
Comment 1 cwo 2024-09-14 13:01:02 UTC
Can reproduce on master.

Backtrace with symbols:

 
Thread 1 "plasmaengineexp" received signal SIGSEGV, Segmentation fault.
0x00007ffff5d04f38 in _XGetRequest (dpy=0x5555555c3440, type=<optimized out>, len=8) at ../../src/XlibInt.c:1805
1805    ../../src/XlibInt.c: Directory not empty.
(gdb) bt
#0  0x00007ffff5d04f38 in _XGetRequest (dpy=0x5555555c3440, type=<optimized out>, len=8) at ../../src/XlibInt.c:1805
#1  0x00007ffff5cf8ad7 in XQueryExtension (dpy=0x5555555c3440, name=0x7ffff261a0d0 <XFixesExtensionName> "XFIXES", 
    major_opcode=0x7fffffffc5a4, first_event=0x7fffffffc5a8, first_error=0x7fffffffc5ac) at ../../src/QuExt.c:49
#2  0x00007ffff5cec977 in XInitExtension (dpy=0x5555555c3440, name=0x7ffff261a0d0 <XFixesExtensionName> "XFIXES")
    at ../../src/InitExt.c:59
#3  0x00007ffff26156b0 in XFixesFindDisplay () from /lib/x86_64-linux-gnu/libXfixes.so.3
#4  0x00007ffff2617875 in XFixesQueryExtension () from /lib/x86_64-linux-gnu/libXfixes.so.3
#5  0x00007fffe3f5e01b in CursorNotificationHandler::CursorNotificationHandler (this=this@entry=0x555555af2cd0)
    at /home/wolki/kde/src/plasma-workspace/dataengines/mouse/cursornotificationhandler.cpp:28
#6  0x00007fffe3f5ce28 in MouseEngine::init (this=this@entry=0x555555ad4b50)
    at /home/wolki/kde/src/plasma-workspace/dataengines/mouse/mouseengine.cpp:57
#7  0x00007fffe3f5d6dc in MouseEngine::MouseEngine (parent=0x0, this=0x555555ad4b50)
    at /home/wolki/kde/src/plasma-workspace/dataengines/mouse/mouseengine.cpp:22
#8  KPluginFactory::createInstance<MouseEngine, QObject> (parent=<optimized out>, args=...)
    at /home/wolki/kde/usr/include/KF6/KCoreAddons/kpluginfactory.h:593
#9  0x000055555557330f in KPluginFactory::create<Plasma5Support::DataEngine> (args=..., parent=0x0, this=0x555555849040)
    at /home/wolki/kde/usr/include/KF6/KCoreAddons/kpluginfactory.h:634
#10 KPluginFactory::instantiatePlugin<Plasma5Support::DataEngine> (data=..., parent=parent@entry=0x0, args=...)
    at /home/wolki/kde/usr/include/KF6/KCoreAddons/kpluginfactory.h:383
#11 0x000055555556f7f4 in EngineExplorer::showEngine (this=0x555555639fd0, name=...)
    at /home/wolki/kde/src/plasma-sdk/engineexplorer/engineexplorer.cpp:189
#12 0x00007ffff666381b in QtPrivate::QSlotObjectBase::call (a=<optimized out>, r=<optimized out>, this=<optimized out>, 
    this=<optimized out>, r=<optimized out>, a=<optimized out>) at ./src/corelib/kernel/qobjectdefs_impl.h:469
#13 doActivate<false> (sender=0x5555557a6be0, signal_index=9, argv=0x7fffffffcb30) at ./src/corelib/kernel/qobject.cpp:4086
#14 0x00007ffff77c6aa9 in QComboBox::textActivated (this=<optimized out>, _t1=...)
    at ./obj-x86_64-linux-gnu/src/widgets/Widgets_autogen/include/moc_qcombobox.cpp:436
#15 0x00007ffff77be31d in QComboBoxPrivate::emitActivated (this=this@entry=0x5555557a6c10, index=...)
    at ./src/widgets/widgets/qcombobox.cpp:1408
#16 0x00007ffff77c1ba8 in QComboBoxPrivate::itemSelected (this=0x5555557a6c10, item=...)
    at ./src/widgets/widgets/qcombobox.cpp:1398
#17 0x00007ffff666381b in QtPrivate::QSlotObjectBase::call (a=<optimized out>, r=<optimized out>, this=<optimized out>, 
    this=<optimized out>, r=<optimized out>, a=<optimized out>) at ./src/corelib/kernel/qobjectdefs_impl.h:469
#18 doActivate<false> (sender=0x5555558b3a80, signal_index=7, argv=0x7fffffffccc0) at ./src/corelib/kernel/qobject.cpp:4086
#19 0x00007ffff77c6e46 in QComboBoxPrivateContainer::itemSelected (this=<optimized out>, _t1=...)
    at ./obj-x86_64-linux-gnu/src/widgets/Widgets_autogen/include/moc_qcombobox_p.cpp:363
#20 0x00007ffff77bf1a6 in QComboBoxPrivateContainer::eventFilter (this=0x5555558b3a80, o=0x55555587c6a0, e=0x7fffffffd230)
    at ./src/widgets/widgets/qcombobox.cpp:780
#21 0x00007ffff66a1b88 in QCoreApplicationPrivate::sendThroughObjectEventFilters (receiver=receiver@entry=0x55555587c6a0, 
    event=event@entry=0x7fffffffd230) at ./src/corelib/kernel/qcoreapplication.cpp:1281
#22 0x00007ffff780a19b in QApplicationPrivate::notify_helper (this=this@entry=0x5555555bbd10, 
    receiver=receiver@entry=0x55555587c6a0, e=e@entry=0x7fffffffd230) at ./src/widgets/kernel/qapplication.cpp:3281
#23 0x00007ffff780f051 in QApplication::notify (this=<optimized out>, receiver=<optimized out>, e=0x7fffffffd230) at ./src/widgets/kernel/qapplication.cpp:2765
#24 0x00007ffff66a1dd8 in QCoreApplication::notifyInternal2 (receiver=receiver@entry=0x55555587c6a0, event=event@entry=0x7fffffffd230) at ./src/corelib/kernel/qcoreapplication.cpp:1142
#25 0x00007ffff66a1e2d in QCoreApplication::sendSpontaneousEvent (receiver=receiver@entry=0x55555587c6a0, event=event@entry=0x7fffffffd230) at ./src/corelib/kernel/qcoreapplication.cpp:1597
#26 0x00007ffff78098c8 in QApplicationPrivate::sendMouseEvent (receiver=0x55555587c6a0, event=0x7fffffffd230, alienWidget=0x55555587c6a0, nativeWidget=0x5555558b3a80, buttonDown=<optimized out>, lastMouseReceiver=..., spontaneous=true, onlyDispatchEnterLeave=false) at ./src/widgets/kernel/qapplication.cpp:2347
#27 0x00007ffff7857238 in QWidgetWindow::handleMouseEvent (this=0x5555558284f0, event=0x7fffffffd5d0) at ./src/widgets/kernel/qwidgetwindow.cpp:545
#28 0x00007ffff7858f55 in QWidgetWindow::event (this=0x5555558284f0, event=0x7fffffffd5d0) at ./src/widgets/kernel/qwidgetwindow.cpp:263
#29 0x00007ffff780a1ab in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0x5555558284f0, e=0x7fffffffd5d0) at ./src/widgets/kernel/qapplication.cpp:3287
#30 0x00007ffff66a1dd8 in QCoreApplication::notifyInternal2 (receiver=receiver@entry=0x5555558284f0, event=event@entry=0x7fffffffd5d0) at ./src/corelib/kernel/qcoreapplication.cpp:1142
#31 0x00007ffff66a1e2d in QCoreApplication::sendSpontaneousEvent (receiver=receiver@entry=0x5555558284f0, event=event@entry=0x7fffffffd5d0) at ./src/corelib/kernel/qcoreapplication.cpp:1597
#32 0x00007ffff6af018b in QGuiApplicationPrivate::processMouseEvent (e=0x7fffe4005860) at ./src/gui/kernel/qguiapplication.cpp:2327
#33 0x00007ffff6b5017c in QWindowSystemInterface::sendWindowSystemEvents (flags=...) at ./src/gui/kernel/qwindowsysteminterface.cpp:1114
#34 0x00007ffff6f11e34 in userEventSourceDispatch (source=<optimized out>) at ./src/gui/platform/unix/qeventdispatcher_glib.cpp:38
#35 0x00007ffff591bd3b in g_main_dispatch (context=0x7fffec005040) at ../../../glib/gmain.c:3419
#36 g_main_context_dispatch (context=0x7fffec005040) at ../../../glib/gmain.c:4137
#37 0x00007ffff59712b8 in g_main_context_iterate.constprop.0 (context=context@entry=0x7fffec005040, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4213
#38 0x00007ffff59193e3 in g_main_context_iteration (context=0x7fffec005040, may_block=1) at ../../../glib/gmain.c:4278
#39 0x00007ffff6462700 in QEventDispatcherGlib::processEvents (this=0x5555555c0030, flags=...) at ./src/corelib/kernel/qeventdispatcher_glib.cpp:394
#40 0x00007ffff66a3feb in QEventLoop::exec (this=this@entry=0x7fffffffda10, flags=..., flags@entry=...) at ./src/corelib/global/qflags.h:34
#41 0x00007ffff66a5c2c in QCoreApplication::exec () at ./src/corelib/global/qflags.h:74
#42 0x00007ffff6ae44a0 in QGuiApplication::exec () at ./src/gui/kernel/qguiapplication.cpp:1926
#43 0x00007ffff7808259 in QApplication::exec () at ./src/widgets/kernel/qapplication.cpp:2555
#44 0x000055555556a150 in main (argc=<optimized out>, argv=<optimized out>) at /home/wolki/kde/src/plasma-sdk/engineexplorer/main.cpp:128