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

From: Orion Poplawski <[email-masked]>
Date: Tue, 20 Nov 2018 15:45:01 -0700

On 11/14/18 1:50 PM, Ulrich Sibiller wrote:
> 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

See https://bugs.x2go.org/cgi-bin/bugreport.cgi?bug=1322 for my proposal for
addressing this on the server side.  I believe by adding the line above you
are messing up many of the default options.  According to the man page of nxagent:

      -options filename
               path to an options file containing nx/nx options (see below).

-- 
Orion Poplawski
Manager of NWRA Technical Systems          720-772-5637
NWRA, Boulder/CoRA Office             FAX: 303-415-9702
3380 Mitchell Lane                       [email-masked]
Boulder, CO 80301                 https://www.nwra.com/