Comment 69 for bug 441653

Revision history for this message
Žilvinas Valinskas (zval) wrote :

Problem should be fixed by this commit, not sure if it was backported to ubuntu/natty.

commit 88c4622b594a1725d0cee86bc82ad640d241c520
Author: Aaron Plattner <email address hidden>
Date: Mon Apr 18 08:23:48 2011 -0700

    linux: Retry VT ioctls while errno == EINTR

    When the smart scheduler is enabled, the VT ioctls (particularly
    VT_WAITACTIVE) can be interrupted by the smart scheduler's SIGALRMs.
    Previously, this caused the server to immediately continue on to
    ScreenInit, almost certainly causing a crash or failure because the X
    server that owned the VT hadn't finished cleaning up. As of commit
    7ee965a300c9eddcc1acacf9414cfe3e589222a8, it causes a FatalError
    instead.

    Retrying the ioctl as long as it fails with errno == EINTR fixes the
    problem and allows server regenerations to trigger VT switches that
    actually succeed.

    Signed-off-by: Aaron Plattner <email address hidden>
    Reviewed-by: Peter Hutterer <email address hidden>
    Reviewed-by: Cyril Brulebois <email address hidden>
    Signed-off-by: Keith Packard <email address hidden>