Bug#738497: gdm3: XDMCP cannot handle multiple terminals

Simon McVittie smcv at debian.org
Mon Feb 10 12:38:42 UTC 2014


On 10/02/14 00:08, Paul Szabo wrote:
> Initial problem was with D-Bus, log lines like
>   Feb  4 11:53:21 bari gdm-welcome][15095]: AccountsService-WARNING: Failed to connect to the D-Bus daemon: GDBus.Error:org.freedesktop.DBus.Error.LimitsExceeded: The maximum number of active connections for UID 0 has been reached
> Seems /etc/dbus-1/session.conf settings are not applied.
> A workaround seems to be to set "limit" lines in
> /etc/dbus-1/system.conf also.

system.{conf,conf.local,d} are the correct place to configure this
limit, and session.{conf,conf.local,d} are not. The system bus and the
session buses are not the same thing: they share a executable, but have
separate configuration.

The system bus is the single instance of dbus-daemon that runs under uid
messagebus, and can be used by processes under any uid. AccountsService
is a system service (like NetworkManager, BlueZ, Avahi, systemd, and gdm
itself).

The session buses are the instances of dbus-daemon that run under
individual users' uids, and can only be used by that same uid. They're
only relevant for session services like dconf and Telepathy, and session
applications (e.g. most GNOME and KDE applications).

gdm uses the system bus for general system coordination involving
privileged components (communication between gdm components,
AccountsService, ConsoleKit if in use, and systemd-logind if in use). It
also uses one session bus per login GUI for communication among
unprivileged login GUI components (the "greeter"), under uid "Debian-gdm".

Adding <limit> entries to system.conf, system.conf.local or a file in
system.d, similar to those in session.conf but with somewhat smaller
numbers, is likely to be necessary if you have that many parallel users
on a machine. You'll probably want to raise max_completed_connections
and max_incomplete_connections (so dbus-daemon asks the kernel for a
higher fd limit before it drops privileges), as well as
max_connections_per_user.

The shipped system.conf does not currently override the hard-coded
default limits from bus/config-parser.c. The limit for the number of
connections per user (uid) is conservative, because each D-Bus
connection needs one fd, and the maximum number of fds per process is
relatively small. The hard-coded defaults are 256 connections per user,
and 2048 connections in total (so 8 users could cooperate to deny
service to the rest). uid 0 is not currently treated as special: if you
would like it to be exempt from max_connections_per_user, please send a
patch upstream to <https://bugs.freedesktop.org/show_bug.cgi?id=74788>.

I don't know why the greeters quit when you have more than 5-10 at once:
that sounds like some orthogonal bug.

    S



More information about the pkg-gnome-maintainers mailing list