linux at-spi-bus-launcher[1791]: No protocol specified

(nvidia-settings:3857): GLib-GObject-CRITICAL **: 11:06:55.806: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
No protocol specified

** (nvidia-settings:3857): WARNING **: 11:06:56.042: AT-SPI: Could not obtain desktop path or name


** (nvidia-settings:3857): WARNING **: 11:06:56.060: atk-bridge: get_device_events_reply: unknown signature

** (nvidia-settings:3857): WARNING **: 11:06:56.060: atk-bridge: get_device_events_reply: unknown signature

** (nvidia-settings:3857): WARNING **: 11:06:56.060: atk-bridge: GetRegisteredEvents returned message with unknown signature

** (nvidia-settings:3857): WARNING **: 11:06:56.065: AT-SPI: Could not obtain desktop path or name


** (nvidia-settings:3857): WARNING **: 11:06:56.065: AT-SPI: Could not obtain desktop path or name

This started happening with my recent Tumbleweed install. The above was generated from launching nvidia-settings via terminal, but happens with other things launched via terminal as well. They seem to work as expected – I’m just wondering how to eliminate this.

journalctl -r

May 02 10:55:59 linux xfce4-notifyd[1863]: AT-SPI: Could not obtain desktop path or name
May 02 10:55:59 linux at-spi2-registr[3462]: AT-SPI: Cannot open default display
May 02 10:55:59 linux at-spi-bus-launcher[1791]: No protocol specified
May 02 10:55:59 linux at-spi-bus-launcher[1791]: No protocol specified
May 02 10:55:59 linux at-spi-bus-launcher[1791]: SpiRegistry daemon is running with well-known name - org.a11y.atspi.Registry
May 02 10:55:59 linux at-spi-bus-launcher[1791]: dbus-daemon[1797]: Successfully activated service 'org.a11y.atspi.Registry'
May 02 10:55:59 linux at-spi2-registr[3462]: Could not open X display
May 02 10:55:59 linux at-spi-bus-launcher[1791]: No protocol specified
May 02 10:55:59 linux at-spi-bus-launcher[1791]: No protocol specified
May 02 10:55:59 linux at-spi-bus-launcher[1791]: dbus-daemon[1797]:  Activating service name='org.a11y.atspi.Registry' requested by ':1.37'  (uid=1000 pid=3452 comm="nvidia-settings ")

Getting it started by hand (normally done by the Desktop Environment session manager):

  • /usr/lib/at-spi2-core/at-spi-bus-launcher &
  • /usr/lib/at-spi2-core/at-spi2-registryd &

https://www.freedesktop.org/wiki/Accessibility/AT-SPI2/

That seemingly eliminated most of the messages in the terminal, and all from journalctl. Although, it still says in the terminal:

(nvidia-settings:1989): GLib-GObject-CRITICAL **: 11:22:59.545: g_object_unref: assertion ‘G_IS_OBJECT (object)’ failed
No protocol specified

Xfce Settings Manager -> Session and Startup -> Application Autostart

“AT-SPI D-Bus Bus” was unchecked. I’m guessing that was the problem.

Changed the aforementioned setting, logged out and then back in, and the eliminated messages returned. lol
Restarted and they are gone again. But the following remains:

  	 			 			 				(nvidia-settings:1989): GLib-GObject-CRITICAL **: 11:22:59.545: g_object_unref: assertion 'G_IS_OBJECT (object)' failed

No protocol specified

I’m guessing the GLib thing is unrelated.
The “No protocol specified” shows up whenever I launch any application via terminal.

Sigh… another restart and the eliminated messages are back, so I guess the Xfce setting didn’t help, or installing orca and activating it for startup somehow changed something. Orca didn’t work anyhow, something about “Argument 1 does not allow None as a value”.

Note that

  • /usr/lib/at-spi2-core/at-spi-bus-launcher & -> /usr/lib/at-spi2/at-spi-bus-launcher &
  • /usr/lib/at-spi2-core/at-spi2-registryd & -> /usr/lib/at-spi2/at-spi2-registryd &

Running these again as a common user seemed to eliminate the messages again; however, only running them as root seems to produce the

$ xprop -root | grep SPI
AT_SPI_BUS(STRING) = "unix:abstract=/tmp/dbus-6fNHBTP2lK,guid=9d17aaa3ca64ff4b66f0c5985442999e"

https://www.freedesktop.org/wiki/Accessibility/AT-SPI2/

Although, when I do that I also get the “No protocol specified” rotfl!

A new message appears when trying to start applications

dbind-WARNING **: 13:25:16.715: Couldn’t register with accessibility bus: 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.

export NO_AT_BRIDGE=1

That will seemingly suppress the AT-SPI and atk-bridge warnings.

But I still saw “No protocol specified” in the terminal after launching any program.

I then somewhat narrowed it down to an ~/.Xauthority problem.

The following seemed to solve it


cp .Xauthority xauth_backup
xauth generate :0 . trusted
xauth add ${HOST}:0 . $(xxd -l 16 -p /dev/urandom)

which is a slight modification of https://superuser.com/a/941244/201083

However, after rebooting I now get “Invalid MIT-MAGIC-COOKIE-1” instead of “No protocol specified”.

The other seemingly temporary solution (until reboot) is

xhost +local:

found http://news.povray.org/povray.unix/thread/<5c9500c5%241%40news.povray.org>/?mtop=426880&moff=10
Note that the thread was started by a Leap 15 user.

Does the system need to rewrite ~/.Xauthority on every login?
How does the cookie become invalid?

~/.xsession-errors shows some problems that might be related, but I haven’t made any progress on them:


(xfce4-session:1674): xfce4-session-WARNING **: 15:24:04.221: xfsm_manager_load_session: Something wrong with ~/.cache/sessions/xfce4-sessio
n-localhost.localdomain:0, Does it exist? Permissions issue?
gnome-keyring-daemon: insufficient process capabilities, insecure memory might get used

~/.cache/sessions shows nothing starting with xfce4


sudo hostnamectl set-hostname <new name>
xauth generate :0 . trusted
xauth add ${HOST}:0 . $(xxd -l 16 -p /dev/urandom)

After rebooting the problem seems to be solved. I’m not sure if the xauth commands were necessary, but I guess the problem was I hadn’t set the hostname from the default “linux”. hostnamectl showed “static hostname” as none, and “transient hostname” as linux. Now it shows static hostname as what I set, and doesn’t mention a transient hostname.

I knew it would be something painfully simple. ;-]