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

Yuki Schlarb <erin-kde@ninetailed.ninja> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |erin-kde@ninetailed.ninja

--- Comment #15 from Yuki Schlarb <erin-kde@ninetailed.ninja> ---
(In reply to Oded Arbel from comment #11)
> (In reply to Nicolas Fella from comment #7)
> > Can reproduce with gnome-console when "Enable focus tracking" in the Zoom
> > effect settings is enabled
> 
> Indeed, when I  turn off focus tracking in the Zoom desktop effect, the
> problem goes away.

Hallelujah! This issue made a bunch of GTK3 and also Qt6 applications hard to
borderline impossible to use. Thank you for providing a workaround for the time
being!
(And no, I’m not exaggerating. The MuseScore Flatpak is completely unusable
with this bug, for instance.)

(In reply to Oded Arbel from comment #12)
> The service :1.16 on my system currently (I'm not sure if I haven't rebooted
> since the original report) is the gvfs daemon. It exposes paths like
> /org/gtk/vfs.
> 
> From looking that the interface that code is trying to access -
> org.a11y.atspi.Accessible - I can't find any service in my session that
> implements this. I am not a dbus expert, so I don't know how common it is
> for method calls to non-existing interfaces to block until timeout, but I
> think that kwin should not issue calls - on the main thread - that can block
> for 25 seconds...

You are probably looking on the wrong bus there. A path like
“/org/gnome/Console/a11y/8c7c8daa_c230_4323_b01b_a3a3afeafb2c” and interface
like “org.a11y.atspi.Accessible“ would typically be found on the accessibility
bus, not the session bus. To find the address of the accessibility bus in your
session you can run:
qdbus org.a11y.Bus /org/a11y/bus org.a11y.Bus.GetAddress

This resulted in
“unix:path=/run/user/1000/at-spi/bus_1,guid=3d7d44553afddba65e947310639f38b5”
on my system (the “path” part being fairly constant across systems and
sessions, I believe).

With the bus address in hand, you can then issue another D-Bus call on that bus
to ask the bus master which PID the process owning any given name had when it
connected to the bus (where “:1.16“ is the service name):
qdbus --bus
"unix:path=/run/user/1000/at-spi/bus_1,guid=3d7d44553afddba65e947310639f38b5"
org.freedesktop.DBus /org/freedesktop/DBus
org.freedesktop.DBus.GetConnectionUnixProcessID ":1.16"

This returns a PID for which you can look up the process command-line using
procfs (replacing “3754” with what was returned by the previous call):
cat "/proc/3754/cmdline" | tr '\0' ' '

… of course, one can also use the PID to attach a debugger like Nicolas did.


Of course, in theory KWin should either be completely asynchronous or at least
never block on calls to anything other than system services and a select few
core non-GUI session services. In practice and particularly given KWin’s
history, its not that easy of course. :-)

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

Reply via email to