Skip to content

Invalid client serialwhen nesting proxies #67

Open
@uninsane

Description

@uninsane

xdg-dbus-proxy generally fails to proxy messages when its upstream dbus path is another instance of xdg-dbus-proxy instead of the root dbus session.

repro

configure a session bus at /tmp/bus1, a filtering proxy from /tmp/bus2 to that session bus, and then another proxy at /tmp/bus3 to /tmp/bus2:

# start a dbus session (or skip this step if already running a dbus session, and replace /tmp/bus1 with $DBUS_SESSION_BUS_ADDRESS in the later invocations)
$ dbus-daemon --session --address=unix:path=/tmp/bus1
$ xdg-dbus-proxy unix:path=/tmp/bus1 /tmp/bus2 --log --filter '--call=org.freedesktop.portal.Desktop=*' &
$ xdg-dbus-proxy unix:path=/tmp/bus2 /tmp/bus3 --log --filter '--call=org.freedesktop.portal.Desktop=*' &

applications can generally speak to the outer xdg-dbus-proxy at /tmp/bus2, but not the inner proxy at /tmp/bus3:

$ DBUS_SESSION_BUS_ADDRESS=unix:path=/tmp/bus2 busctl --user list
NAME                     PID PROCESS        USER  CONNECTION UNIT              SESSION DESCRIPTION
:1.1                 1277488 xdg-dbus-proxy colin :1.1       session-167.scope 167     -
org.freedesktop.DBus 1277488 xdg-dbus-proxy colin -          session-167.scope 167     -
$ DBUS_SESSION_BUS_ADDRESS=unix:path=/tmp/bus3 busctl --user list
Failed to list names: Transport endpoint is not connected

upon connecting to /tmp/bus3, the xdg-dbus-proxy proxying from /tmp/bus2 to /tmp/bus1 logs:

WARNING **: Invalid client serial: Exceeds maximum value of 4294901759

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions