[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bug#766462: with plymouth installed, I don't get any gettys on my VCs



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 <smcv@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 <smcv@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

Reply to: