Project

General

Profile

Actions

Bug #14356

open

at-spi2-XXXXXX dirs proliferate in $HOME/.cache after MATE 1.26.x desktop update

Added by Tim Mooney 17 days ago. Updated 16 days ago.

Status:
New
Priority:
Normal
Assignee:
Category:
OI-Userland
Target version:
Start date:
Due date:
% Done:

0%

Estimated time:
Difficulty:
Medium
Tags:
mate

Description

Most of MATE desktop components were updated from the 1.24.x series to 1.26.x, with updates available from the openindiana.org publisher after about 30-Dec-2021.

Jason Martin reported (Thanks Jason!) via openindiana-discuss that after updating to MATE 1.26.x, there were many sockets being created in ~/.cache/at-spi2-XXXXXX/ directories. This doesn't appear to have been happening with MATE 1.24.x.

It may be be some incompatibility between MATE 1.26.x and some of the GNOME Accessibility Toolkit's "Assistive Technology Service Provider Interface" (at-spi) subsystem.

As a workaround, if you don't need assistive technology, you can add

NO_AT_BRIDGE=1; export NO_AT_BRIDGE

to your ~/.profile

That is a workaround, hopefully we'll be able to identify a fix.

After some brief investigation I can say that
  • a couple of MATE components use gnome/accessibility/at-spi2-core directly, but most don't. Instead most MATE components link to gnome/accessibility/at-spi2-atk, so we should probably focus debugging there first.
  • after looking at /etc/xdg/autostart/at-spi-dbus-bus.desktop it appears there are multiple problems with that file (which comes from at-spi2-core) that make it incompatible with MATE (as shipped). However, it doesn't matter, because of the next item.
  • it doesn't currently matter that /etc/xdg/autostart/at-spi-dbus-bus.desktop probably isn't doing what it's supposed to, because it appears that lightdm is automatically starting at-spi2.
  • the versions of at-spi2-core and at-spi2-atk are significantly behind the current versions. It may be worth it to investigate updating those components.
Actions #1

Updated by Tim Mooney 17 days ago

A little more information to add to this:

It definitely appears that it's happening in at-spi2-atk, in particular I found the following code in at-spi2-atk-2.24.1/atk-adaptor/bridge.c:

int
spi_atk_create_socket (SpiBridge *app)
{
#ifndef DISABLE_P2P
  DBusServer *server;
  DBusError error;
  const gchar *user_runtime_dir = g_get_user_runtime_dir ();

  if (g_mkdir_with_parents (user_runtime_dir, 0700) != 0)
    return -1;

  if (getuid () != 0)
  {
    app->app_tmp_dir = g_build_filename (user_runtime_dir,
                                         "at-spi2-XXXXXX", NULL);
    if (!g_mkdtemp (app->app_tmp_dir))
    {
      g_free (app->app_tmp_dir);
      app->app_tmp_dir = NULL;
      return -1;
    }
  }

(additional code in that function not shown).

Additionally, there is code in the same file to clean up the directory and the socket, including an atexit(remove_socket) call, but it looks like it's getting missed in a few cases. When you log out of MATE, most of the directories and sockets and temp directories do go away, but a few are effectively leaked, so that every time you log in and log out, a few more at-spi2-XXXXXX directories are left behind.

Actions #2

Updated by Tim Mooney 16 days ago

I opened a github "issue" against mate-panel:

[[https://github.com/mate-desktop/mate-panel/issues/1288]]

There are over a dozen components involved that are creating these directories, so it could have been against any of them, but mate-panel is one of the "high profile" components that is exhibiting the behavior.

Actions

Also available in: Atom PDF