X2Go Bug report logs - #638
broker agent in LOCAL mode cannot find state file

version graph

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

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

Date: Sat, 11 Oct 2014 09:05:01 UTC

Severity: important

Tags: pending

Found in version 4.0.1.18

Fixed in version 4.0.1.19

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#638; Package x2gobroker. (Sat, 11 Oct 2014 09:05:01 GMT) (full text, mbox, link).


Acknowledgement sent to Mike Gabriel <mike.gabriel@das-netzwerkteam.de>:
New Bug report received and forwarded. Copy sent to X2Go Developers <x2go-dev@lists.x2go.org>. (Sat, 11 Oct 2014 09:05:01 GMT) (full text, mbox, link).


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

From: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
To: submit@bugs.x2go.org
Subject: broker agent in LOCAL mode cannot find state file
Date: Sat, 11 Oct 2014 09:03:48 +0000
[Message part 1 (text/plain, inline)]
Package: x2gobroker
Severity: important
Version: 0.3.0.0

Since X2Go Server 4.0.1.16, all session relevant files moved to  
/tmp/.x2go-<user>. In $HOME/.x2go there only is a symlink to the  
session dir on /tmp.

This change breaks x2gobroker-agent in LOCAL mode (evoked on the  
broker host itself, assuming all session files are available).

In LOCAL mode, x2gobroker-agent is evoked on the X2Go Broker host  
itself and assumes that it can access all session files in  
$HOME/.x2go/C-<session>.

But what it finds is a dangling symlink to a non-existent C-<session>  
dir in /tmp/.x2go-<user>.

The wanted session dir, of course, can only be found on

  X2Go-Server-node-N:/tmp/.x2go-<user>/C-<session>

:-(

Mike

-- 

DAS-NETZWERKTEAM
mike gabriel, herweg 7, 24357 fleckeby
fon: +49 (1520) 1976 148

GnuPG Key ID 0x25771B31
mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de

freeBusy:
https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.xfb
[Message part 2 (application/pgp-signature, inline)]

Information forwarded to x2go-dev@lists.x2go.org, X2Go Developers <x2go-dev@lists.x2go.org>:
Bug#638; Package x2gobroker. (Fri, 17 Oct 2014 08:50:03 GMT) (full text, mbox, link).


Acknowledgement sent to Mike Gabriel <mike.gabriel@das-netzwerkteam.de>:
Extra info received and forwarded to list. Copy sent to X2Go Developers <x2go-dev@lists.x2go.org>. (Fri, 17 Oct 2014 08:50:03 GMT) (full text, mbox, link).


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

From: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
To: 638@bugs.x2go.org
Cc: Stephan Diehl <stephan.diehl@opensolutions.net>
Subject: Re: [X2Go-Dev] Bug#638: broker agent in LOCAL mode cannot find state file
Date: Fri, 17 Oct 2014 08:46:50 +0000
[Message part 1 (text/plain, inline)]
Control: reassign -1 x2goserver
Control: found -1 4.0.1.18

Hi Stefan,

On  Sa 11 Okt 2014 11:03:48 CEST, Mike Gabriel wrote:

> Package: x2gobroker
> Severity: important
> Version: 0.3.0.0
>
> Since X2Go Server 4.0.1.16, all session relevant files moved to  
> /tmp/.x2go-<user>. In $HOME/.x2go there only is a symlink to the  
> session dir on /tmp.
>
> This change breaks x2gobroker-agent in LOCAL mode (evoked on the  
> broker host itself, assuming all session files are available).
>
> In LOCAL mode, x2gobroker-agent is evoked on the X2Go Broker host  
> itself and assumes that it can access all session files in  
> $HOME/.x2go/C-<session>.
>
> But what it finds is a dangling symlink to a non-existent  
> C-<session> dir in /tmp/.x2go-<user>.
>
> The wanted session dir, of course, can only be found on
>
>   X2Go-Server-node-N:/tmp/.x2go-<user>/C-<session>

This issue should actually be silenced (not really fixed, as it is not  
fixable) in X2Go Server.

Most of the session manipulation happens via the X2Go Server node's  
x2gocleansessions daemon script.

The x2golistsessions command (evoked by x2gobroker-agent), which  
triggers the observed bug, does not necessarily need access to the  
session state file. If it can gain access, it will check the session  
state, and update the session DB, if the DB value differs from the  
actual state in the session state file (the session state file should  
be more up-to-date).

If we omit this DB update in x2golistsessions, we need to rely on a  
working x2gocleansessions daemon, which should still be enough.

Thus, I will test for the existence of the state file in  
x2golistsessions first and then execute the DB update code. If there  
is no session state file, we should be clear, as well (and need to  
rely on x2gocleansessions on the X2Go Server nodes).

Mike


-- 

DAS-NETZWERKTEAM
mike gabriel, herweg 7, 24357 fleckeby
fon: +49 (1520) 1976 148

GnuPG Key ID 0x25771B31
mail: mike.gabriel@das-netzwerkteam.de, http://das-netzwerkteam.de

freeBusy:
https://mail.das-netzwerkteam.de/freebusy/m.gabriel%40das-netzwerkteam.de.xfb
[Message part 2 (application/pgp-signature, inline)]

Bug reassigned from package 'x2gobroker' to 'x2goserver'. Request was from Mike Gabriel <mike.gabriel@das-netzwerkteam.de> to 638-submit@bugs.x2go.org. (Fri, 17 Oct 2014 08:50:03 GMT) (full text, mbox, link).


No longer marked as found in versions 0.3.0.0. Request was from Mike Gabriel <mike.gabriel@das-netzwerkteam.de> to 638-submit@bugs.x2go.org. (Fri, 17 Oct 2014 08:50:03 GMT) (full text, mbox, link).


Marked as found in versions 4.0.1.18. Request was from Mike Gabriel <mike.gabriel@das-netzwerkteam.de> to 638-submit@bugs.x2go.org. (Fri, 17 Oct 2014 08:50:03 GMT) (full text, mbox, link).


Information forwarded to x2go-dev@lists.x2go.org, X2Go Developers <x2go-dev@lists.x2go.org>:
Bug#638; Package x2goserver. (Fri, 17 Oct 2014 09:35:01 GMT) (full text, mbox, link).


Acknowledgement sent to Mike Gabriel <mike.gabriel@das-netzwerkteam.de>:
Extra info received and forwarded to list. Copy sent to X2Go Developers <x2go-dev@lists.x2go.org>. (Fri, 17 Oct 2014 09:35:01 GMT) (full text, mbox, link).


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

From: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
To: 638-submitter@bugs.x2go.org
Cc: control@bugs.x2go.org, 638@bugs.x2go.org
Subject: X2Go issue (in src:x2goserver) has been marked as pending for release
Date: Fri, 17 Oct 2014 11:33:44 +0200 (CEST)
tag #638 pending
fixed #638 4.0.1.19
thanks

Hello,

X2Go issue #638 (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=fcbd37b

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

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

---
commit fcbd37ba54b1f3bc983f90c1e974e1c9fc5d8bbf
Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
Date:   Fri Oct 17 11:17:42 2014 +0200

    x2golistsessions(_root): Only update session state in session DB if x2goagent's state file really exists. This addresses a problem that occurs when x2golistsessions gets called via an x2gobroker-agent. The x2golistsessions script may show session states (--all-servers) of sessions on other servers that have session states files on their remote /tmp dirs. These files are not accessible for that x2golistsessions script and should simply be ignored.

diff --git a/debian/changelog b/debian/changelog
index 9632df3..90e409f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -26,6 +26,13 @@ x2goserver (4.0.1.19-0x2go1) UNRELEASED; urgency=medium
     - x2gocleansessions: Call x2gormforward also on terminated sessions. This
       will make sure that re-assigned ports are really available on new session
       startup.
+    - x2golistsessions(_root): Only update session state in session DB if
+      x2goagent's state file really exists. This addresses a problem that occurs
+      when x2golistsessions gets called via an x2gobroker-agent. The
+      x2golistsessions script may show session states (--all-servers) of
+      sessions on other servers that have session states files on their remote
+      /tmp dirs. These files are not accessible for that x2golistsessions script
+      and should simply be ignored. (Fixes: #638).
   * debian/control:
     + Add D (x2goserver): libfile-which-perl.
   * x2goserver.spec:


Added tag(s) pending. Request was from Mike Gabriel <mike.gabriel@das-netzwerkteam.de> to control@bugs.x2go.org. (Fri, 17 Oct 2014 09:35:02 GMT) (full text, mbox, link).


Marked as fixed in versions 4.0.1.19. Request was from Mike Gabriel <mike.gabriel@das-netzwerkteam.de> to control@bugs.x2go.org. (Fri, 17 Oct 2014 09:35:02 GMT) (full text, mbox, link).


Message sent on to Mike Gabriel <mike.gabriel@das-netzwerkteam.de>:
Bug#638. (Fri, 17 Oct 2014 09:35:02 GMT) (full text, mbox, link).


Information forwarded to x2go-dev@lists.x2go.org, X2Go Developers <x2go-dev@lists.x2go.org>:
Bug#638; Package x2goserver. (Tue, 24 Feb 2015 20:55:04 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>. (Tue, 24 Feb 2015 20:55:06 GMT) (full text, mbox, link).


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

From: X2Go Release Manager <git-admin@x2go.org>
To: 638-submitter@bugs.x2go.org
Cc: control@bugs.x2go.org, 638@bugs.x2go.org
Subject: X2Go issue (in src:x2goserver) has been marked as closed
Date: Tue, 24 Feb 2015 21:54:05 +0100 (CET)
close #638
thanks

Hello,

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

You can view the complete changelog entry of src:x2goserver (4.0.1.19)
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=49c91751e560ad09ab4490cc3bd6687509c05755;hp=724d2eefe399485a71e79c705a0aad125e853230

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.19-0x2go1
Status: RELEASE
Date: Tue, 24 Feb 2015 21:49:22 +0100
Fixes: 405 632 633 638 644 664 668 671 672 675 676 678 697 698 700 712 715 727 728 770
Changes: 
 x2goserver (4.0.1.19-0x2go1) RELEASED; urgency=medium
 .
   [ Mike Gabriel ]
   * New upstream version (4.0.1.19):
     - Use File::Which to detect if sshfs command is available
       before trying to mount a client-side folder.
     - Be a bit more tolerant when trying to detect if a
       desktop icon is to be removed (using regexp, not
       eq).
     - Xsession script: Prevent bash failures when sourcing external bash
       scripts beyond our scope. (Fixes: #632, #675).
     - x2gogetapps: Support scanning of sub-directories when searching for
       .desktop files. We allow to dive down one level into subdirs, we on
       purpose do not recursively dive into the complete subtree. (Fixes: #633).
     - Make man2html an optional tool. Don't fail if it is missing on the
       build system (required for openSUSE/SLES builds).
     - Fix x2goserver-xsession/Makefile on SUSE. Detect SUSE distro and create
       Xsession related directory symlinks (xinitrc.d and Xclients.d).
     - Hack for x2goserver-xsession/Makefile during SUSE builds. If
       directoy /usr/share/doc/packages/brp-check-suse is present, the build env
       is also considered to be a SUSE system.
     - Trigger Xsession code for SUSE systems (look for /etc/SUSE-brand or
       /etc/SuSE-release for SUSE system recognition). (Fixes: #671).
     - x2gosqlitewrapper.c: Fix rpmlint error: no-return-in-nonvoid-function.
       Return the exitcode of execve().
     - Fix gramma in error message (in x2goresume-session).
     - x2gocleansessions: Call x2gormforward also on terminated sessions. This
       will make sure that re-assigned ports are really available on new session
       startup.
     - x2golistsessions(_root): Only update session state in session DB if
       x2goagent's state file really exists. This addresses a problem that occurs
       when x2golistsessions gets called via an x2gobroker-agent. The
       x2golistsessions script may show session states (--all-servers) of
       sessions on other servers that have session states files on their remote
       /tmp dirs. These files are not accessible for that x2golistsessions script
       and should simply be ignored. (Fixes: #638).
     - Provide pam_namespace support for has_agent_state_file() function.
     - Fix missing session list output if state file does not exist on the
       machine that runs x2golistsessions(_root).
     - Accept more verbose "DENY" output from x2godesktopsharing.
     - Make sure that all "su"-to-user-contexts use /bin/sh for wrapping around
       the executed command (in x2gocleansessions and x2golistsessions_root).
     - Also enforce /bin/sh as shell in su command in x2goprint.
     - README.i18n: Add file that explains the translation workflow for
       this package. Thanks to Mark Pedersen-Cook for drafting this file.
     - Make SSH agent forwarding work after having reconnected via SSH and
       having resumed a session. (Fixes: #672). Thanks to Robert Siemer for
       coming up with that idea.
     - Fix cross-user X2Go Desktop Sharing after being broken by implementing
       clipboard mode feature (and probably other code changes).
     - Document session startup / resumption failures (and their reasons) in
       server-side log output.
     - Handle AD domain users gracefully when X2Go is used with SQLite DB
       backend. (Fixes: #664).
     - Improve sanitizer, use 'x2gosid' sanitizer for session IDs everywhere.
       Drop unused 'pnixusername' sanitizer in 4.0.1.x release of X2Go Server.
     - Allow usernames in session IDs of length 48 chars.
     - Start sshfs with a timeout of 30 seconds (because it never finishes if
       something is wrong with the client-side TCP socket). Also remove/unmount
       mountpoints erroneously registered sshfs mountpoints if sshfs command
       times out. Furthermore, print errors to STDERR (not STDOUT). (Fixes:
       #405).
     - Handle execution of ss command from Perl script x2golistdesktops in a way
       that not only works on Debian, but also on Fedora et al. (Fixes: #727).
     - Provide legacy support for old File::Path packages in x2godbadmin.
       (Fixes: #715).
     - Fix wrong evocation of x2gosyslog ("error" -> "err").
     - Use "undef $dbh" instead of "$dbh->disconnect()". Fixes SQLite3 issues on
       SLE 11.x.
     - Only call $dbh->sqlite_busy_timeout() if the $dbh object is capable of
       that. Works around a too-old DBD::SQLite package on SLE 11.x.
     - Legacy for applications (and X2Go scripts) that expect $SSH_CLIENT to be
       set in the X2Go session's environment. (Fixes: #644).
     - Add man page for x2gogetapps. Weave into that a security / disclaimer
       message as proposed by Stefan Baur. (Fixes: #728).
   * debian/control:
     + Add D (x2goserver): libfile-which-perl.
     + Add C (x2goserver: x2godesktopsharing (<< 3.1.1.2-0~). (Fixes: #700).
     + Bump Standards: to 3.9.6. No changes needed.
     + Don't depend on libdb-pg-perl for armhf builds. (Fixes: #712). Thanks to
       Heinrich Schuchardt for providing information on this.
     + Upgrade to D again (bin:package x2goserver): xfonts-base (Fixes: #770).
   * debian/x2goserver.docs:
     + Install README.i18n file into bin:package x2goserver.
   * x2goserver.spec:
     + Add to R: perl(File::Which).
     + Additionally adapt to building on openSUSE/SLES.
     + No shell expansion possible in obs-build, detect perl version only for
       non-SUSE builds.
     + Add to R: x2goserver-xsession.
     + Don't mention /etc/x2go/x2gosql/sql twice (directly and with wildcard).
     + No %{_sysconfdir}/x2go/Xclients.d on SUSE systems.
     + Use %{_localstatedir} instead of %{_sharedstatedir}.
     + Use proper if... then... clauses.
     + For SUSE builds: Add to R: shadow (useradd, groupadd).
     + Replace historical "egrep" with "grep -E".
     + Systemd support for SUSE >= 12.10.
     + Set %defattr macro for every bin:package.
     + SUSE and Fedora/RHEL have different package group names.
     + Add x2goserver-rpmlintrc file to handle some rpmlint errors and warnings.
     + SUSE has openssh, but no openssh-server.
     + Add to R (x2goserver): perl-X2Go-Server.
     + Add to R (diverse): perl(Config::Simple), perl(Switch) and
       perl(Capture::Tiny).
     + Add to R (x2goserver): perl(File::BaseDir).
     + Don't hard-code /var/lib/ in $HOME path of to-be-created user
       "x2gouser".
     + Add to BR: findutils.
     + For Fedora-like systems, don't make x2goserver bin:package authoritative
       for non-X2Go directories. (Fixes: #676).
     + Remove macro call %systemd_pre for Fedora/EPEL-7 builds. No such macro in
       Fedora/RHEL7. (Fixes: 698).
     + Create system user x2gouser with $HOME in /var/lib/x2go. (Fixes: #697).
     + Always set BuildRoot: parameter.
     + BuildRequires: SUSE <= 11.3 has xorg-x11, not xinit.
     + Requires (x2goserver-xsession): SUSE <= 11.3 has xorg-x11, not xinit.
     + No Bashisms in scriptlets.
     + rpmlint requires shared-mime-info at build time on SLE <= 11.3.
     + "%set_permissions" / "%verify_permissions" macros are not know in SLE <=
       11.3. Using "%run permissions" and "%verify permissions" instead.
     + On SUSE, add permissions.d/x2goserver.
     + Fix SQLite wrapper permissions (02775 -> 02755)
     + Use if then clauses for creating user/group x2goprint.
 .
   [ Matthew L. Dailey ]
   * New upstream version (4.0.1.19):
     - x2gocleansessions: Redirect stdin, stdout and stderr to /dev/null, test
       for the existence of the file descriptor before issuing the close,
       only capture the file descriptor backreference in the regex and
       send any close failures to syslog. (Fixes: #678).
 .
   [ Lars Wendler ]
   * New upstream version (4.0.1.19):
     - Use "printf" instead of "echo -n". (Fixes: #668).


Marked Bug as done Request was from X2Go Release Manager <git-admin@x2go.org> to control@bugs.x2go.org. (Tue, 24 Feb 2015 20:55:43 GMT) (full text, mbox, link).


Notification sent to Mike Gabriel <mike.gabriel@das-netzwerkteam.de>:
Bug acknowledged by developer. (Tue, 24 Feb 2015 20:55:43 GMT) (full text, mbox, link).


Message sent on to Mike Gabriel <mike.gabriel@das-netzwerkteam.de>:
Bug#638. (Tue, 24 Feb 2015 20:55:51 GMT) (full text, mbox, link).


Bug archived. Request was from Debbugs Internal Request <owner@bugs.x2go.org> to internal_control@bugs.x2go.org. (Wed, 25 Mar 2015 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: Tue Apr 23 20:37:31 2024; 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.