D29006: Allow to copy or move selection to the other split view

David Faure noreply at phabricator.kde.org
Tue Apr 28 22:03:54 BST 2020


dfaure added a comment.


  dolphin is stuck in a blocking DBus call to plasmashell.
  Let's see what plasmashell is doing:
  
  #6  0x00007f948f23d6bc in QXcbEventQueue::waitForNewEvents(unsigned long) (this=0x23343b0, time=398) at /d/qt/5/kde/qtbase/src/plugins/platforms/xcb/qxcbeventqueue.cpp:360
  #7  0x00007f948f1f69cb in QXcbClipboard::waitForClipboardEvent(unsigned int, int, bool) (this=0x7f9488006060, window=41943136, type=31, checkManager=false) at /d/qt/5/kde/qtbase/src/plugins/platforms/xcb/qxcbclipboard.cpp:808
  #8  0x00007f948f1f6e3c in QXcbClipboard::getSelection(unsigned int, unsigned int, unsigned int, unsigned int) (this=0x7f9488006060, selection=398, target=400, property=405, time=318475618) at /d/qt/5/kde/qtbase/src/plugins/platforms/xcb/qxcbclipboard.cpp:895
  #9  0x00007f948f1f6d58 in QXcbClipboard::getDataInFormat(unsigned int, unsigned int) (this=0x7f9488006060, modeAtom=398, fmtAtom=400) at /d/qt/5/kde/qtbase/src/plugins/platforms/xcb/qxcbclipboard.cpp:880
  #10 0x00007f948f1f80e6 in QXcbClipboardMime::formats_sys() const (this=0x4364f20) at /d/qt/5/kde/qtbase/src/plugins/platforms/xcb/qxcbclipboard.cpp:100
  #11 0x00007f9493ae2eae in QInternalMimeData::formats() const (this=0x4364f20) at /d/qt/5/kde/qtbase/src/gui/kernel/qinternalmimedata.cpp:98
  #12 0x00007f946803838a in Klipper::checkClipData(bool) (this=0x58e7f10, selectionMode=<optimized out>) at /d/kde/src/5/kde/workspace/plasma-workspace/klipper/klipper.cpp:717
  #13 0x00007f949330e68b in QtPrivate::QSlotObjectBase::call(QObject*, void**) (this=0x58f7940, r=0x58e7f10, a=0x7ffdeaefd170) at ../../include/QtCore/../../../../qtbase/src/corelib/kernel/qobjectdefs_impl.h:394
  #14 0x00007f949334c0cf in doActivate<false>(QObject*, int, void**) (sender=0x2a90da0, signal_index=3, argv=0x7ffdeaefd170) at /d/qt/5/kde/qtbase/src/corelib/kernel/qobject.cpp:3870
  #15 0x00007f9493345f29 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) (sender=0x2a90da0, m=0x7f94941793e0 <QClipboard::staticMetaObject>, local_signal_index=0, argv=0x7ffdeaefd170) at /d/qt/5/kde/qtbase/src/corelib/kernel/qobject.cpp:3930
  #16 0x00007f9493f235ae in QClipboard::changed(QClipboard::Mode) (this=0x2a90da0, _t1=QClipboard::Clipboard) at .moc/moc_qclipboard.cpp:168
  #17 0x00007f9493ad57ff in QClipboard::emitChanged(QClipboard::Mode) (this=0x2a90da0, mode=QClipboard::Clipboard) at /d/qt/5/kde/qtbase/src/gui/kernel/qclipboard.cpp:608
  #18 0x00007f9493ab24f7 in QPlatformClipboard::emitChanged(QClipboard::Mode) (this=0x7f9488006060, mode=QClipboard::Clipboard) at /d/qt/5/kde/qtbase/src/gui/kernel/qplatformclipboard.cpp:125
  #19 0x00007f948f1f623f in QXcbClipboard::handleXFixesSelectionRequest(xcb_xfixes_selection_notify_event_t*) (this=0x7f9488006060, event=0x7f9488076be0) at /d/qt/5/kde/qtbase/src/plugins/platforms/xcb/qxcbclipboard.cpp:675
  #20 0x00007f948f1fe773 in QXcbConnection::handleXcbEvent(xcb_generic_event_t*) (this=0x233b680, event=0x7f9488076be0) at /d/qt/5/kde/qtbase/src/plugins/platforms/xcb/qxcbconnection.cpp:705
  #21 0x00007f948f1ff7fd in QXcbConnection::processXcbEvents(QFlags<QEventLoop::ProcessEventsFlag>) (this=0x233b680, flags=...) at /d/qt/5/kde/qtbase/src/plugins/platforms/xcb/qxcbconnection.cpp:1029
  #22 0x00007f948f23f3a3 in xcbSourceDispatch(GSource*, GSourceFunc, gpointer) (source=0x23edff0) at /d/qt/5/kde/qtbase/src/plugins/platforms/xcb/qxcbeventdispatcher.cpp:103
  #23 0x00007f9491acaff8 in g_main_context_dispatch () at /usr/lib64/libglib-2.0.so.0
  
  It's, err, blocking asking dolphin about the clipboard contents (for klipper)....
  Nice deadlock.
  
  I guess usually the src and dest processes being different, we have plasma->src and dest->plasma.
  But with src and dest being the same, we end up with a dolphin<->plasma deadlock.
  
  I think the only solution is to fix KDynamicJobTracker to be async.

REPOSITORY
  R318 Dolphin

REVISION DETAIL
  https://phabricator.kde.org/D29006

To: aprcela, #dolphin, elvisangelaccio, ngraham, meven
Cc: dfaure, meven, kfm-devel, azyx, nikolaik, pberestov, iasensio, aprcela, fprice, fbampaloukas, alexde, Codezela, feverfew, spoorun, navarromorales, firef, ngraham, andrebarros, emmanuelp, rdieter, mikesomov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.kde.org/mailman/private/kfm-devel/attachments/20200428/326ff6d3/attachment.htm>


More information about the kfm-devel mailing list