> at the time the plymouth upstart jobs were written, plymouthd was only forking
> once - and correctly opening its socket before detaching from the foreground.
This is not correct. main.c:main calls ply_create_daemon before start_boot_server, so the process does fork before binding the port.
When the error occurs the plymouthd log states:
[main.c] on_display_message:not displaying message Please remove installation media and close the tray (if any) then press ENTER: as no splash
Note "not displaying message... as no splash". That error message only occurs when the splash screen is not being shown. It is not related to unmounting the filesystem.
> And considering we're discussing a problem that occurs only on shutdown -
> there have been no problems with reliability of plymouth splash appearing on
> boot due to a corresponding race condition - I don't think this is at all a
> likely explanation for the behavior.
Boot and shutdown are different. On boot, plymouth.conf executes plymouthd, then plymouth-splash.conf executes plymouth show-splash. On shutdown, plymouth-shutdown.conf executes both plymouthd and plymouth. Since one script executes both, the timing is tighter.
> at the time the plymouth upstart jobs were written, plymouthd was only forking
> once - and correctly opening its socket before detaching from the foreground.
This is not correct. main.c:main calls ply_create_daemon before start_boot_server, so the process does fork before binding the port.
When the error occurs the plymouthd log states:
[main.c] on_display_ message: not displaying message Please remove installation media and close the tray (if any) then press ENTER: as no splash
Note "not displaying message... as no splash". That error message only occurs when the splash screen is not being shown. It is not related to unmounting the filesystem.
> And considering we're discussing a problem that occurs only on shutdown -
> there have been no problems with reliability of plymouth splash appearing on
> boot due to a corresponding race condition - I don't think this is at all a
> likely explanation for the behavior.
Boot and shutdown are different. On boot, plymouth.conf executes plymouthd, then plymouth- splash. conf executes plymouth show-splash. On shutdown, plymouth- shutdown. conf executes both plymouthd and plymouth. Since one script executes both, the timing is tighter.
I have tested the patch and it works.