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

David Redondo <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|CONFIRMED                   |RESOLVED
         Resolution|---                         |FIXED
            Version|                            |6.6.6
  Fixed/Implemented|                            |
                 In|                            |
      Latest Commit|                            |https://invent.kde.org/plas
                   |                            |ma/xdg-desktop-portal-kde/-
                   |                            |/commit/5b17b8ef740431ec9d4
                   |                            |527fc12f296653b364d50

--- Comment #8 from David Redondo <[email protected]> ---
Git commit 5b17b8ef740431ec9d4527fc12f296653b364d50 by David Redondo.
Committed on 07/07/2026 at 07:17.
Pushed by davidre into branch 'Plasma/6.6'.

clipboard: Prevent deadlock if a transfer fails

When a transfer fails we clear the clipboard to not longer own it
as the app seems to not respond. Due how kguiaddons works internally
this will deadlock:
- kguiaddons is dispatching events on a separate thread
- PortalMimeData::fetchData is invoked on this thread
- We do a blocking invoke, because the portal and objects live on the
  main thread and we need to relay signals to dbus
 (see 2c0d063e5773b9c30afe3d96b9c2f910cf3bcbc3)
- So the mutex inside kguiaddons is held by the clipboard thread but
  code is running in the main thread and the clipboard thread is waiting
  on that
- Calling into KSystemClipboard now will deadlock 100%

Instead when a transfer errors out, clear in the clipboard thread
that is holding the lock.
Note even a delayed clear from the main thread will deadlock as
the clipboard thread might not relinquish the lock immediately
and dispatch further events.
FIXED-IN:6.6.6

M  +3    -1    src/clipboard.cpp

https://invent.kde.org/plasma/xdg-desktop-portal-kde/-/commit/5b17b8ef740431ec9d4527fc12f296653b364d50

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

Reply via email to