GDM multiseat is not compatible with recent systemd
Submitted by Oleg Samarin
Link to original bug (#776203)
Description
Created attachment 342112 start separate instance of dbus for each greater session in multiseat
GDM multiseat does not more works with systemd 226 and above: the greeter scree appears only on one seat
I use:
systemd-231-10.fc25.x86_64 gdm-3.22.1-1.fc25.x86_64 gnome-session-3.22.2-1.fc25.x86_64
The reason is the following change in systemd/dbus:
systemd now supports the concept of user buses replacing session buses, if used with dbus-1.10 (and enabled via dbus --enable-user-session). It previously only supported this on kdbus-enabled systems, and this release expands this to 'dbus-daemon' systems.
Gdm tries to launch gnome-session on each seat with the same username 'gdm'. With earlier systemd versions, the separate instance of dbus was started for each session. But since systemd 226 only one instance of dbus is started for the user 'gdm', so only one instance of gnome-session may work and all other gnome-sessions shut down:
Dec 14 21:59:40 oleg2.oleghome gnome-session[4200]: gnome-session-binary[4200]: WARNING: Error getting login monitor: -13 Dec 14 21:59:40 oleg2.oleghome gnome-session-binary[4200]: WARNING: Error getting login monitor: -13 Dec 14 21:59:40 oleg2.oleghome gnome-session[4200]: gnome-session-binary[4200]: WARNING: Calling name lost callback function Dec 14 21:59:40 oleg2.oleghome gnome-session[4200]: gnome-session-binary[4200]: CRITICAL: gsm_manager_set_phase: assertion 'GSM_IS_MANAGER (manager)' failed Dec 14 21:59:40 oleg2.oleghome gnome-session-binary[4200]: WARNING: Calling name lost callback function Dec 14 21:59:40 oleg2.oleghome gnome-session-binary[4200]: CRITICAL: gsm_manager_set_phase: assertion 'GSM_IS_MANAGER (manager)' failed
I've maid a small patch for gdm that exclusively starts separate instance of dbus for each greater gnome-session: it replaces 'gnome-session' with 'dbus-run-session gnome-session'. After this patch multiseat works again.
Patch 342112, "start separate instance of dbus for each greater session in multiseat":
gdm-3.22.1-dbus-session.patch
Version: 3.22.x