Subject: Re: [X2Go-Dev] Bug#1342: Graphical apps stalling in suspended session

From: Ulrich Sibiller <[email-masked]>
Date: Wed, 14 Nov 2018 21:50:59 +0100

On Wed, Nov 14, 2018 at 8:17 PM <[email-masked]> wrote:
>
> Package: x2goserver
> Version: 4.0.1.0
>
> I put this in the x2goserver section but I'm not quite sure if it's the
> right component that suffers from this issue.
>
> In my company, we recently began to experience an issue similar to the
> one reported in archived bug #673 [1] and on the X2Go-User list [2]
> back in 2015. The manifestation of the issue is that when a session is
> suspended, our program that runs in a terminal inside the session is
> slowed down to a near stop, and abruptly recovers its original speed
> when the session is resumed. There seems to be a link with graphical
> components though, and my guess is it's the output scrolling in the
> terminal that is stalled, and by way of consequence slowing down the
> rest of the program downstream.
> To confirm the involvement of the graphics, I tried running glxgears as
> a test, and while it runs at about 1000 fps while the session is
> attached, it drops at about 3 fps (!) when suspended. This behaviour is
> reproducible on a freshly installed CentOS 7 VM; I can provide a
> VirtualBox VM on which I ran the glxgears test.
>
...

> A quick search for this issue raised at least 2 third parties
> experiencing the issue; one university [3] announced dropping x2go as
> of October 2018 because of this, and another [4] is listing it as a
> known issue, albeit maybe in 2015.

Oh, they should have asked before dropping X2go!

> I hope we can find a source for this problem, it's quite critical for
> us.

That has been implemented on purpose by nomachine to take some load
off the server. You can disable that via the sleep option:
       sleep=<int>
              delay X server operations when suspended (provided in
msec), set to 0 to keep nxagent session fully functional when
suspended (e.g. useful when mirroring an nxagent session via VNC)

You can set this sleep to 0 in /etc/x2go/x2goagent.options on the
server with the following line:
X2GO_NXAGENT_DEFAULT_OPTIONS="-options nx/nx,sleep=0"

This in non-obvious and should be a client option instead... Can you
please try if that helps for your setup?

Uli