gdbusobjectmanagerclient: Don’t warn if removing an interface fails

If an `InterfacesRemoved` signal is received for an object which doesn’t
exist in the local map of interfaces, don’t emit a warning.

This seems to happen in the real world (see #2401). Without a trace of
the D-Bus traffic it’s not possible to know exactly what situation is
causing this, but it seems possible that the peer could disappear and
its `notify::name-owner` signal could be processed before its
`InterfacesRemoved` signal, or something similar.

Signed-off-by: Philip Withnall <pwithnall@endlessos.org>

Fixes: #2401
This commit is contained in:
Philip Withnall 2021-09-22 18:34:08 +01:00
parent 1176835ce3
commit 8d82453cf1

View File

@ -1689,9 +1689,9 @@ remove_interfaces (GDBusObjectManagerClient *manager,
op = g_hash_table_lookup (manager->priv->map_object_path_to_object_proxy, object_path);
if (op == NULL)
{
g_warning ("%s: Processing InterfaceRemoved signal for path %s but no object proxy exists",
G_STRLOC,
object_path);
g_debug ("%s: Processing InterfaceRemoved signal for path %s but no object proxy exists",
G_STRLOC,
object_path);
g_mutex_unlock (&manager->priv->lock);
goto out;
}