https://bugs.kde.org/show_bug.cgi?id=442681

            Bug ID: 442681
           Summary: kded sometimes crashes when switching ibus keyboard
                    layouts
           Product: frameworks-kded
           Version: 5.86.0
          Platform: Archlinux Packages
                OS: Other
            Status: REPORTED
          Severity: crash
          Priority: NOR
         Component: general
          Assignee: fa...@kde.org
          Reporter: kishor...@gmail.com
                CC: kdelibs-b...@kde.org
  Target Milestone: ---

SUMMARY
kded sometimes crashes when I am switching ibus input methods with a keyboard
shortcut (meta+space on my machine). The crash is not reproducible every time I
switch, but happens a couple of times a week.

STEPS TO REPRODUCE (does not happen every time)
1. Switch ibus keyboard layout with the keyboard shortcut (can be chosen in the
ibus settings)

OBSERVED RESULT
kded crashes. After this, various keys on my keyboard get remapped in a strange
way; for example, one of the arrow keys becomes 'prtscr', and my left Ctrl
becomes 'pgdn'.

EXPECTED RESULT
kded should not crash.

SOFTWARE/OS VERSIONS
Operating System: Arch Linux
KDE Plasma Version: 5.22.90
KDE Frameworks Version: 5.86.0
Qt Version: 5.15.2
Kernel Version: 5.10.63-1-lts (64-bit)
Graphics Platform: X11

BACKTRACE
(I have installed debug symbols for kded, plasma-desktop, and qt5-base; please
let me know in case other debug symbols are required)

Thread 7 (Thread 0x7f03303702c0 (LWP 3474)):
#0  0x00007f0333305b2f in poll () at /usr/lib/libc.so.6
#1  0x00007f03343f88aa in  () at /usr/lib/libKF5Crash.so.5
#2  0x00007f03343f9360 in KCrash::defaultCrashHandler(int) () at
/usr/lib/libKF5Crash.so.5
#3  0x00007f033324eda0 in <signal handler called> () at /usr/lib/libc.so.6
#4  0x00007f033374b65a in operator==(QString const&, QString const&) (s1=...,
s2=...) at text/qstring.cpp:3432
#5  0x00007f03251396ee in LayoutUnit::operator==(LayoutUnit const&) const
(layoutItem=..., this=0x55ae77ca6010) at
/usr/src/debug/plasma-desktop-5.22.90/kcms/keyboard/x11_helper.h:161
#6  LayoutUnit::operator!=(LayoutUnit const&) const (layoutItem=...,
this=0x55ae77ca6010) at
/usr/src/debug/plasma-desktop-5.22.90/kcms/keyboard/x11_helper.h:165
#7  isExtraSubset (newList=..., allLayouts=...) at
/usr/src/debug/plasma-desktop-5.22.90/kcms/keyboard/layout_memory.cpp:98
#8  LayoutMemory::layoutMapChanged() (this=this@entry=0x7f03200034b8) at
/usr/src/debug/plasma-desktop-5.22.90/kcms/keyboard/layout_memory.cpp:118
#9  0x00007f0325133edc in KeyboardDaemon::layoutMapChanged()
(this=0x7f0320003460) at
/usr/src/debug/plasma-desktop-5.22.90/kcms/keyboard/keyboard_daemon.cpp:167
#10 0x00007f03338f08c5 in QtPrivate::QSlotObjectBase::call(QObject*, void**)
(a=0x7fffa7197d50, r=<optimized out>, this=0x55ae77aa3c70) at
../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:398
#11 doActivate<false>(QObject*, int, void**) (sender=0x55ae77a97fe0,
signal_index=4, argv=0x7fffa7197d50) at kernel/qobject.cpp:3886
#12 0x00007f03338e9e97 in QMetaObject::activate(QObject*, QMetaObject const*,
int, void**) (sender=sender@entry=0x55ae77a97fe0, m=m@entry=0x7f032516ab20
<XEventNotifier::staticMetaObject>,
local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x0) at
kernel/qobject.cpp:3946
#13 0x00007f0325132478 in XEventNotifier::layoutMapChanged()
(this=this@entry=0x55ae77a97fe0) at
/usr/src/debug/build/kcms/keyboard/kded_keyboard_autogen/EWIEGA46WW/moc_x11_helper.cpp:151
#14 0x00007f0325141fd7 in
XEventNotifier::processXkbEvents(xcb_generic_event_t*) (event=0x7f0328005d70,
this=0x55ae77a97fe0) at
/usr/src/debug/plasma-desktop-5.22.90/kcms/keyboard/x11_helper.cpp:321
#15 XEventNotifier::nativeEventFilter(QByteArray const&, void*, long*)
(eventType=<optimized out>, message=0x7f0328005d70, this=0x55ae77a97fe0) at
/usr/src/debug/plasma-desktop-5.22.90/kcms/keyboard/x11_helper.cpp:332
#16 XEventNotifier::nativeEventFilter(QByteArray const&, void*, long*)
(this=0x55ae77a97fe0, eventType=<optimized out>, message=0x7f0328005d70) at
/usr/src/debug/plasma-desktop-5.22.90/kcms/keyboard/x11_helper.cpp:326
#17 0x00007f03338b64d7 in
QAbstractEventDispatcher::filterNativeEvent(QByteArray const&, void*, long*)
(this=<optimized out>, eventType=..., message=message@entry=0x7f0328005d70,
result=result@entry=0x7fffa7197e08) at kernel/qabstracteventdispatcher.cpp:495
#18 0x00007f032feedc67 in QXcbConnection::handleXcbEvent(xcb_generic_event_t*)
(this=this@entry=0x55ae775ec580, event=event@entry=0x7f0328005d70) at
qxcbconnection.cpp:536
#19 0x00007f032feef2d1 in
QXcbConnection::processXcbEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(this=0x55ae775ec580, flags=...) at qxcbconnection.cpp:1014
#20 0x00007f032ff167f8 in xcbSourceDispatch(GSource*, GSourceFunc, gpointer)
(source=<optimized out>) at qxcbeventdispatcher.cpp:103
#21 0x00007f033086610c in g_main_context_dispatch () at
/usr/lib/libglib-2.0.so.0
#22 0x00007f03308b9ba9 in  () at /usr/lib/libglib-2.0.so.0
#23 0x00007f0330863871 in g_main_context_iteration () at
/usr/lib/libglib-2.0.so.0
#24 0x00007f0333912ada in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(this=0x55ae776dbbd0, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#25 0x00007f03338b7a6b in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)
(this=this@entry=0x7fffa7198090, flags=..., flags@entry=...) at
../../include/QtCore/../../src/corelib/global/qflags.h:69
#26 0x00007f03338c0258 in QCoreApplication::exec() () at
../../include/QtCore/../../src/corelib/global/qflags.h:121
#27 0x00007f0333e3e2e2 in QGuiApplication::exec() () at
kernel/qguiapplication.cpp:1867
#28 0x00007f0334619f6a in QApplication::exec() () at
kernel/qapplication.cpp:2824
#29 0x000055ae7693b73f in main(int, char**) (argc=<optimized out>,
argv=<optimized out>) at /usr/src/debug/kded-5.86.0/src/kded.cpp:782

Thread 6 (Thread 0x7f0309bf0640 (LWP 3592)):
#0  0x00007f0333308323 in pselect () at /usr/lib/libc.so.6
#1  0x00007f032d1bf524 in  () at /usr/lib/libusbmuxd-2.0.so.6
#2  0x00007f032d1c08a9 in  () at /usr/lib/libusbmuxd-2.0.so.6
#3  0x00007f03331fa259 in start_thread () at /usr/lib/libpthread.so.0
#4  0x00007f03333105e3 in clone () at /usr/lib/libc.so.6

Thread 5 (Thread 0x7f0326966640 (LWP 3482)):
#0  0x00007f033330189c in read () at /usr/lib/libc.so.6
#1  0x00007f0330866505 in g_main_context_check () at /usr/lib/libglib-2.0.so.0
#2  0x00007f03308b9add in  () at /usr/lib/libglib-2.0.so.0
#3  0x00007f0330865693 in g_main_loop_run () at /usr/lib/libglib-2.0.so.0
#4  0x00007f0327b018c8 in  () at /usr/lib/libgio-2.0.so.0
#5  0x00007f03308942d1 in  () at /usr/lib/libglib-2.0.so.0
#6  0x00007f03331fa259 in start_thread () at /usr/lib/libpthread.so.0
#7  0x00007f03333105e3 in clone () at /usr/lib/libc.so.6

Thread 4 (Thread 0x7f03259fc640 (LWP 3509)):
#0  0x00007f03336d13b1 in qCalculateGrowingBlockSize(unsigned long, unsigned
long, unsigned long) (elementCount=elementCount@entry=10, elementSize=2,
headerSize=24) at tools/qarraydata.cpp:137
#1  0x00007f03336d14c6 in calculateBlockSize (options=8, headerSize=<optimized
out>, objectSize=10, capacity=<synthetic pointer>: <optimized out>) at
tools/qarraydata.cpp:173
#2  calculateBlockSize (options=8, headerSize=<optimized out>, objectSize=2,
capacity=<synthetic pointer>: <optimized out>) at tools/qarraydata.cpp:166
#3  QArrayData::allocate(unsigned long, unsigned long, unsigned long,
QFlags<QArrayData::AllocationOption>) (objectSize=objectSize@entry=2,
alignment=alignment@entry=8, capacity=10, options=...) at
tools/qarraydata.cpp:217
#4  0x00007f03337497c5 in QTypedArrayData<unsigned short>::allocate(unsigned
long, QFlags<QArrayData::AllocationOption>) (options=..., capacity=10) at
../../include/QtCore/../../src/corelib/tools/qarraydata.h:224
#5  QString::reallocData(unsigned int, bool) (this=0x7f03259fb090, alloc=10,
grow=<optimized out>) at text/qstring.cpp:2366
#6  0x00007f0333749e37 in QString::append(QString const&)
(this=this@entry=0x7f03259fb090, str=...) at text/qstring.cpp:2684
#7  0x00007f03251b6cf7 in QString::operator+=(QString const&) (s=...,
this=0x7f03259fb090) at
../../../../include/QtCore/../../src/corelib/text/qstring.h:569
#8  operator+(QString const&, QString const&) (s2=..., s1=<optimized out>) at
../../../../include/QtCore/../../src/corelib/text/qstring.h:1531
#9  QGenericEngine::doRequestUpdate() (this=0x55ae77ada3e0) at
qgenericengine.cpp:313
#10 0x00007f03338c491b in QMetaMethod::invoke(QObject*, Qt::ConnectionType,
QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument,
QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument,
QGenericArgument, QGenericArgument, QGenericArgument) const (this=<optimized
out>, object=0x55ae77ada3e0, connectionType=Qt::DirectConnection,
returnValue=..., val0=..., val1=..., val2=..., val3=..., val4=..., val5=...,
val6=..., val7=..., val8=..., val9=...) at kernel/qmetaobject.cpp:2303
#11 0x00007f03338c98f0 in QMetaObject::invokeMethod(QObject*, char const*,
Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument,
QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument,
QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument)
(obj=obj@entry=0x55ae77ada3e0, member=member@entry=0x7f032ea0bae5
"requestUpdate", type=type@entry=Qt::AutoConnection, ret=..., val0=...,
val1=..., val2=..., val3=..., val4=..., val5=..., val6=..., val7=..., val8=...,
val9=...) at kernel/qmetaobject.cpp:1515
#12 0x00007f032e97b702 in QMetaObject::invokeMethod(QObject*, char const*,
QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument,
QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument,
QGenericArgument, QGenericArgument) (val9=..., val8=..., val7=..., val6=...,
val5=..., val4=..., val3=..., val2=..., val1=..., val0=...,
member=0x7f032ea0bae5 "requestUpdate", obj=0x55ae77ada3e0) at
../../include/QtCore/../../src/corelib/kernel/qobjectdefs.h:460
#13 QNetworkConfigurationManagerPrivate::pollEngines() (this=0x55ae77adfa20) at
bearer/qnetworkconfigmanager_p.cpp:493
#14 0x00007f03338f091b in doActivate<false>(QObject*, int, void**)
(sender=0x7f030c0132e0, signal_index=3, argv=0x7f03259fb930) at
kernel/qobject.cpp:3898
#15 0x00007f03338e9e97 in QMetaObject::activate(QObject*, QMetaObject const*,
int, void**) (sender=<optimized out>, m=m@entry=0x7f0333b568e0
<QTimer::staticMetaObject>, local_signal_index=local_signal_index@entry=0,
argv=argv@entry=0x7f03259fb930) at kernel/qobject.cpp:3946
#16 0x00007f03338f4a3f in QTimer::timeout(QTimer::QPrivateSignal)
(this=<optimized out>, _t1=...) at .moc/moc_qtimer.cpp:205
#17 0x00007f03338e6fef in QObject::event(QEvent*) (this=0x7f030c0132e0,
e=0x7f03259fba80) at kernel/qobject.cpp:1336
#18 0x00007f03338b919e in doNotify (event=0x7f03259fba80,
receiver=0x7f030c0132e0) at kernel/qcoreapplication.cpp:1154
#19 QCoreApplication::notify(QObject*, QEvent*) (event=<optimized out>,
receiver=<optimized out>, this=<optimized out>) at
kernel/qcoreapplication.cpp:1140
#20 QCoreApplication::notifyInternal2(QObject*, QEvent*)
(receiver=0x7f030c0132e0, event=0x7f03259fba80) at
kernel/qcoreapplication.cpp:1064
#21 0x00007f0333911dbd in QTimerInfoList::activateTimers()
(this=0x7f030c0040c0) at kernel/qtimerinfo_unix.cpp:643
#22 0x00007f03339126fa in timerSourceDispatch(GSource*, GSourceFunc, gpointer)
(source=<optimized out>) at kernel/qeventdispatcher_glib.cpp:183
#23 0x00007f033086610c in g_main_context_dispatch () at
/usr/lib/libglib-2.0.so.0
#24 0x00007f03308b9ba9 in  () at /usr/lib/libglib-2.0.so.0
#25 0x00007f0330863871 in g_main_context_iteration () at
/usr/lib/libglib-2.0.so.0
#26 0x00007f0333912ada in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(this=0x7f030c000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:423
#27 0x00007f03338b7a6b in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)
(this=this@entry=0x7f03259fbcc0, flags=..., flags@entry=...) at
../../include/QtCore/../../src/corelib/global/qflags.h:69
#28 0x00007f03336c4176 in QThread::exec() (this=<optimized out>) at
../../include/QtCore/../../src/corelib/global/qflags.h:121
#29 0x00007f03336c53cb in QThreadPrivate::start(void*) (arg=0x55ae77a1d440) at
thread/qthread_unix.cpp:329
#30 0x00007f03331fa259 in start_thread () at /usr/lib/libpthread.so.0
#31 0x00007f03333105e3 in clone () at /usr/lib/libc.so.6

Thread 3 (Thread 0x7f032cb3a640 (LWP 3476)):
#0  0x00007f0333305b2f in poll () at /usr/lib/libc.so.6
#1  0x00007f03308b9b39 in  () at /usr/lib/libglib-2.0.so.0
#2  0x00007f0330863871 in g_main_context_iteration () at
/usr/lib/libglib-2.0.so.0
#3  0x00007f0333912b57 in
QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>)
(this=0x7f0320000b60, flags=...) at kernel/qeventdispatcher_glib.cpp:425
#4  0x00007f03338b7a6b in
QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>)
(this=this@entry=0x7f032cb39c90, flags=..., flags@entry=...) at
../../include/QtCore/../../src/corelib/global/qflags.h:69
#5  0x00007f03336c4176 in QThread::exec() (this=this@entry=0x7f0333ca1080
<(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at
../../include/QtCore/../../src/corelib/global/qflags.h:121
#6  0x00007f0333c25b0c in QDBusConnectionManager::run() (this=0x7f0333ca1080
<(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at
qdbusconnection.cpp:179
#7  0x00007f03336c53cb in QThreadPrivate::start(void*) (arg=0x7f0333ca1080
<(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at
thread/qthread_unix.cpp:329
#8  0x00007f03331fa259 in start_thread () at /usr/lib/libpthread.so.0
#9  0x00007f03333105e3 in clone () at /usr/lib/libc.so.6

Thread 2 (Thread 0x7f0327968640 (LWP 3480)):
#0  0x00007f0333305b2f in poll () at /usr/lib/libc.so.6
#1  0x00007f03308b9b39 in  () at /usr/lib/libglib-2.0.so.0
#2  0x00007f0330863871 in g_main_context_iteration () at
/usr/lib/libglib-2.0.so.0
#3  0x00007f03308638c2 in  () at /usr/lib/libglib-2.0.so.0
#4  0x00007f03308942d1 in  () at /usr/lib/libglib-2.0.so.0
#5  0x00007f03331fa259 in start_thread () at /usr/lib/libpthread.so.0
#6  0x00007f03333105e3 in clone () at /usr/lib/libc.so.6

Thread 1 (Thread 0x7f0327167640 (LWP 3481)):
#0  0x00007f033324ed22 in raise () at /usr/lib/libc.so.6
#1  0x00007f03343f93e0 in KCrash::defaultCrashHandler(int) () at
/usr/lib/libKF5Crash.so.5
#2  0x00007f033324eda0 in <signal handler called> () at /usr/lib/libc.so.6
#3  0x00007f033324ed22 in raise () at /usr/lib/libc.so.6
#4  0x00007f033324eda0 in <signal handler called> () at /usr/lib/libc.so.6
#5  0x00007f033324ed22 in raise () at /usr/lib/libc.so.6
#6  0x00007f03279b8d8f in g_closure_invoke () at /usr/lib/libgobject-2.0.so.0
#7  0x00007f03279d3f5e in  () at /usr/lib/libgobject-2.0.so.0
#8  0x00007f03279d5c49 in g_signal_emit_valist () at
/usr/lib/libgobject-2.0.so.0
#9  0x00007f03279d61a0 in g_signal_emit () at /usr/lib/libgobject-2.0.so.0
#10 0x00007f0327aedf17 in  () at /usr/lib/libgio-2.0.so.0
#11 0x00007f0330866015 in g_main_context_dispatch () at
/usr/lib/libglib-2.0.so.0
#12 0x00007f03308b9ba9 in  () at /usr/lib/libglib-2.0.so.0
#13 0x00007f0330863871 in g_main_context_iteration () at
/usr/lib/libglib-2.0.so.0
#14 0x00007f032796eebe in  () at /usr/lib/gio/modules/libdconfsettings.so
#15 0x00007f03308942d1 in  () at /usr/lib/libglib-2.0.so.0
#16 0x00007f03331fa259 in start_thread () at /usr/lib/libpthread.so.0
#17 0x00007f03333105e3 in clone () at /usr/lib/libc.so.6

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to