Bug 357907

Summary: Crash eventual crash, often on load
Product: [Applications] systemsettings Reporter: Aleix Pol <aleixpol>
Component: kcm_touchpadAssignee: Plasma Bugs List <plasma-bugs>
Status: RESOLVED FIXED    
Severity: grave CC: barry, chema.hinojosa, cordlandwehr, hrvoje.senjan, kde, lst_manage, phillip, rajeeshknambiar, wengxt
Priority: NOR    
Version: 5.17.5   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Aleix Pol 2016-01-12 23:32:40 UTC
It's quite important, because it crashes the whole KDED process and things stop working.

Here's a backtrace

#0  0x00007f21e95a254c in xcb_wait_for_reply () from /usr/lib/libxcb.so.1
#1  0x00007f21b7a05a5b in XcbAtom::atom (this=0xdcdd98) at /home/kde-devel/frameworks/plasma-desktop/kcms/touchpad/src/backends/x11/xcbatom.cpp:49
#2  0x00007f21b7a034f6 in XlibTouchpad::setTouchpadOff (this=0xdcdd40, touchpadOff=2) at /home/kde-devel/frameworks/plasma-desktop/kcms/touchpad/src/backends/x11/xlibtouchpad.cpp:264
#3  0x00007f21b79fd1a3 in XlibBackend::setTouchpadOff (this=0xdce260, state=TouchpadBackend::TouchpadTapAndScrollDisabled)
    at /home/kde-devel/frameworks/plasma-desktop/kcms/touchpad/src/backends/x11/xlibbackend.cpp:189
#4  0x00007f21b79f9d86 in TouchpadDisabler::keyboardActivityStarted (this=0xdd85d0) at /home/kde-devel/frameworks/plasma-desktop/kcms/touchpad/src/kded/kded.cpp:163
#5  0x00007f21b7a08dbe in TouchpadDisabler::qt_static_metacall (_o=0xdd85d0, _c=QMetaObject::InvokeMetaMethod, _id=10, _a=0x7ffc774bcee0) at kcms/touchpad/src/moc_kded.cpp:154
#6  0x00007f21f0e6b300 in QMetaObject::activate (sender=0xdce260, signalOffset=<optimized out>, local_signal_index=<optimized out>, argv=<optimized out>)
    at /home/kde-devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3730
#7  0x00007f21b7a09945 in TouchpadBackend::keyboardActivityStarted (this=0xdce260) at kcms/touchpad/src/moc_touchpadbackend.cpp:185
#8  0x00007f21b7a096d9 in TouchpadBackend::qt_static_metacall (_o=0xdce260, _c=QMetaObject::InvokeMetaMethod, _id=3, _a=0x7ffc774bd050) at kcms/touchpad/src/moc_touchpadbackend.cpp:87
#9  0x00007f21f0e6b300 in QMetaObject::activate (sender=0xddb860, signalOffset=<optimized out>, local_signal_index=<optimized out>, argv=<optimized out>)
    at /home/kde-devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3730
#10 0x00007f21b7a078f2 in XRecordKeyboardMonitor::keyboardActivityStarted (this=0xddb860) at kcms/touchpad/src/moc_xrecordkeyboardmonitor.cpp:143
#11 0x00007f21b7a07019 in XRecordKeyboardMonitor::process (this=0xddb860, reply=0xfa9e60)
    at /home/kde-devel/frameworks/plasma-desktop/kcms/touchpad/src/backends/x11/xrecordkeyboardmonitor.cpp:146
#12 0x00007f21b7a06dfe in XRecordKeyboardMonitor::processNextReply (this=0xddb860) at /home/kde-devel/frameworks/plasma-desktop/kcms/touchpad/src/backends/x11/xrecordkeyboardmonitor.cpp:104
#13 0x00007f21b7a077f8 in XRecordKeyboardMonitor::qt_static_metacall (_o=0xddb860, _c=QMetaObject::InvokeMetaMethod, _id=2, _a=0x7ffc774bd320)
    at kcms/touchpad/src/moc_xrecordkeyboardmonitor.cpp:82
#14 0x00007f21f0e6b300 in QMetaObject::activate (sender=sender@entry=0xddb8b0, signalOffset=<optimized out>, local_signal_index=local_signal_index@entry=0, argv=argv@entry=0x7ffc774bd320)
    at /home/kde-devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3730
#15 0x00007f21f0e6bbd7 in QMetaObject::activate (sender=sender@entry=0xddb8b0, m=m@entry=0x7f21f1082f20 <QSocketNotifier::staticMetaObject>, local_signal_index=local_signal_index@entry=0, 
    argv=argv@entry=0x7ffc774bd320) at /home/kde-devel/frameworks/qt5/qtbase/src/corelib/kernel/qobject.cpp:3595
#16 0x00007f21f0ee269e in QSocketNotifier::activated (this=this@entry=0xddb8b0, _t1=23) at .moc/moc_qsocketnotifier.cpp:134
#17 0x00007f21f0e776cb in QSocketNotifier::event (this=0xddb8b0, e=<optimized out>) at /home/kde-devel/frameworks/qt5/qtbase/src/corelib/kernel/qsocketnotifier.cpp:260
#18 0x00007f21f23d84cc in QApplicationPrivate::notify_helper (this=<optimized out>, receiver=0xddb8b0, e=0x7ffc774bd570)
    at /home/kde-devel/frameworks/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3712
#19 0x00007f21f23dd366 in QApplication::notify (this=0x7ffc774bdb40, receiver=0xddb8b0, e=0x7ffc774bd570) at /home/kde-devel/frameworks/qt5/qtbase/src/widgets/kernel/qapplication.cpp:3493
#20 0x00007f21f0e409a8 in QCoreApplication::notifyInternal2 (receiver=0xddb8b0, event=event@entry=0x7ffc774bd570)
    at /home/kde-devel/frameworks/qt5/qtbase/src/corelib/kernel/qcoreapplication.cpp:1013
#21 0x00007f21f0e9306d in QCoreApplication::sendEvent (event=0x7ffc774bd570, receiver=<optimized out>)
    at ../../include/QtCore/../../../../frameworks/qt5/qtbase/src/corelib/kernel/qcoreapplication.h:227
#22 socketNotifierSourceDispatch (source=0xc7c530) at /home/kde-devel/frameworks/qt5/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:100
#23 0x00007f21eb8c0dc7 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#24 0x00007f21eb8c1020 in ?? () from /usr/lib/libglib-2.0.so.0
#25 0x00007f21eb8c10cc in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#26 0x00007f21f0e92bcf in QEventDispatcherGlib::processEvents (this=0xc6c3c0, flags=...) at /home/kde-devel/frameworks/qt5/qtbase/src/corelib/kernel/qeventdispatcher_glib.cpp:417

Reproducible: Always
Comment 1 Rajeesh K V 2016-01-13 18:29:21 UTC
Adding Xuetian Weng  who recently touched this part of code if he has any idea.
Comment 2 David Edmundson 2016-01-16 18:02:16 UTC
*** Bug 350271 has been marked as a duplicate of this bug. ***
Comment 3 David Edmundson 2016-01-16 18:02:22 UTC
*** Bug 349681 has been marked as a duplicate of this bug. ***
Comment 4 David Edmundson 2016-01-16 18:02:32 UTC
*** Bug 348926 has been marked as a duplicate of this bug. ***
Comment 5 Rajeesh K V 2016-01-16 21:21:47 UTC
I cannot reproduce this crash. I have both xorg-x11-drv-libinput and xorg-x11-drv-synaptics installed.
Is it possible to provide some debug input? Please check if "xcb_connection_t *c" is valid in XcbAtom::XcbAtom, XcbAtom::intern and check "m_connection" is valid in XcbAtom::atom(). All call sites are in kcms/touchpad/src/backend/x11/xcbatom.cpp.
Comment 6 Hrvoje Senjan 2016-01-17 15:26:32 UTC
(In reply to Rajeesh K V from comment #5)
> I cannot reproduce this crash. I have both xorg-x11-drv-libinput and
> xorg-x11-drv-synaptics installed.

i think crash happens only with synaptics driver (and libinput usually takes precedence). notably disable touchpad when typing option triggers crash.
Comment 7 Weng Xuetian 2016-01-17 18:46:37 UTC
I have no idea that why m_connection could be null (XOpenDisplay(0) fails ?), but even if that's the case, the current master code should be able to catch that case.

Could you try plasma-desktop master and only compile kcms/touchpad part and see if it helps?
Comment 8 Hrvoje Senjan 2016-01-17 19:07:07 UTC
The crash happens with plasma desktop master
Comment 9 Weng Xuetian 2016-01-17 20:56:56 UTC
(In reply to Hrvoje Senjan from comment #8)
> The crash happens with plasma desktop master

Can you print out m_connection value with gdb? Can you make sure when it crashes it run with newly installed instead of old one?
Comment 10 Rajeesh K V 2016-01-17 20:59:40 UTC
Uninstalled xorg-x11-drv-libinput, running on synaptics driver; still no crash for me. So, yes - it would be great to get some debug output.
Comment 11 Aleix Pol 2016-01-19 09:23:33 UTC
*** Bug 358190 has been marked as a duplicate of this bug. ***
Comment 12 Weng Xuetian 2016-01-21 03:03:04 UTC
Emm, one thing I mistook is that I thought it is in 5.5.3 because of the report says so. But it's acutally in git.

So this should be fixed by http://commits.kde.org/plasma-desktop/cda58f0e256d53e66ca44b77fa7307ee670b8313 .
Comment 13 Christoph Feck 2016-05-19 21:46:23 UTC
*** Bug 363248 has been marked as a duplicate of this bug. ***