X2Go Bug report logs - #1228
Implement basic dialog handling in X2Go Server

version graph

Package: x2goserver; Maintainer for x2goserver is X2Go Developers <x2go-dev@lists.x2go.org>; Source for x2goserver is src:x2goserver.

Reported by: Alexey Nemov <alexnemov@protonmail.com>

Date: Thu, 26 Oct 2017 06:45:01 UTC

Severity: normal

Found in version 4.0.1.20

Reply or subscribe to this bug.

Toggle useless messages

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to x2go-dev@lists.x2go.org, X2Go Developers <x2go-dev@lists.x2go.org>:
Bug#1228; Package x2goserver. (Thu, 26 Oct 2017 06:45:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Alexey Nemov <alexnemov@protonmail.com>:
New Bug report received and forwarded. Copy sent to X2Go Developers <x2go-dev@lists.x2go.org>. (Thu, 26 Oct 2017 06:45:01 GMT) Full text and rfc822 format available.

Message #5 received at submit@bugs.x2go.org (full text, mbox):

From: Alexey Nemov <alexnemov@protonmail.com>
To: "submit@bugs.x2go.org" <submit@bugs.x2go.org>
Subject: Ctrl-Alt-T doesn't terminate connection in "local desktop" sessions
Date: Thu, 26 Oct 2017 02:32:26 -0400
Package: x2goserver
Version: 4.0.1.20


Summary:
As stated in the wiki https://wiki.x2go.org/doku.php/wiki:advanced:nx-keyboard-shortcuts
The action "close_session" should terminate the session.
But, pressing Ctrl-Alt-t in a "local desktop" session does not "terminate" the session.


Steps to reproduce:
0. Create a new session profile in x2goclient with session type "Connect to local desktop";
1. Connect to remote computer using this session profile;
2. Press Ctrl-Alt-t at the client.

Expected behaviour:
The remote desktop window on the client should close, the connection should be terminated.

Actual behaviour:
The remote desktop window on the client does not close, the connection is not terminated.
The following log entries appears in the server's system journal:

```
Oct 26 13:50:39 localhost /usr/bin/x2gosuspend-session[31790]: session with ID alex-50-1508997021_stS1XSHADalexXSHADPP0_dp24 has been suspended successfully
Oct 26 13:50:45 localhost su[31900]: Successful su for alex by root
Oct 26 13:50:45 localhost su[31900]: + ??? root:alex
Oct 26 13:50:45 localhost su[31900]: pam_unix(su:session): session opened for user alex by (uid=0)
Oct 26 13:50:45 localhost systemd-logind[508]: New session c99 of user alex.
Oct 26 13:50:45 localhost systemd[1]: Started Session c99 of user alex.
Oct 26 13:50:46 localhost su[31900]: pam_unix(su:session): session closed for user alex
Oct 26 13:50:46 localhost su[31923]: Successful su for alex by root
Oct 26 13:50:46 localhost su[31923]: + ??? root:alex
Oct 26 13:50:46 localhost su[31923]: pam_unix(su:session): session opened for user alex by (uid=0)
Oct 26 13:50:46 localhost systemd-logind[508]: Removed session c99.
Oct 26 13:50:46 localhost systemd-logind[508]: New session c100 of user alex.
Oct 26 13:50:46 localhost systemd[1]: Started Session c100 of user alex.
Oct 26 13:50:49 localhost /usr/bin/x2gosuspend-session[32026]: session with ID alex-50-1508997021_stS1XSHADalexXSHADPP0_dp24 has been suspended successfully
Oct 26 13:50:50 localhost su[31923]: pam_unix(su:session): session closed for user alex
Oct 26 13:50:50 localhost systemd-logind[508]: Removed session c100.
Oct 26 13:50:53 localhost /usr/sbin/x2gocleansessions[12745]: alex-50-1508997021_stS1XSHADalexXSHADPP0_dp24: session status S desynchronized with current status (R) and session suspend already tried unsuccessfully
```


Other infomation:
0. Executing x2gosuspend-session <ID> on the server has the same effect as pressing C-A-t at the client.
1. Execuitng x2goterminate-session <ID> on the server does terminates the session and closes the client window.
3. Server-side /etc/x2go/keystrokes.cfg: http://paste.debian.net/plain/992795



-- System Information (server and client):
Debian Release: 9.2
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.9.0-4-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8), LANGUAGE=en_US:en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Information forwarded to x2go-dev@lists.x2go.org, X2Go Developers <x2go-dev@lists.x2go.org>:
Bug#1228; Package x2goserver. (Thu, 26 Oct 2017 07:20:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Mihai Moldovan <ionic@ionic.de>:
Extra info received and forwarded to list. Copy sent to X2Go Developers <x2go-dev@lists.x2go.org>. (Thu, 26 Oct 2017 07:20:02 GMT) Full text and rfc822 format available.

Message #10 received at 1228@bugs.x2go.org (full text, mbox):

From: Mihai Moldovan <ionic@ionic.de>
To: Alexey Nemov <alexnemov@protonmail.com>, 1228@bugs.x2go.org
Subject: Re: [X2Go-Dev] Ctrl-Alt-T doesn't terminate connection in "local desktop" sessions
Date: Thu, 26 Oct 2017 09:17:28 +0200
[Message part 1 (text/plain, inline)]
Control: retitle -1 Implement basic dialog handling in X2Go Server

On 10/26/2017 08:32 AM, Alexey Nemov wrote:
> As stated in the wiki https://wiki.x2go.org/doku.php/wiki:advanced:nx-keyboard-shortcuts
> The action "close_session" should terminate the session.
> But, pressing Ctrl-Alt-t in a "local desktop" session does not "terminate" the session.

This is caused by the way we handle dialogs from nxagent. Currently, every
dialog (wrongly) spawns x2gosuspend-session for every message the agent wants to
show.

nxagent sends a KILL SESSION dialog when close_session is executed for
non-persistent sessions (like shadow sessions), but the default handler
x2gosuspend-session that is set via NX_CLIENT is x2gosuspend-session, which is
called and fails to suspend the session (since session suspension doesn't make
sense or works with non-persistent sessions.)

While the general goal should be to relay messages to the client side one day,
currently I want a small wrapper script on the server side which handles
server-side events in a better way.

Thus retitling this bug report.



Mihai

[signature.asc (application/pgp-signature, attachment)]

Changed Bug title to 'Implement basic dialog handling in X2Go Server' from 'Ctrl-Alt-T doesn't terminate connection in "local desktop" sessions' Request was from Mihai Moldovan <ionic@ionic.de> to 1228-submit@bugs.x2go.org. (Thu, 26 Oct 2017 07:20:02 GMT) Full text and rfc822 format available.

Information forwarded to x2go-dev@lists.x2go.org, X2Go Developers <x2go-dev@lists.x2go.org>:
Bug#1228; Package x2goserver. (Thu, 26 Oct 2017 08:10:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Ulrich Sibiller <uli42@gmx.de>:
Extra info received and forwarded to list. Copy sent to X2Go Developers <x2go-dev@lists.x2go.org>. (Thu, 26 Oct 2017 08:10:02 GMT) Full text and rfc822 format available.

Message #17 received at 1228@bugs.x2go.org (full text, mbox):

From: Ulrich Sibiller <uli42@gmx.de>
To: Mihai Moldovan <ionic@ionic.de>, 1228@bugs.x2go.org
Cc: Alexey Nemov <alexnemov@protonmail.com>
Subject: Re: [X2Go-Dev] Bug#1228: Ctrl-Alt-T doesn't terminate connection in "local desktop" sessions
Date: Thu, 26 Oct 2017 10:07:48 +0200
On Thu, Oct 26, 2017 at 9:17 AM, Mihai Moldovan <ionic@ionic.de> wrote:
> Control: retitle -1 Implement basic dialog handling in X2Go Server
>
> On 10/26/2017 08:32 AM, Alexey Nemov wrote:
>> As stated in the wiki https://wiki.x2go.org/doku.php/wiki:advanced:nx-keyboard-shortcuts
>> The action "close_session" should terminate the session.
>> But, pressing Ctrl-Alt-t in a "local desktop" session does not "terminate" the session.
>
> This is caused by the way we handle dialogs from nxagent. Currently, every
> dialog (wrongly) spawns x2gosuspend-session for every message the agent wants to
> show.
>
> nxagent sends a KILL SESSION dialog when close_session is executed for
> non-persistent sessions (like shadow sessions), but the default handler
> x2gosuspend-session that is set via NX_CLIENT is x2gosuspend-session, which is
> called and fails to suspend the session (since session suspension doesn't make
> sense or works with non-persistent sessions.)
>
> While the general goal should be to relay messages to the client side one day,
> currently I want a small wrapper script on the server side which handles
> server-side events in a better way.
>
> Thus retitling this bug report.

I have not tested the following, but could it work?

1. download opennx client. It brings a matching nxclient binary IIRC
2. edit /usr/bin/x2gostartagent: find the line defining NX_CLIENT and
let the varible point to opennx nxclient.

If the nxclient is not working you have two further options:
1. use nxcl from the google neatx project
2. find a copy of the original nxclient 3.x package and use the
nxclient contained within like described above.

Uli


Information forwarded to x2go-dev@lists.x2go.org, X2Go Developers <x2go-dev@lists.x2go.org>:
Bug#1228; Package x2goserver. (Thu, 26 Oct 2017 08:15:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Mihai Moldovan <ionic@ionic.de>:
Extra info received and forwarded to list. Copy sent to X2Go Developers <x2go-dev@lists.x2go.org>. (Thu, 26 Oct 2017 08:15:02 GMT) Full text and rfc822 format available.

Message #22 received at 1228@bugs.x2go.org (full text, mbox):

From: Mihai Moldovan <ionic@ionic.de>
To: Ulrich Sibiller <uli42@gmx.de>, 1228@bugs.x2go.org
Cc: Alexey Nemov <alexnemov@protonmail.com>
Subject: Re: [X2Go-Dev] Ctrl-Alt-T doesn't terminate connection in "local desktop" sessions
Date: Thu, 26 Oct 2017 10:13:31 +0200
[Message part 1 (text/plain, inline)]
On 10/26/2017 10:07 AM, Ulrich Sibiller wrote:
> 1. download opennx client. It brings a matching nxclient binary IIRC
> 2. edit /usr/bin/x2gostartagent: find the line defining NX_CLIENT and
> let the varible point to opennx nxclient.
>
> If the nxclient is not working you have two further options:
> 1. use nxcl from the google neatx project
> 2. find a copy of the original nxclient 3.x package and use the
> nxclient contained within like described above.
I don't think this will work.

The client must wrap around our X2Go scripts (which handle session management
via the database etc.), and we currently don't have something like this. I'll
have to implement it some day.


The workaround for the user currently is to use the buttons in X2Go Client,
which do what they are supposed to do.



Mihai

[signature.asc (application/pgp-signature, attachment)]

Send a report that this bug log contains spam.


X2Go Developers <owner@bugs.x2go.org>. Last modified: Wed Dec 12 16:37:36 2018; Machine Name: ymir.das-netzwerkteam.de

X2Go Bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.