Comment 5 for bug 540256

Revision history for this message
Scott James Remnant (Canonical) (canonical-scott) wrote :

This bug is caused by the following:

 * plymouth started from the initramfs (where it will set the terminal into Raw Mode)
 * upstart resetting the terminal back into Canonical Mode
 * plymouth deactivate goes to set back into Canonical Mode, sees it's already there, and does not set the "terminal is not unbuffered" flag
 * X starts and resets the terminal back Raw Mode
 * plymouth quit goes to set back into Canonical Mode again, and since the "terminal is not unbuffered" flag was not reset, and the terminal is still in Raw Mode, it does reset back into Canonical Mode
 * user presses Enter, which in Canonical Mode is C-\ 0x0A
 * X receives SIGQUIT (C-\)

This means there are two bugs here:

 * plymouth doesn't set the "terminal is not unbuffered" flag, and thus retries setting the terminal

fixing that would alone fix the Enter-kills-X bug. But since the terminal is Canonical Mode throughout the boot, plymouth will not receive or handle input correctly (enter would give it SIGQUIT too) - so we have to address that problem too.

Having plymouth reassert Raw Mode would just bring back timing bugs if it did that while X was starting...

Currently investigating why Upstart resets it to Canonical Mode in the first place.