When starting up certain (GTK?) applications from console in a custom X session, such as emacs or ubuntu-bug, there is a lot of log output like:
"""
** (emacs:4437): WARNING **: 15:05:10.026: AT-SPI: Could not obtain desktop path or name
"""
or
"""
** (apport-gtk:175957): WARNING **: 15:16:16.747: AT-SPI: Could not obtain desktop path or name
"""
The issue seems to be related to at-spi2-atk, or at least that's where the code that prints the error is:
In register_reply in bridge.c:
if (reply)
{
gchar *app_name, *obj_path;
if (strcmp (dbus_message_get_signature (reply), "(so)") != 0)
{
g_warning ("AT-SPI: Could not obtain desktop path or name\n");
}
Which seems to be triggered by an attempt to register the application to ATK:
static gboolean
register_application (SpiBridge * app)
{
DBusMessage *message;
DBusMessageIter iter;
DBusPendingCall *pending;
/* These will be overridden when we get a reply, but in practice these
defaults should always be correct */
app->desktop_name = g_strdup (ATSPI_DBUS_NAME_REGISTRY);
app->desktop_path = g_strdup (ATSPI_DBUS_PATH_ROOT);
It seems to be caused by nobody being available at the ATSPI_DBUS_PATH_ROOT to handle the message. I have not yet been able to figure out what *should* be handling the message.
When starting up certain (GTK?) applications from console in a custom X session, such as emacs or ubuntu-bug, there is a lot of log output like:
"""
** (emacs:4437): WARNING **: 15:05:10.026: AT-SPI: Could not obtain desktop path or name
"""
or
""" gtk:175957) : WARNING **: 15:16:16.747: AT-SPI: Could not obtain desktop path or name
** (apport-
"""
The issue seems to be related to at-spi2-atk, or at least that's where the code that prints the error is:
In register_reply in bridge.c:
if (reply)
{
gchar *app_name, *obj_path;
if (strcmp (dbus_message_ get_signature (reply), "(so)") != 0)
{
g_warning ("AT-SPI: Could not obtain desktop path or name\n");
}
Which seems to be triggered by an attempt to register the application to ATK: application (SpiBridge * app)
static gboolean
register_
{
DBusMessage *message;
DBusMessageIter iter;
DBusPendingCall *pending;
g_free (app->desktop_ name); path);
g_free (app->desktop_
/* These will be overridden when we get a reply, but in practice these DBUS_NAME_ REGISTRY) ; DBUS_PATH_ ROOT);
defaults should always be correct */
app->desktop_name = g_strdup (ATSPI_
app->desktop_path = g_strdup (ATSPI_
message = dbus_message_ new_method_ call (SPI_DBUS_ NAME_REGISTRY,
ATSPI_DBUS_ PATH_ROOT,
ATSPI_DBUS_ INTERFACE_ SOCKET,
"Embed" );
dbus_ message_ iter_init_ append (message, &iter); append_ reference (&iter, app->root);
spi_object_
if (!dbus_ connection_ send_with_ reply (app->bus, message, &pending, -1)
dbus_ pending_ call_unref (pending);
|| !pending)
{
if (pending)
return FALSE;
}
dbus_ pending_ call_set_ notify (pending, register_reply, app, NULL);
It seems to be caused by nobody being available at the ATSPI_DBUS_ PATH_ROOT to handle the message. I have not yet been able to figure out what *should* be handling the message.