plymouth-splash can't be displayed due to race condition with plymouth-stop
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OEM Priority Project |
Invalid
|
Undecided
|
Unassigned | ||
Precise |
Invalid
|
Undecided
|
Unassigned | ||
Plymouth |
New
|
Undecided
|
Unassigned |
Bug Description
OS version: Ubuntu 12.04.4 Precise
Package version: plymouth 0.8.2-2ubuntu31.1
There might be race condition between plymouth-splash and plymouth-stop.
Normally the calling sequence should be:
plymouth
...
plymouth-splash
...
plymouth-stop
On the fail unit it looks like:
plymouth
...
plymouth-stop
...
plymouth-splash
Therefore the splash screen can't be displayed.
The timing that plymouth-splash would be executed relies on these conditions: (ref: /etc/init/
1) plymouth should be executed and,
2) graphics-
Condition 1 is always satisfied, so the possible reason of why plymouth-splash is not executed might be the graphic takes too many time to initial.
affects: | plymouth (Ubuntu) → oem-priority |
tags: | removed: oem-priority |
description: | updated |
I wrote a patch to check plymouth-splash status before plymouth quit is fired to prevent the race condition. It seems work on my machine:
=== modified file 'debian/ plymouth. plymouth- stop.upstart' plymouth. plymouth- stop.upstart 2013-05-03 02:49:34 +0000 plymouth. plymouth- stop.upstart 2014-03-14 09:25:29 +0000
--- debian/
+++ debian/
@@ -24,6 +24,7 @@
exit 0
;;
*)
+ status plymouth-splash | grep -q 'start/running' && \
exec /bin/plymouth quit
;;
esac