X2Go Bug report logs - #495
failure to reconnect after abrupt (CTRL-C / SIGINT) termination of x2goclient, corrupt x2go_sessions file?

version graph

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

Reported by: Robert Izzard <izzard@astro.uni-bonn.de>

Date: Fri, 9 May 2014 14:25:01 UTC

Severity: normal

Tags: pending

Found in version 4.0.15-0~847

Fixed in version 4.0.1.16

Done: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>

Bug is archived. No further changes may be made.

Full log


đź”— View this message in rfc822 format

MIME-Version: 1.0
X-Mailer: MIME-tools 5.502 (Entity 5.502)
X-Loop: owner@bugs.x2go.org
From: owner@bugs.x2go.org (X2Go Bug Tracking System)
Subject: Bug#495 closed by Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
 (X2Go issue (in src:x2goserver) has been marked as closed)
Message-ID: <handler.495.c.141168504320542.notifdone@bugs.x2go.org>
References: <20140925224212.E936E5E0AB@ymir.das-netzwerkteam.de>
X-X2go-PR-Keywords: pending
X-X2go-PR-Message: they-closed 495
X-X2go-PR-Package: x2goserver
X-X2go-PR-Source: x2goserver
Date: Thu, 25 Sep 2014 22:45:45 +0000
Content-Type: multipart/mixed; boundary="----------=_1411685145-21737-0"
[Message part 1 (text/plain, inline)]
This is an automatic notification regarding your Bug report
which was filed against the x2goserver package:

#495: failure to reconnect after abrupt (CTRL-C / SIGINT) termination of x2goclient, corrupt x2go_sessions file?

It has been closed by Mike Gabriel <mike.gabriel@das-netzwerkteam.de>.

Their explanation is attached below along with your original report.
If this explanation is unsatisfactory and you have not received a
better one in a separate message then please contact Mike Gabriel <mike.gabriel@das-netzwerkteam.de> by
replying to this email.


-- 
X2Go Bug Tracking System
Contact owner@bugs.x2go.org with problems
[Message part 2 (message/rfc822, inline)]
From: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
To: 495-submitter@bugs.x2go.org
Cc: control@bugs.x2go.org, 495@bugs.x2go.org
Subject: X2Go issue (in src:x2goserver) has been marked as closed
Date: Fri, 26 Sep 2014 00:42:12 +0200 (CEST)
close #495
thanks

Hello,

we are very hopeful that X2Go issue #495 reported by you
has been resolved in the new release (4.0.1.16) of the
X2Go source project »src:x2goserver«.

You can view the complete changelog entry of src:x2goserver (4.0.1.16)
below, and you can use the following link to view all the code changes
between this and the last release of src:x2goserver.

    http://code.x2go.org/gitweb?p=x2goserver.git;a=commitdiff;h=c43b862f2ae0e8980fb7ab5e519d692b07da5a45;hp=98c4f84d83d701823b7887f79d0d9f5ce8233bd4

If you feel that the issue has not been resolved satisfyingly, feel
free to reopen this bug report or submit a follow-up report with
further observations described based on the new released version
of src:x2goserver.

Thanks a lot for contributing to X2Go!!!

light+love
X2Go Git Admin (on behalf of the sender of this mail)

---
X2Go Component: src:x2goserver
Version: 4.0.1.16-0x2go1
Status: RELEASE
Date: Fri, 26 Sep 2014 00:36:32 +0200
Fixes: 122 302 397 406 407 458 468 495 506 511 520 523 524 543 547 558 569 572 573 574 599 605 606 617 619
Changes: 
 x2goserver (4.0.1.16-0x2go1) RELEASED; urgency=low
 .
   [ Mike DePaulo ]
   * New upstream release (4.0.1.16):
     - Make X2Go Server aware of the Openbox desktop environment
       (Command: OPENBOX) (Fixes: #605)
     - Make X2Go Server aware of the IceWM desktop environment
       (Command: ICEWM) (Fixes: #606)
     - Support GNOME Flashback session (GNOME 3.8+) on distro releases such as
       Ubuntu 13.10+ and debian Jessie
       (NOTE: For most users, GNOME Flashback currently will not work.
        This requires that gnome-flashback.session actually be installed. Not
        every Linux distro has it available.
        It also requires that the gnome-session binary not require
        hardware 3D acceleration for said session. Currently, upstream GNOME
        and GNOME 3.8+ in all Linux distros do require this, only 3rd party
        builds do not. See X2Go bug #599 for example.)
       (Thanks Eugene San (eugenesan@gmail.com))
     - Fix launching GNOME 3 Fallback session (GNOME 3.4 & 3.6) on distros other
       than Ubuntu and Debian (Fixes: #599)
     - Fix support for Cinnamon 1.4 (Linux Mint 13) (Fixes: #569)
     - Fix the logic for launching Cinnamon 2.0 and 2.2 (Linux Mint 17).
       (Fixes: #572)
       NOTE: Fixing this bug in x2goserver is not sufficient to make Cinnamon 2.0
       & 2.2 to work properly with X2Go. Bug #150 in nx-libs is still a problem.
       Fixing this bug enables Cinnamon 2.0 and 2.2 to launch to their
       "fallback mode", which has many bugs and missing features when compared to
       "software rendering" mode (cinnamon2d), but is still better than nothing.
   * debian/rules:
     + Improve dh_auto_clean override.
 .
   [ Mike Gabriel ]
   * New upstream version (4.0.1.16):
     - Let x2goversion exit with an error if the X2Go component cannot be
       found.
     - Detect terminated sessions from NX log file. Also interpret a session as
       terminated if terminating just has started.
     - Detect started/starting/resumed/resuming sessions by explicitly scanning
       the NX session log file for those keywords.
     - Interpret NX sessions marked as "aborting session" as (not yet) terminated
       sessions.
     - Provide config option for server-side/global clipboard behaviour in
       x2goagent.options. (Fixes: #506).
     - Be aware of poly-instantiated /tmp directories bind-mounted under
       /tmp-inst. (Fixes: #406).
     - On suspend: Call x2goumount-session before sending SIGHUP to x2goagent.
     - Refuse client communcation if server-side hostname is not set up
       correctly (Fixes: #468).
     - Fix string comparison in x2goumount-session.
     - Fix problems with unmounting shared folders on session suspension/
       termination. Remove extra parentheses from the fusermount execution
       call. (Fixes: #407).
     - Use type -p instead of which in x2goumount-session. Suppress output
       to stdout properly.
     - Use if--then--else--fi during x2goagent resuming in x2goresume-session
       script.
     - More reliably sync the NX session state with the status information in
       the X2Go session DB.
     - x2golistdesktops: Also detect sharable desktop sessions behind abstract
       kernel namespace sockets.
     - Add logcheck rules for X2Go Server. Thanks to Frank Werner for sending
       them in.
     - Correctly use diversions from stderr to stdout in shell commands.
       (Fixes: #520).
     - Don't die if no session state file is found, as it will break X2Go
       completely after upgrading from versions << 4.0.1.16 if sessions
       are still running/suspended during package upgrade.
     - Provide support for client-side choice of clipboard security. (Fixes:
       #524).
     - Use more quotes in x2goruncommand.
     - Detect the exit of rootless applications that forked to background on
       application execution. (Fixes: #122).
     - Make x2goruncommand more robust.
     - Don't fail Xsession startup if any of the profile scripts returns
       with an error.
     - Silently timeout in x2golistdesktops if calls to x2golistsessions and/or
       xwininfo don't produce output within one second. (Fixes: #543).
     - Allow email addresses as login usernames. (Fixes: #573).
     - Abort session startup if env var $USER or $SSH_CLIENT are not set.
       (Fixes: #558).
     - Allow length of username up to 48 characters (was: 32 characters). (Fixes:
       #574).
     - Abort session if env var $HOME is not set or if $HOME contains non-ASCII
       characters. (Fixes: #397).
     - Export XAUTHORITY env var in x2goruncommand to enable privilege upgrade
       for applications started via pkexec. (Fixes: #458).
     - x2gocleansessions: Don't print to stderr if the session state file cannot
       be found. This can happen during session startups. Report to system log
       instead.
     - Don't use Perl package File::ReadBackwards anymore.
     - Fix x2gormforward for 4.0.1.x release series (the X2Go::Log Perl module
       only exists in X2Go Server >= 4.1.0.0, the 4.0.1.x release series has to
       use x2gologlevel.pm in `x2gopath lib`. (Fixes: #617).
     - Pick x2gogetagentstate from 4.1.0.0 release series and adapt to usage
       with X2Go Server 4.0.1.x. (Fixes: #619).
   * debian/control, x2goserver.spec:
     + Update versioned D: x2goagent (>= 3.5.0.25). This assures that X2Go
       works with poly-instantiated /tmp directories.
     + Make sure x2gogetagentstate gets packaged in bin:package x2goserver.
     + Bump Standards: to 3.9.5. No changes needed.
     + Mark x2goserver-pyhoca bin:package as deprecated.
     + Drop D (x2goserver): libfile-readbackwards-perl.
   * x2goserver.spec:
     + Install {libdir}/x2go/x2gormforward into bin:package x2goserver.
     + Drop R (x2goserver): perl(File::ReadBackwards).
 .
   [ Oleksandr Shneyder ]
   * New upstream version (4.0.1.16):
     - x2gostartagent, x2golistsession, x2gosuspend-session and
       x2goresume-session getting agent state from ~/.x2go/C-$SID/state. This
       should help to avoid session damage. Remove nxcleanup. (Fixes: #302,
       #511).
     - Move session file to /tmp/.x2go-$USER. (Fixes: #523).
     - Fix x2gostartagent failures if kbd is not "auto". Remove comma at end of
       options file.
     - Set default value for clipboard to "both" in x2gostartagent and
       x2goresume-session.
     - Clean user SSHD process if connection between server and client lost.
       This should fix error "Global request tcpip-forward failed". (Fixes:
       #495, #547).
 .
   [ Orion Paplowski ]
   * x2goserver.spec:
     + Sync Fedora .spec file with our upstream-provided x2goserver.spec.

[Message part 3 (message/rfc822, inline)]
From: Robert Izzard <izzard@astro.uni-bonn.de>
To: submit@bugs.x2go.org
Subject: failure to reconnect after abrupt (CTRL-C / SIGINT) termination of x2goclient, corrupt x2go_sessions file?
Date: Fri, 9 May 2014 15:24:10 +0200
Package: x2goserver
Version: 4.0.15-0~847 

(x2goserver: 4.0.15-0~847~~ubuntu12.04.1 on Ubuntu Linux 12.04.4 LTS kernel 3.8.0-39-generic,
 x2goclient: 4.0.15-0~847~ubuntu14.04.1 on Ubuntu Linux 14.04 LTS kernel 3.14.3-031403-generic)
 
Please note: I have labelled package x2goserver, but the bug is displayed on x2goclient even though I *think* the bug is in the server somewhere (see below).

Sometimes after an abrupt (e.g. CTRL-C, probably also network 
failure or laptop sleep/wake cycle) termination of x2goclient, I 
cannot reconnect to the server. I get errors such as the dreaded 
"Failure negotiating the session in stage '7'." and "Error: Wrong 
version or invalid session authentication cookie." instead. 

I am connecting through a proxy using ssh key-based 
authentication (using "Try auto-login" with "ssh-agent or default 
ssh key" on the proxy, although switching to password made no 
difference). I can connect with ssh through the proxy with no 
problem. I can *start* an x2go session with no problem. I can 
restart a session with no problem *provided I cleanly exit 
x2goclient* (e.g. by clicking on the close button on the window). 
If I exit x2goclient with a CTRL-C in the terminal, I cannot 
connect again. Note that I can connect to an NX session through 
the proxy without any problem and this does not have the same 
problem when CTRL-C.

Steps to repeat:
1) On the client, open a new desktop on the server using 
x2goclient. (I am running KDE but I doubt it matters).
2) On the client, press CTRL-C to stop x2goclient.
3) On the client, try to reconnect -- it fails with errors (which 
are very hard to copy-paste as they go so fast, this is a bug in 
the GUI):

------------------------
NXPROXY - Version 3.5.0

Copyright (C) 2001, 2010 NoMachine.

See http://www.nomachine.com/ for more information.
Info: Proxy running in client mode with pid '7219'.
Session: Starting session at 'Thu May 8 17:33:51 2014'.
Info: Connecting to remote host 'localhost:31007'.
Info: Connection to remote proxy 'localhost:31007' established.
Error: The remote NX proxy closed the connection.
Error: Failure negotiating the session in stage '7'.
Error: Wrong version or invalid session authentication cookie.
Session: Terminating session at 'Thu May 8 17:33:51 2014'.
Session: Session terminated at 'Thu May 8 17:33:51 2014'.
------------------------

At this point the CPU usage of x2goclient jumps to 100% and I 
have to kill it (although the GUI continues to respond). This is 
just a minor annoyance at the moment.

And in .x2go/SESSION_ID/sessions on the client, similar warnings:

------------------------

Loop: PANIC! No shutdown of proxy link performed by remote proxy.
Loop: PANIC! The remote NX proxy closed the connection.
Loop: PANIC! Failure negotiating the session in stage '7'.
Loop: PANIC! Wrong version or invalid session authentication cookie.
------------------------

The server clearly detects the disconnect in its session.log, 
followed by “Display failure detected” errors on attempted 
reconnect:

-----------------------
running as X2Go Agent

NXAGENT - Version 3.5.0

Copyright (C) 2001, 2011 NoMachine.

See http://www.nomachine.com/ for more information.

Info: Agent running with pid '17414'.
Session: Starting session at 'Fri May 9 14:44:26 2014'.
Info: Proxy running in server mode with pid '17414'.
Info: Waiting for connection from 'localhost' on port '30004'.
Info: Accepted connection from '127.0.0.1'.
Info: Connection with remote proxy completed.
Info: Using ADSL link parameters 512/24/1/0.
Info: Using agent parameters 5000/10/50/0/0.
Info: Using cache parameters 4/4096KB/8192KB/8192KB.
Info: Using pack method '16m-png-9' with session 
'unix-kde-depth_24'.
Info: Using ZLIB data compression 1/1/32.
Info: Using ZLIB stream compression 4/4.
Info: No suitable cache file found.
Info: Listening to X11 connections on display ':51'.
Info: Established X client connection.
Info: Using shared memory parameters 1/1/1/2048K.
Info: Using alpha channel in render extension.
Info: Not using local device configuration changes.
keyboard file created
SessionPath not defined
Session: Session started at 'Fri May 9 14:44:27 2014'.
Error: Failure reading from the peer proxy.
Error: Connection with remote peer broken.
Error: Please check the state of your network and retry.
Session: Display failure detected at 'Fri May 9 14:44:44 2014'.
Session: Suspending session at 'Fri May 9 14:44:44 2014'.
Session: Session suspended at 'Fri May 9 14:44:44 2014'.
Session: Resuming session at 'Fri May 9 14:45:11 2014'.
Info: Proxy running in server mode with pid '17414'.
Info: Waiting for connection from 'localhost' on port '30004'.
Info: Aborting the procedure due to signal '1'.
Session: Display failure detected at 'Fri May 9 14:45:27 2014'.
Session: Suspending session at 'Fri May 9 14:45:27 2014'.
Session: Session suspended at 'Fri May 9 14:45:27 2014'.
--------------

In .x2go/C-SESSION_ID/session.log on the server, I now have the 
following text repeated over and over:

Session: Suspending session at 'Fri May 9 15:08:49 2014'.
[then hundreds or thousands of times, with later timestamps]



The problem appears to be with the file 
/var/lib/x2go/x2go_sessions on the server. If I back this up 
*before* hitting CTRL-C on the client, then do the CTRL-C, then 
reinstate the backup, I can restart the session with no problems. 
Clearly this is beyond the ability of a normal user (without root 
on the server) and is not really a fix, even if it does work.



It seems that there is a problem with the x2go_sessions file on 
the server being corrupted in some way when the remote session is 
abruptly disconnected. This is a failure bad enough for me to 
stop using x2go and go back to NX.

* Backing up this file all the time is not an option.

* Deleting this file and continuing, as suggested at 
http://bugs.x2go.org/cgi-bin/bugreport.cgi?bug=323, is not an 
option.

* Note that unlink suggested in 
http://bugs.x2go.org/cgi-bin/bugreport.cgi?bug=323, there is no 
*server* crash. 

* I have tried the other options at 
http://bugs.x2go.org/cgi-bin/bugreport.cgi?bug=323, none apply 
here (e.g. permissions are fine).

* The action that precipitates the problem is on the *client* 
side.

* Note also that the network itself is not at fault: I can 
connect from a laptop in the same office (but on a different 
subnet) as the server, or from home to the proxy server direct. 
Same problem.

* This seems similar to 
http://bugs.x2go.org/cgi-bin/bugreport.cgi?bug=101 but the fixes 
are more than a year ago and presumably (?) are in the latest 
x2goclient already.

* No amount of calls to x2gosuspend-session or x2goresume-session 
on the appropriate session makes any difference.

* If I suspend the session with x2gosuspend-session, attempting 
to connect *does* set the session into the “Running” state (just 
as x2goresume-session). The error seems to occur after this.

Thanks for all your help x2go team, I hope we can fix this 
because I'd like to recommend x2go for my colleagues. 

Rob

Send a report that this bug log contains spam.


X2Go Developers <owner@bugs.x2go.org>. Last modified: Wed Aug 5 17:35:02 2020; Machine Name: ymir.das-netzwerkteam.de

X2Go Bug tracking system

Debbugs is free software and licensed under the terms of the GNU Public License version 2. The current version can be obtained from https://bugs.debian.org/debbugs-source/.

Copyright © 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson, 2005-2017 Don Armstrong, and many other contributors.