Bug#911362: few packages report not able to register with accessibility bus

charles xavier xavierISdUM4kHmRByIvXeDlpftXZ3 at null.net
Wed Aug 28 06:55:59 BST 2019


> How do you run your X session? Through a DM like lightdm (which one?) or
> through startx or something else?

Yep, it's through lightdm.

My intent is to run XFCE and whatever components are needed by packages I want. Sort-of a minimalist approach to hoarding. That has got me some gnome components, but not the full-on gnome suite.

>> Other GTK apps (e.g. gimp, ristretto, xournal) report a different message that may be related:
>> Gtk-Message: 12:34:56.789: Failed to load module "atk-bridge"
>
>That one is easy: that is because libatk-adaptor is not installed.

Ah, thanks. I installed that. It seems to have worked, getting rid of the "failed to load..." messages. Now that list of apps each gives the same error as the other ones.

There's probably a better way to find reverse depends, recommends, and suggests, but I did this:
apt show \* | awk 'BEGIN {p=""} /^$/ {p=""} /^Package: / {p=$2} /^(Recommends|Suggests|Depends): .*\y(libatk-adaptor|at-spi)\y/ {print p; print $0}'

That earned me a list of four packages that depend on libatk-adaptor: python3-pyatspi, dasher, python-pyatspi, gnome-core. None of them are installed, so I never got libatk-adaptor. Is there a missing dependency that got me to that previous error?

>> % ps aux|grep -i at-spi|grep -v grep
>> xavier 895 0.0 0.0 312472 5172 ? Ssl Jul20 0:00 /usr/lib/at-spi2-core/at-spi-bus-launcher
>> xavier 917 0.0 0.0 8968 3144 ? S Jul20 0:53 /usr/bin/dbus-daemon --config-file=/usr/share/defaults/at-spi2/accessibility.conf --nofork --print-address 3
>> xavier 8546 0.0 0.0 174108 5908 ? Sl Jul20 3:07 /usr/lib/at-spi2-core/at-spi2-registryd --use-gnome-session
>> root 30144 0.0 0.0 312460 5632 ? Sl Jul20 0:00 /usr/lib/at-spi2-core/at-spi-bus-launcher
>> root 30149 0.0 0.0 8840 2912 ? S Jul20 0:42 /usr/bin/dbus-daemon --config-file=/usr/share/defaults/at-spi2/accessibility.conf --nofork --print-address 3
>> root 30151 0.0 0.0 174148 6012 ? Sl Jul20 3:03 /usr/lib/at-spi2-core/at-spi2-registryd --use-gnome-session
>
>So at-spi2 is definitely running (which is expected, it's started from
>/etc/xdg/autostart/at-spi-dbus-bus.desktop)
There's only one user logged in here, only xavier. Root isn't logged in. Should there be two sets?

>> % xprop -root | grep SPI
>> AT_SPI_BUS(STRING) = "unix:abstract=/tmp/dbus-0XXXXXXXXX,guid=0000000000000000123456789abcdef0"
>> % dbus-monitor --address "unix:abstract=/tmp/dbus-0XXXXXXXXX,guid=0000000000000000123456789abcdef0"
>> Failed to register connection to bus at unix:abstract=/tmp/dbus-0XXXXXXXXX,guid=0000000000000000123456789abcdef0: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken.
>
>Could you also try to connect to the bus reported in
>
>> PASS: got accessibility bus unix:abstract=/tmp/dbus-3XXXXXXXXX,guid=3333333333333333123456789abcdef0 from session dbus
>
>?

Ah, dbus-monitor works fine with no error for that bus address (the one listed as "from session dbus"). It connects without error, and starts displaying lots of events as I use other windows.

For the other bus address "from root window", I figure that's my root window. It seems like any permissions it has should be for my user. But I'm guessing it's run as root? Possibly by lightdm? Testing the idea, I still get the error when running dbus-monitor against that bus. Trying instead with sudo dbus-monitor on the same bus works fine - connects and displays events.

Concurrently, I captured output from dbus-monitor against both of those two buses (with sudo for the root window). A diff says they seem to be capturing the same events, with minor differences in serials etc. It seems that my user processes are trying to connect with an accessibility bus that requires root privileges, instead of my user session's bus. That or maybe the root window shouldn't be running as root, or shouldn't require root privileges.

>> FAIL: mismatch between $DBUS_SESSION_BUS_ADDRESS (unix:path=/run/user/31337/bus) and well-known path /home/xavier/.dbus/session-bus/1111111111111111123456789abcdef0-0 (unix:abstract=/tmp/dbus-2XXXXXXXXX,guid=2222222222222222123456789abcdef0)
>
>This mismatch shouldn't harm, but how old is
>/home/xavier/.dbus/session-bus/1111111111111111123456789abcdef0-0?

The file is 15 days old. Both $DBUS_SESSION_BUS_ADDRESS and $HOME/.dbus/sessions-bus/* are new to me; I haven't set either manually. Using dbus-monitor with the bus address in $HOME/.dbus/sessions-bus/* connects just fine, but no events seem to flow through as I use other windows.

At this point, I logged off and back on. The plan was to see if putting Hidden=True into a new file $HOME/.config/autostart/at-spi-dbus-bus.desktop did anything fun. It seemed to work. The error was gone, when I ran some commands that used to trigger it. It continued to work after I removed user autostart and relogged. It seems like the autostart might've had no effect, and that just relogging fixed it.

Output from check-ally has changed. The "from session dbus" address works fine with dbus-monitor. The relevant stuff seems to be:
FAIL: can't get accessibility bus from root window
WARN: you can hot-fix it by running the following command, but that will only work for the current session

I get no output from xprop -root|grep SPI , and there are no at-spi processes running as the root user.

The file in $HOME/.dbus/sessions-bus/ has unchanged contents and dates. But now dbus-monitor gets a refused connection.

The problem as reported isn't happening anymore, and it appears solved for me. Since none of the system's users need accessibility features, running without them on the root window won't seem to matter.

Still, if the system's state is of interest, I'd be glad to provide output.



More information about the Pkg-a11y-devel mailing list