Comment 90 for bug 491483

Revision history for this message
David Benjamin (davidben) wrote :

I am aware of this; I know the details of this problem, having discovered it independently in the days I spent figuring out why Ubuntu failed to boot on my laptop into either X or single-user mode.

If kdm was used, then this bug also occurred in single-user mode because the configuration check occurs before the single-user check and returned a non-zero exit status. The failsafe-x init script lacks a sanity check to not run when booting into single-user mode, like kdm and gdm do have. While it is true that this bug cannot currently be triggered, this package is *failsafe* X. If care cannot be taken to make sure it doesn't kill the system due to driver problems, extreme care should at least be taken to ensure it does not break existing, more fail-proof, failsafe methods.

If the gdm script ever accidentally returns a non-zero exit status from a future change for whatever reason, this bug will happen again and we will attempt to launch failsafe-x on single-user mode. This is especially unfortunate; presumably if I'm booting into recovery mode, it means that failsafe X already failed and launching it again only risks further disabling the user's machine. It would be good engineering to, for instance, add a check in failsafe-x's script. If not by listening for the starting-dm event, at least do the same /proc/cmdline check that gdm does.

Perhaps change the start on rule to

start on (stopped gdm EXIT_STATUS=[!0] and starting-dm)

But I don't know upstart particularly well, and I cannot test this on my machine; any attempt to bring up failsafe X results in killing it.