Bug 89475 - plymouth-start.service races with gdm.service startup
Summary: plymouth-start.service races with gdm.service startup
Alias: None
Product: plymouth
Classification: Unclassified
Component: general (show other bugs)
Version: unspecified
Hardware: Other All
: medium normal
Assignee: Ray Strode [halfline]
QA Contact:
Depends on:
Reported: 2015-03-06 19:34 UTC by Daniel Drake
Modified: 2015-03-25 23:05 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:

systemd: make sure to only start plymouth is started (1.65 KB, patch)
2015-03-06 20:39 UTC, Ray Strode [halfline]
Details | Splinter Review

Description Daniel Drake 2015-03-06 19:34:27 UTC
The following sequence of events is possible with the current setup, especially where plymouth is started from the real-root (as opposed to the initramfs):

1. systemd launches plymouth-start and gdm at the same time
2. gdm queries to see if plymouth is running. plymouthd is not ready to respond yet, so gdm assumes no.
3. plymouthd finishes startup and gets splash on the screen
4. gdm starts X without doing the handoff with plymouth, since it believes plymouth is not running
5. X aborts as it can't get DRM master
Comment 1 Daniel Drake 2015-03-06 19:37:14 UTC
This could be fixed by making plymouth-start.service Before=gdm.service, or by making gdm.service After=plymouth-start.service. Any preference?
Comment 2 Ray Strode [halfline] 2015-03-06 20:29:37 UTC
i'd say gdm.service should add After=plymouth-start.service since it already has After=plymouth-quit.service
Comment 3 Ray Strode [halfline] 2015-03-06 20:30:44 UTC
in fact, gdm.service should have all the same dependencies plymouth-quit.service has, since gdm.service Conflicts (replaces) plymouth-quit.service
Comment 4 Ray Strode [halfline] 2015-03-06 20:39:59 UTC
Created attachment 114097 [details] [review]
systemd: make sure to only start plymouth is started

This commit makes sure gdm doesn't start in parallel with plymouth,
which could lead to plymouth activating after X is started.

Furthermore, GDM is replacing getty@tty1.service and
plymouth-quit.service, so it needs to have the same dependencies
as them.
Comment 5 Ray Strode [halfline] 2015-03-06 20:40:15 UTC
look right?
Comment 6 Daniel Drake 2015-03-06 22:00:10 UTC
That looks good, although you might want to avoid eating the blankline above [Service] for cleanliness.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.