D-Bus User Bus

Havoc Pennington hp at pobox.com
Sun May 16 13:13:12 PDT 2010

There are extensive threads on this in the archives. Before changing
anything I'd surely suggest digging them up and linking to them for

The big problem in the past - and the reason we have a session bus -
is that per-user stuff, such as Bonobo and GConf - just did not work,
ever. Nobody got it right. While the per-session approach, used
historically by most things (and by KDE) did work. So KDE (in
practice) supported multiple logins, GNOME (in practice) did not.

The failure mode usually involves network homedirs (multiple machines)

Anyway, while multiple sessions writing to the same homedir is
theoretically broken, it usually isn't in practice, while multiple
sessions using the same user bus is theoretically good, it is usually
broken in practice.

The multiple session buses works in practice by default because it's
one instance of things per display by default, and two things writing
a file with "last wins" tends to work.

While a user bus fails badly by default because handling multiple
displays on one bus requires app programmers to do a lot of work.

Basically if app programmers are clueless, user bus breaks due to
multiple displays, session bus mostly works because "last to write
wins" works fine.

In essence, people won't test and won't implement the display handling
that Lennart suggests, at least historically that is what happened
with Bonobo and GConf. Maybe better docs or convenience API could
help. But if app developers doing the "obvious thing" doesn't work...
your battle is uphill.

It also further complicates (or at least changes) the big unresolved
discussion of how "su" is supposed to work (discussion in bugzilla)

Another big problem is daemons failing to exit when people log out.
This pisses off sysadmins, due to both resource use and problems
getting automounted homedirs to go away. With per-session - and the
default behavior of DBusConnection/Xlib to exit if the app developer
has not done anything explicit - this usually doesn't happen.

Just giving some boring old historical background. </in my day>


More information about the dbus mailing list