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

            Bug ID: 394360
           Summary: kded5 hangs in QProcess::waitForFinished and does not
                    reap setxkbmap
           Product: frameworks-kded
           Version: 5.45.0
          Platform: Other
                OS: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: NOR
         Component: general
          Assignee: fa...@kde.org
          Reporter: jirisl...@gmail.com
                CC: kdelibs-b...@kde.org
  Target Milestone: ---

Sometime, when I reconnect my notebook back to docking station, kded5 daemon
hangs. I can no longer use global key shortcuts etc.

The stack trace of the thread is as follows:
> #0  0x00007f09368ce276 in __GI_ppoll (fds=fds@entry=0x7ffcd2d514d0, 
> nfds=nfds@entry=4, timeout=<optimized out>, timeout@entry=0x0, 
> sigmask=sigmask@entry=0x0) at ../sysdeps/unix/sysv/linux/ppoll.c:39
> #1  0x00007f0936e7f9f9 in qt_ppoll (timeout_ts=0x0, nfds=4, 
> fds=0x7ffcd2d514d0) at kernel/qcore_unix.cpp:112
> #2  qt_safe_poll (fds=fds@entry=0x7ffcd2d514d0, nfds=4, timeout_ts=<optimized 
> out>) at kernel/qcore_unix.cpp:133
> #3  0x00007f0936db78ab in qt_poll_msecs (timeout=<optimized out>, 
> nfds=<optimized out>, fds=0x7ffcd2d514d0) at 
> ../../include/QtCore/5.10.0/QtCore/private/../../../../../src/corelib/kernel/qcore_unix_p.h:373
> #4  (anonymous namespace)::QProcessPoller::poll (timeout=<optimized out>, 
> this=0x7ffcd2d514d0) at io/qprocess_unix.cpp:189
> #5  QProcessPrivate::waitForFinished (this=this@entry=0x55fae58b8e40, 
> msecs=msecs@entry=-1) at io/qprocess_unix.cpp:841
> #6  0x00007f0936dad76d in QProcess::waitForFinished 
> (this=this@entry=0x7ffcd2d51610, msecs=msecs@entry=-1) at io/qprocess.cpp:1916
> #7  0x00007f0936581b9a in KProcess::execute (this=0x7ffcd2d51610, msecs=-1) 
> at /usr/src/debug/kcoreaddons-5.45.0-1.1.x86_64/src/lib/io/kprocess.cpp:268
> #8  0x00007f090a8ad8d4 in ?? () from 
> /usr/lib64/qt5/plugins/kf5/kded/keyboard.so
> #9  0x00007f090a8aefac in ?? () from 
> /usr/lib64/qt5/plugins/kf5/kded/keyboard.so
> #10 0x00007f090a896763 in KeyboardDaemon::configureKeyboard() () from 
> /usr/lib64/qt5/plugins/kf5/kded/keyboard.so
> #11 0x00007f0936e5a36c in QtPrivate::QSlotObjectBase::call (a=0x7ffcd2d51840, 
> r=0x55fae56981d0, this=0x55fae598b940) at 
> ../../include/QtCore/../../src/corelib/kernel/qobjectdefs_impl.h:378
> #12 QMetaObject::activate (sender=0x55fae5987830, signalOffset=<optimized 
> out>, local_signal_index=<optimized out>, argv=<optimized out>) at 
> kernel/qobject.cpp:3749
> #13 0x00007f090a8ad590 in ?? () from 
> /usr/lib64/qt5/plugins/kf5/kded/keyboard.so
> #14 0x00007f090a8a9a90 in ?? () from 
> /usr/lib64/qt5/plugins/kf5/kded/keyboard.so
> #15 0x00007f0936e294bf in QAbstractEventDispatcher::filterNativeEvent 
> (this=<optimized out>, eventType=..., message=0x55fae553c200, 
> result=0x7ffcd2d51938) at kernel/qabstracteventdispatcher.cpp:466
> #16 0x00007f09273e6b60 in 
> QXcbConnection::handleXcbEvent(xcb_generic_event_t*) () from 
> /usr/lib64/libQt5XcbQpa.so.5
> #17 0x00007f09273e779c in QXcbConnection::processXcbEvents() () from 
> /usr/lib64/libQt5XcbQpa.so.5
> #18 0x00007f0936e5ac52 in QObject::event (this=0x55fae5359c40, e=<optimized 
> out>) at kernel/qobject.cpp:1246
> #19 0x00007f09354e401c in QApplicationPrivate::notify_helper(QObject*, 
> QEvent*) () from /usr/lib64/libQt5Widgets.so.5
> #20 0x00007f09354eb314 in QApplication::notify(QObject*, QEvent*) () from 
> /usr/lib64/libQt5Widgets.so.5
> #21 0x00007f0936e2c148 in QCoreApplication::notifyInternal2 
> (receiver=0x55fae5359c40, event=event@entry=0x7f091c003e00) at 
> kernel/qcoreapplication.cpp:1044
> #22 0x00007f0936e2eb25 in QCoreApplication::sendEvent (event=0x7f091c003e00, 
> receiver=<optimized out>) at kernel/qcoreapplication.h:234
> #23 QCoreApplicationPrivate::sendPostedEvents (receiver=receiver@entry=0x0, 
> event_type=event_type@entry=0, data=0x55fae52dcee0) at 
> kernel/qcoreapplication.cpp:1719
> #24 0x00007f0936e2f0a8 in QCoreApplication::sendPostedEvents 
> (receiver=receiver@entry=0x0, event_type=event_type@entry=0) at 
> kernel/qcoreapplication.cpp:1573
> #25 0x00007f0936e84393 in postEventSourceDispatch (s=0x55fae54dab10) at 
> kernel/qeventdispatcher_glib.cpp:276
> #26 0x00007f0932dab277 in g_main_context_dispatch () from 
> /usr/lib64/libglib-2.0.so.0
> #27 0x00007f0932dab4b0 in ?? () from /usr/lib64/libglib-2.0.so.0
> #28 0x00007f0932dab53c in g_main_context_iteration () from 
> /usr/lib64/libglib-2.0.so.0
> #29 0x00007f0936e83a0f in QEventDispatcherGlib::processEvents 
> (this=0x55fae53acd40, flags=...) at kernel/qeventdispatcher_glib.cpp:423
> #30 0x00007f0927466781 in ?? () from /usr/lib64/libQt5XcbQpa.so.5
> #31 0x00007f0936e2a95a in QEventLoop::exec (this=this@entry=0x7ffcd2d51f20, 
> flags=..., flags@entry=...) at kernel/qeventloop.cpp:212
> #32 0x00007f0936e33494 in QCoreApplication::exec () at 
> kernel/qcoreapplication.cpp:1332
> #33 0x00007f0927914bf8 in kdemain () from /usr/lib64/libkdeinit5_kded5.so
> #34 0x000055fae46acacf in ?? ()
> #35 0x000055fae46a9cc3 in ?? ()
> #36 0x00007f0936800a87 in __libc_start_main (main=0x55fae46a8d20, argc=5, 
> argv=0x7ffcd2d52498, init=<optimized out>, fini=<optimized out>, 
> rtld_fini=<optimized out>, stack_end=0x7ffcd2d52488) at 
> ../csu/libc-start.c:308
> #37 0x000055fae46aa24a in _start ()

The pid of the KProcess is:
(gdb) p this->pid()
$7 = 13989

which is:
> xslaby   13989  0.0  0.0      0     0 ?        Z    kvě16   0:00  |   \_ 
> [setxkbmap] <defunct>

Well, so KProcess/QProcess waits for setxkbmap to finish which is already a
zombie, i.e. died a long time ago.

Bug in QProcess?

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

Reply via email to