www.cendio.com
Bug 5999 - tl-xinit does not handle cleanup of session if X server dies/exit
: tl-xinit does not handle cleanup of session if X server dies/exit
Status: NEW
: ThinLinc
VSM Agent
: 4.6.0
: PC Unknown
: P2 Normal
: Next
Assigned To:
:
:
:
:
  Show dependency treegraph
 
Reported: 2016-09-21 09:28 by
Modified: 2016-10-18 10:35 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From cendio 2016-09-21 09:28:24
The main loop in tl-xinit waits for changes of subprocesss exits and signals
(client and server). When client exits/signaled the main loop is exited and a
cleanup of session is performed. However when server exits or is signaled we
assume that the client will die due to X is killed which is not the case if
client processes is not dependent on X server, such as upstart on ubuntu.

lightdm and gdm does not assume this behaviour and reacts when X server is
exit/signaled.
------- Comment #1 From cendio 2016-09-21 09:59:12 -------
Here follows xinit.log for profile with only a xterm which will die when X
server is gone.

    Executing start program command: xterm
    xterm: fatal IO error 104 (Connection reset by peer) or KillClient on X
server ":1"
    XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":1"
    tl-while-x11: lost Xserver connection, terminating child 9100 ...
        after 116 requests (116 known processed) with 2 events remaining.
    tl-while-x11: lost Xserver connection, terminating child 9106 ...
    tl-xinit: warning: Xserver terminated and returned 0
    Profile command exited with exit code 84
    Running /opt/thinlinc/etc/xlogout.d/tl-kdestroy.sh
    Running /opt/thinlinc/etc/xlogout.d/tl-umount-localdrives
    tl-xinit: client terminated and returned 0
    tl-xinit: Session terminated. Exiting.


Here is a unity profile which never will die, tl-xinit still lives after kill
av X server.


    Executing profile: unity
    Using XDG session: ubuntu
    Executing XDG session command: upstart --user
    XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":1"
        after 116 requests (116 known processed) with 0 events remaining.
    tl-while-x11: lost Xserver connection, terminating child 9403 ...
    tl-while-x11: lost Xserver connection, terminating child 9409 ...
    tl-xinit: warning: Xserver terminated and returned 0
------- Comment #2 From cendio 2016-10-14 09:43:20 -------
When a system administrator wants to disallow running programs or services in
disconnected user sessions, they would append "-MaxDisconnectionTime <time>" to
/vsmagent/xserver_args, as described in our documentation
(https://www.cendio.com/resources/docs/tag/configuration_limiting_lifetime.html).

As we never ensure from tl-xinit that the xsession process actually terminates
when Xvnc does, which means that the user processes can live on as long as they
handle/don't care about missing a display. As a system administrator, I would
have expected that the user session was terminated, not just Xvnc.

I can't remember hearing about this use case in earlier discussions, so I am
reassigning this bug from 'Future' to '---' for further discussions.