[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: java-atk-wrapper: which files ar used in /run/user/1000/*



Hello,

I could reproduce your issue.

Halim Sahin, le lun. 14 juin 2021 11:08:08 +0200, a ecrit:
> when a running desktop crashs or a user does
> sudo systemctl lightdm restart
> 
> a11y including orca etc works as expected.
> Only java apps which use atk-wrapper is completely inaccessible.
> 
> Then removing all files in /run/user/1000/* works or a full reboot.
> 
> My Question is: which files are needed by java-atk-wrapper?
> 
> It could be an issue of atk-wrapper if it can't determine some
> interfaces and use obsolete sockets etc.

Well, it's quite involved. Apparently when running lightdm restart or
the session crashes, the dbus session bus does not actually terminate.
And thus the at-spi bus does not terminate either... But the only way
that jaw uses to determine whether an at-spi bus is running is the
venerable AT_SPI_BUS X property, which went away with the X session.
C applications go through the at-spi bus which they happen to find
through the session bus.

It's removing /run/user/1000/bus (the session bus) that "fixes" jaw by
making dbus recreate a new session bus, and thus at-spi create a new
at-spi bus, and set its address in the AT_SPI_BUS X property, and then
jaw can find it.

So as usual with bugs there are actually two issues:

- Bad dbus cleanup on lightdm restart or session crash. That is a bit
  surprising, I though all the systemd etc. stuff was precisely meant to
  keep that kind of thing sane...
- jaw still relying on the AT_SPI_BUS X property (but possibly some
  other toolkits do that as well, but on wayland it'll have to go
  through a session bus anyway).

Samuel


Reply to: