From unknown Sat Apr 04 13:20:12 2026
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#888 closed by X2Go Release Manager <git-admin@x2go.org> (X2Go
 issue (in src:x2goserver) has been marked as closed)
Message-ID: <handler.888.c.147965594819689.notifdone@bugs.x2go.org>
References: <20161120114259.3401C408B7@ymir.das-netzwerkteam.de>
X-X2go-PR-Keywords: pending
X-X2go-PR-Message: they-closed 888
X-X2go-PR-Package: x2goserver
X-X2go-PR-Source: x2goserver
Date: Sun, 20 Nov 2016 15:35:03 +0000
Content-Type: multipart/mixed; boundary="----------=_1479656103-20680-0"

This is a multi-part message in MIME format...

------------=_1479656103-20680-0
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain; charset=utf-8

This is an automatic notification regarding your Bug report
which was filed against the x2goserver package:

#888: x2gocleansessions suspends resuming sessions

It has been closed by X2Go Release Manager <git-admin@x2go.org>.

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 X2Go Release Manager <=
git-admin@x2go.org> by
replying to this email.


--=20
X2Go Bug Tracking System
Contact owner@bugs.x2go.org with problems

------------=_1479656103-20680-0
Content-Type: message/rfc822
Content-Disposition: inline
Content-Transfer-Encoding: 7bit

Received: (at control) by bugs.x2go.org; 20 Nov 2016 15:32:28 +0000
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on
	ymir.das-netzwerkteam.de
X-Spam-Level: 
X-Spam-Status: No, score=-1.3 required=3.0 tests=ALL_TRUSTED,BAYES_00,
	DATE_IN_PAST_03_06 autolearn=no version=3.3.2
Received: from localhost (localhost [127.0.0.1])
	by ymir.das-netzwerkteam.de (Postfix) with ESMTP id 5C4D15DC0F;
	Sun, 20 Nov 2016 16:32:27 +0100 (CET)
X-Virus-Scanned: Debian amavisd-new at ymir.das-netzwerkteam.de
Received: from ymir.das-netzwerkteam.de ([127.0.0.1])
	by localhost (ymir.das-netzwerkteam.de [127.0.0.1]) (amavisd-new, port 10024)
	with ESMTP id WVATWoyqqoay; Sun, 20 Nov 2016 16:32:20 +0100 (CET)
Received: by ymir.das-netzwerkteam.de (Postfix, from userid 1005)
	id 3401C408B7; Sun, 20 Nov 2016 12:42:59 +0100 (CET)
From: X2Go Release Manager <git-admin@x2go.org>
To: 888-submitter@bugs.x2go.org
Cc: control@bugs.x2go.org, 888@bugs.x2go.org
Subject: X2Go issue (in src:x2goserver) has been marked as closed
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: 8bit
Message-Id: <20161120114259.3401C408B7@ymir.das-netzwerkteam.de>
Date: Sun, 20 Nov 2016 12:42:59 +0100 (CET)

close #888
thanks

Hello,

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

You can view the complete changelog entry of src:x2goserver (4.0.1.20)
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=71e1e82d82acc718da71301d2fbd67eb0a71ad44;hp=8a494e794402c1b124d861893d649726a9016eb7

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.20-0x2go1
Status: RELEASE
Date: Sun, 20 Nov 2016 12:39:36 +0100
Fixes: 799 812 888 889 903 922 923 985 1065 1068 1073
Changes: 
 x2goserver (4.0.1.20-0x2go1) RELEASED; urgency=low
 .
   [ Mike DePaulo ]
   * New upstream version (4.0.1.20):
     - TERMINAL Session: Add support for qterminal
       (Lightweight terminal emulator written in Qt)
     - TRINITY: Add support for Q4OS
 .
   [ Mihai Moldovan ]
   * New upstream version (4.0.1.20):
     - x2goserver/bin/x2gogetapps: respect NoDisplay and Hidden values, don't
       parse the full desktop file if there are non-Desktop Entries groups.
       Based on a patch submitted by Jason Alavaliant. Fixes: #812.
     - x2goserver/bin/x2gogetapps: do not print spurious newlines.
     - Change string "X2go" to "X2Go" where appropriate.
     - Add runcommand.d hooks to x2goserver-extensions Makefile.
     - x2goserver/bin/x2gosessionlimit: don't iterate over the whole groups
       file. Only check the primary and secondary groups as returned by
       getgid()/getgroups(). Fixes long delays in session startup on machines
       with a gazillion of groups.
     - x2goserver/sbin/x2gocleansessions: re-fetch the current sessions' status
       before handling it. Using the "cached" value from the initial
       x2golistsessions run may be desynchronized with the actual current
       value. Avoids a race condition logging users out after they attached to a
       session.
     - x2goserver/sbin/x2gocleansessions: rename %remembered_sessions_since to
       %remembered_sessions_status_since. That's what it really is. Add
       comments to further clarify what it's actually doing. Change it to
       include a timestamp instead of the "iteration count multiplied by two"
       value. Compare timestamps to see if killing hanging nxagent processes is
       necessary.
     - x2goserver/sbin/x2gocleansessions: rename
       %remembered_sessions_status_since to
       %remembered_sessions_status_since_time. Add
       %remembered_sessions_status_since_iterations that will come in handy for
       the next change.
     - x2goserver/sbin/x2gocleansessions: give suspended-but-running sessions a
       grace period of one iteration. Fixes: #888.
     - x2goserver/sbin/x2gocleansessions: fix ugly missing whitespace.
     - x2goserver/sbin/x2gocleansessions: move up session status sync a bit,
       don't update session state when session has been removed from the
       database.
     - x2goserver/sbin/x2gocleansessions: unify log messages. Move dangling
       line around.
     - x2goserver/sbin/x2gocleansessions: whitespace only.
     - x2goserver/sbin/x2gocleansessions: also delete entries in the other,
       overlooked hashes.
     - x2goserver/sbin/x2gocleansessions: move socket and lock file cleanup
       into time-based block for finished/failed sessions.
     - x2goserver/sbin/x2gocleansessions: add @remembered_finished_sessions
       array. Merge with session list as queried from the database (won't
       include finished/failed sessions) and remember F-state sessions via this
       array. Only delete elements once work on these has been finished.
     - x2goserver/sbin/x2gocleansessions: don't add failed/finished sessions to
       remembered list if that list already includes them.
     - x2goserver/sbin/x2gocleansessions: don't use gmtime (time ()) but merely
       time (). The former one returns a formatted date-time string, which
       can't be checked by forming a difference. The latter one returns an UNIX
       timestamp, which is what we really want... minus leap seconds. Let's
       hope this doesn't bite back some time or later...
     - x2goserver/sbin/x2gocleansessions: add debugging output to show the
       state change when updating the cached state result.
     - x2goserver/sbin/x2gocleansessions: only output status refreshing debug
       message if the old and new states actually differ. Prevents log spam.
     - x2goserver/bin/x2gostartagent: changes to Robert Nowotny's SSH_PORT
       patch. Fixes: #922. Use default outgoing interface to determine IP
       address. Use the whole range of ${RANDOM}'s pool. Seed it for good
       measure. Change the default method to randomization instead of IP-based
       initialization. If IP-based initialization was requested but the default
       outgoing IP address unavailable, fall back to randomization.
     - x2goserver/bin/x2goruncommand: whitespace and comment changes only.
     - x2goserver/bin/x2gocleansessions: replace system_capture_stdout_output()
       with actual implementation. We don't have that function on the release
       branch.
     - x2goserver-xsession/etc/Xsession: use /bin/bash explicitly on RedHat-,
       Gentoo- and SuSE-based systems. Users might change /bin/sh to point to a
       shell like mksh or dash, which do not support the -l or -c flags to
       exec. C.f., BGO #575022 (Gentoo.)
     - x2goserver/bin/x2gomountdirs: remove blowfish Cipher spec hardcoded for
       sshfs mounts. The speed improvement is probably mostly an illusion
       (unless talking about high-bandwidth links) and more importantly recent
       OpenSSH server versions seem to disable the Blowfish cipher by default,
       leading to errors like "Connection reset by peer."
     - x2goserver/bin/x2goruncommand: whitespace only.
     - x2goserver/sbin/x2gocleansessions: add Perl documentation and --help,
       -h, -? and --man options. Fixes: #1065. Also print a usage message on
       unknown options.
     - x2goserver/man/man8/x2gocleansessions.8: drop obsolete man page.
     - x2goserver-xsession/etc/Xsession: fix uname calls when (potentially)
       creating session log/error file and add uname call where necessary.
     - x2goserver-xsession/etc/Xsession: include hostname in
       xsession-x2go-errors file name. Part of #923.
     - x2goserver-xsession/etc/Xsession: rotate old log/error file before
       appending new data. Fixes: #923.
     - x2goserver-xsession/etc/Xsession: fix wrong variable usage.
       Fixes: #1073.
     - x2goserver/sbin/x2gocleansessions: move in-file POD to end of file,
       rather than "commenting" out all the remaining code. Fixes: #1068.
     - x2goserver/sbin/x2godbadmin: exit earlier when not finding the required
       "x2gouser" user.
   * x2goserver.spec:
     - Add sudo and logcheck as BuildRequires and Requires. Don't own
       directories that are owned by sudo and logcheck. Logcheck is not
       available on *SUSE, FC < 20 and RHEL, so for those distros still own the
       directories.
     - Typo fix in comment: Recommands -> Recommends.
     - Fix installation on OpenSUSE 12.3 and higher: has replaced pwdutils with
       shadow. Also affects SLE{S,D} 12.
     - Add workaround documentation for sudoers on *SUSE 11.
     - Add shadow/shadow-utils/pwdutils Requires to x2goserver-printing
       sub package.
     - Add new dependency on bash.
     - Add new dependency on xkeyboard-config to x2goserver. Fixes: #903.
     - Add new dependency on perl and the Cwd module to x2goserver-xsession.
       Part of #923.
   * debian/control:
     - Add new dependency on bash.
     - Add new dependency on xkb-data to x2goserver.
     - Maintainer change in package: X2Go Developers <x2go-dev@lists.x2go.org>.
     - Uploaders: add myself. Also, force a rebuild due to the changed
       versioning.
     - Add new dependency on perl-modules for Cwd. Part of #923.
 .
   [ Henning Heinold ]
   * New upstream version (4.0.1.20):
     - x2goserver/sbin/x2godbadmin: remove trailing whitespace.
     - x2goserver/sbin/x2godbadmin: revoke all PRIVILEGES before trying to
       delete a user on postgres. Fixes: #889.
 .
   [ Mike Gabriel ]
   * debian/x2goserver.preinst:
     + Use proper comment header explaining about preinst script argument
       calls (not postinst).
 .
   [ Robert Nowotny ]
   * New upstream version (4.0.1.20):
     - x2goserver/bin/x2gostartagent: original patch for SSH_PORT
       randomization/IP-based initialization. Submitted as #922.
 .
   [ Stefan Baur ]
   * New upstream version (4.0.1.20):
     - x2goserver/bin/x2goruncommand: add the other trinity launcher scripts in
       order from newest to oldest. Fixes: #985.
 .
   [ Tor Perkins ]
   * New upstream version (4.0.1.20):
     - x2goserver/bin/x2goruncommand: capture x2goruncommand debug output for
       x2gofeature X2GO_XSESSION.
 .
   [ Orion Poplawski ]
   * New upstream version (4.0.1.20):
     - x2goserver/bin/x2golistdesktops: drop -u parameter to ss. Fixes: #799.
       We would filter out UDP sockets later anyway and the combination -lxu is
       known to be broken with some versions of iproute2.


------------=_1479656103-20680-0
Content-Type: message/rfc822
Content-Disposition: inline
Content-Transfer-Encoding: 7bit

Received: (at submit) by bugs.x2go.org; 18 Jun 2015 06:33:11 +0000
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on
	ymir.das-netzwerkteam.de
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=5.0 tests=BAYES_40,URIBL_BLOCKED
	autolearn=ham version=3.3.2
Received: from mail.hetzner.company (mail.hetzner.company [213.133.106.242])
	by ymir.das-netzwerkteam.de (Postfix) with ESMTPS id F377E5DA82
	for <submit@bugs.x2go.org>; Thu, 18 Jun 2015 08:33:08 +0200 (CEST)
Received: from [78.46.134.130] (helo=[10.200.1.57])
	by mail.hetzner.company with esmtpsa (TLSv1.2:DHE-RSA-AES256-SHA:256)
	(Exim 4.80)
	(envelope-from <florian.wicke@hetzner.de>)
	id 1Z5TPM-0001wz-EF
	for submit@bugs.x2go.org; Thu, 18 Jun 2015 08:34:40 +0200
Message-ID: <5582664A.90506@hetzner.de>
Date: Thu, 18 Jun 2015 08:33:46 +0200
From: Florian Wicke - Hetzner Online AG <florian.wicke@hetzner.de>
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0
MIME-Version: 1.0
To: submit@bugs.x2go.org
Subject: x2gocleansessions suspends resuming sessions
Content-Type: multipart/signed; micalg=pgp-sha512;
 protocol="application/pgp-signature";
 boundary="1pQI40pEDqomWNBbxDQiGF2JXbb57bF0u"
X-Authenticated-Sender: florian.wicke@hetzner.de

This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--1pQI40pEDqomWNBbxDQiGF2JXbb57bF0u
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Package: x2goserver
Version: 4.1.0.0-0~1281~ubuntu14.04.1

Current workflow of x2gocleansessions:

- read the sessions from database
- loop over this session list
-> check state of session (S,R,...)
-> if state S (suspended) check if session is running
-> if the session that should be suspended in the datase is running then
suspend the session


Unfortunately this leads to the following problem:
If you have many sessions the time between generating the session list
from the database and the "is_running"-checks of sessions at the end of
the list is enough as time window that a user can log in via x2goclient
and getting logged out because x2gocleansessions suspends the now
running/resumed session.

Suggestions to fix:
Reread the state of the session from the database on each iteration of
the session-list-loop to minimize the timeframe between database read
and check execution and use counters like "the check has to be the same
result for the last three "sleep 2"-big-loop-runs of x2gocleansessions"
because the extra seconds don't matter in a valid case of unsuspended
sessions but matter a lot to fix this bug.




--=20
Kind regards

 Florian Wicke

Hetzner Online AG
Industriestr. 25
91710 Gunzenhausen / Germany
Tel: +49 9831 505-187
Fax: +49 9831 505-387
florian.wicke@hetzner.de
www.hetzner.com

Register Court: Registergericht Ansbach, HRB 3204
Management Board: Dipl. Ing. (FH) Martin Hetzner
Chairwoman of the Supervisory Board: Diana Rothhan


--1pQI40pEDqomWNBbxDQiGF2JXbb57bF0u
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQEcBAEBCgAGBQJVgmZKAAoJEAn0falXoNhD5Y8IAKSH7AlhQIKLBuSVHYCT4eF4
QTwaEPikwBfC7JJ4ptiPSizDRTUWHjQ8OKAxsGDTQefuz1Stf8/pveOJ0Xgy7ZVq
3vGJS8EEOaouf+RWBnzh+mN9bPPJEyIvEHEjAJ8Y75ni1c0SQiJ9Be/8DFXpENv6
dWRHZEg1b16rVCHGxUKZYRPPyvicOz5LAP62kt1zA+oqME1XW6/4wQntF1w6biNn
dGGTQTWNaRPtU9UO4Hw3Sb96A1HjqWlRFi5ZPG1fUCTAGCF7thv0js9INukO7Ikn
FhRmXjxvUQr4/6oYLrH0RXCpqyK6bH7KjS/dqhaa/4K3DDeapuuqZy6vOFhWpQk=
=TM4b
-----END PGP SIGNATURE-----

--1pQI40pEDqomWNBbxDQiGF2JXbb57bF0u--

------------=_1479656103-20680-0--
