Control: reassign 766462 gdm3 Control: affects 766462 kdm wdm plymouth Control: tags 766462 = patch pending
On 01/03/15 21:58, Simon McVittie wrote: > Cc kdm, lightdm, slim, wdm maintainers to warn you that you might be > getting a RC bug (with a simple fix, add one 3-line file) assigned or > cloned to your DM implementations. The real bug is that kdm and wdm do not participate in the shared display-manager.service symlink management (#755359, #761642) which should be fixed post-jessie. However, at the same time, it is gdm3 that is doing something unusual (by suppressing plymouth-quit.service), so it should probably also be gdm3 that mitigates bad situations caused by that unusual configuration; and the same configuration in gdm3 can make other broken situations worse (#780257, which I opened after thinking about this some more). So I think gdm3 is probably the best place to fix this particular symptom, particularly since the fix is easy. I plan to upload the attached changes when my previous gdm3 upload has migrated. Regards, S
Index: debian/changelog =================================================================== --- debian/changelog (revision 44150) +++ debian/changelog (working copy) @@ -1,3 +1,13 @@ +gdm3 (3.14.1-6) unstable; urgency=medium + + * Team upload. + * Under systemd, if gdm fails to start, or if the selected DM is + kdm or wdm, make sure to run plymouth-quit.service (which gdm normally + suppresses), so that plymouth-quit-wait.service terminates and gettys + are not prevented from running. (Closes: #766462, #780257) + + -- Simon McVittie <s...@debian.org> Wed, 11 Mar 2015 12:25:38 +0000 + gdm3 (3.14.1-5) unstable; urgency=medium * Do not fail to start gdm if /etc/default/locale does not exist Index: debian/patches/96_plymouth-quit.patch =================================================================== --- debian/patches/96_plymouth-quit.patch (revision 0) +++ debian/patches/96_plymouth-quit.patch (working copy) @@ -0,0 +1,38 @@ +From: Simon McVittie <s...@debian.org> +Date: Wed, 11 Mar 2015 11:35:40 +0000 +Subject: systemd: call plymouth-quit if gdm fails + +gdm.service Conflicts with plymouth-quit.service, so it does not run +when it normally would (because GDM wants to handle the handover from +plymouth to X11 itself). This means that if gdm fails to start for whatever +reason, plymouth is never stopped, so plymouth-quit-wait.service +never finishes. This, in turn, means that getty@tty*.service, which is +After plymouth-wait-quit.service, never starts, and there is no way to +log in locally and fix the problem (Debian bug #780257, but not +Debian-specific). + +In Debian 8, not all display managers have been migrated to +participate in managing the display-manager.service symlink yet +(in particular, kdm and wdm have not), so gdm has a transitional +ExecStartPre that stops it from running if kdm or wdm is selected +as the active DM. This has the same effect of preventing plymouth +from running (Debian-specific bug #766462). + +It's easy to avoid both of those situations by scheduling +plymouth-quit.service to run if gdm fails. + +Bug-Debian: https://bugs.debian.org/766462 +Bug-Debian: https://bugs.debian.org/780257 + +--- a/data/gdm.service.in ++++ b/data/gdm.service.in +@@ -2,6 +2,9 @@ + Description=GNOME Display Manager + Conflicts=getty@tty@GDM_INITIAL_VT@.service plymouth-quit.service + After=systemd-user-sessions.service getty@tty@GDM_INITIAL_VT@.service plymouth-quit.service ++# GDM takes responsibility for stopping plymouth, so if it fails ++# for any reason, make sure plymouth still stops ++OnFailure=plymouth-quit.service + + [Service] + ExecStartPre=/bin/sh -c '[ "$(cat /etc/X11/default-display-manager 2>/dev/null)" = "/usr/sbin/gdm3" ]' Index: debian/patches/series =================================================================== --- debian/patches/series (revision 44150) +++ debian/patches/series (working copy) @@ -10,3 +10,4 @@ 93_disable_gvfs.patch 94_retain_xorg_log.patch 95_systemd-import-language-into-daemon-environment.patch +96_plymouth-quit.patch