X2Go Bug report logs - #888
x2gocleansessions suspends resuming sessions

version graph

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

Reported by: Florian Wicke - Hetzner Online AG <florian.wicke@hetzner.de>

Date: Thu, 18 Jun 2015 06:35:01 UTC

Severity: normal

Tags: pending

Found in version 4.1.0.0-0~1281~ubuntu14.04.1

Fixed in version 4.0.1.20

Done: X2Go Release Manager <git-admin@x2go.org>

Bug is archived. No further changes may be made.

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#888; Package x2goserver. (Thu, 18 Jun 2015 06:35:01 GMT) (full text, mbox, link).


Acknowledgement sent to Florian Wicke - Hetzner Online AG <florian.wicke@hetzner.de>:
New Bug report received and forwarded. Copy sent to X2Go Developers <x2go-dev@lists.x2go.org>. (Thu, 18 Jun 2015 06:35:02 GMT) (full text, mbox, link).


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

From: Florian Wicke - Hetzner Online AG <florian.wicke@hetzner.de>
To: submit@bugs.x2go.org
Subject: x2gocleansessions suspends resuming sessions
Date: Thu, 18 Jun 2015 08:33:46 +0200
[Message part 1 (text/plain, inline)]
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.




-- 
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

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

Information forwarded to x2go-dev@lists.x2go.org, X2Go Developers <x2go-dev@lists.x2go.org>:
Bug#888; Package x2goserver. (Sun, 21 Jun 2015 22:15:02 GMT) (full text, mbox, link).


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>. (Sun, 21 Jun 2015 22:15:02 GMT) (full text, mbox, link).


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

From: Mihai Moldovan <ionic@ionic.de>
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 pending for release
Date: Mon, 22 Jun 2015 00:13:17 +0200 (CEST)
tag #888 pending
fixed #888 4.0.1.20
thanks

Hello,

X2Go issue #888 (src:x2goserver) reported by you has been
fixed in X2Go Git. You can see the changelog below, and you can
check the diff of the fix at:

    http://code.x2go.org/gitweb?p=x2goserver.git;a=commitdiff;h=8592542

The issue will most likely be fixed in src:x2goserver (4.0.1.20).

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

---
commit 8592542c60e3499f2037656ba7ad033fe84cc49b
Author: Mihai Moldovan <ionic@ionic.de>
Date:   Sun Jun 21 23:28:04 2015 +0200

    x2goserver/sbin/x2gocleansessions: give suspended-but-running sessions a grace period of one iteration.
    
    Fixes: #888.

diff --git a/debian/changelog b/debian/changelog
index cb9c2cc..0458a3d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -34,6 +34,8 @@ x2goserver (4.0.1.20-0x2go1) UNRELEASED; urgency=low
       %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.spec:
     - Add sudo and logcheck as BuildRequires and Requires. Don't own
       directories that are owned by sudo and logcheck. Logcheck is not


Added tag(s) pending. Request was from Mihai Moldovan <ionic@ionic.de> to control@bugs.x2go.org. (Sun, 21 Jun 2015 22:15:02 GMT) (full text, mbox, link).


Marked as fixed in versions 4.0.1.20. Request was from Mihai Moldovan <ionic@ionic.de> to control@bugs.x2go.org. (Sun, 21 Jun 2015 22:15:02 GMT) (full text, mbox, link).


Message sent on to Florian Wicke - Hetzner Online AG <florian.wicke@hetzner.de>:
Bug#888. (Sun, 21 Jun 2015 22:15:03 GMT) (full text, mbox, link).


Information forwarded to x2go-dev@lists.x2go.org, X2Go Developers <x2go-dev@lists.x2go.org>:
Bug#888; Package x2goserver. (Mon, 22 Jun 2015 09:00:02 GMT) (full text, mbox, link).


Acknowledgement sent to Florian Wicke - Hetzner Online AG <florian.wicke@hetzner.de>:
Extra info received and forwarded to list. Copy sent to X2Go Developers <x2go-dev@lists.x2go.org>. (Mon, 22 Jun 2015 09:00:02 GMT) (full text, mbox, link).


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

From: Florian Wicke - Hetzner Online AG <florian.wicke@hetzner.de>
To: 888@bugs.x2go.org
Subject: Problems after bugfix
Date: Mon, 22 Jun 2015 10:57:53 +0200
[Message part 1 (text/plain, inline)]
Thanks for the fix - but now i get many new messages like:

::: debug ::: user-80-1434961136_stDXFCE_dp24, pid 27944 does not exist,
changing status from  to F


It seems that there is something broken for the @sinfo array in general
because he doesn't know about the current status? -> @sinfo[4] in line
256 in x2gocleansessions

The line is:
log_message('debug', "@sinfo[1], pid @sinfo[0] does not exist, changing
status from @sinfo[4] to F");




-- 

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

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

Information forwarded to x2go-dev@lists.x2go.org, X2Go Developers <x2go-dev@lists.x2go.org>:
Bug#888; Package x2goserver. (Sun, 20 Nov 2016 15:35:02 GMT) (full text, mbox, link).


Acknowledgement sent to X2Go Release Manager <git-admin@x2go.org>:
Extra info received and forwarded to list. Copy sent to X2Go Developers <x2go-dev@lists.x2go.org>. (Sun, 20 Nov 2016 15:35:02 GMT) (full text, mbox, link).


Message #27 received at 888@bugs.x2go.org (full text, mbox, reply):

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
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.


Marked Bug as done Request was from X2Go Release Manager <git-admin@x2go.org> to control@bugs.x2go.org. (Sun, 20 Nov 2016 15:35:03 GMT) (full text, mbox, link).


Notification sent to Florian Wicke - Hetzner Online AG <florian.wicke@hetzner.de>:
Bug acknowledged by developer. (Sun, 20 Nov 2016 15:35:03 GMT) (full text, mbox, link).


Message sent on to Florian Wicke - Hetzner Online AG <florian.wicke@hetzner.de>:
Bug#888. (Sun, 20 Nov 2016 15:35:04 GMT) (full text, mbox, link).


Bug archived. Request was from Debbugs Internal Request <owner@bugs.x2go.org> to internal_control@bugs.x2go.org. (Mon, 19 Dec 2016 06:24:02 GMT) (full text, mbox, link).


Send a report that this bug log contains spam.


X2Go Developers <owner@bugs.x2go.org>. Last modified: Sun Feb 16 18:44:26 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.