[X2Go-Commits] [x2goserver] 02/07: x2goserver/sbin/x2gocleansessions: move up session status sync a bit, don't update session state when session has been removed from the database.

git-admin at x2go.org git-admin at x2go.org
Tue Jun 23 01:32:04 CEST 2015


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch master
in repository x2goserver.

commit 83938824491fb724beec51847b8f4a44e8456670
Author: Mihai Moldovan <ionic at ionic.de>
Date:   Mon Jun 22 23:48:45 2015 +0200

    x2goserver/sbin/x2gocleansessions: move up session status sync a bit, don't update session state when session has been removed from the database.
    
    Cherry-picked from release/4.0.1.x branch.
---
 debian/changelog                  |    3 +++
 x2goserver/sbin/x2gocleansessions |   12 +++++++++---
 2 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index 01393c3..9fdff27 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -206,6 +206,9 @@ x2goserver (4.0.1.20-0x2go1) UNRELEASED; urgency=low
     - 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.spec:
     - Add sudo and logcheck as BuildRequires and Requires. Don't own
       directories that are owned by sudo and logcheck. Logcheck is not
diff --git a/x2goserver/sbin/x2gocleansessions b/x2goserver/sbin/x2gocleansessions
index 1d67b4c..38f62ed 100755
--- a/x2goserver/sbin/x2gocleansessions
+++ b/x2goserver/sbin/x2gocleansessions
@@ -183,6 +183,15 @@ elsif ($pid == 0 )
 				next;
 			}
 
+			# Update current status once per session. Avoids race conditions.
+			my $current_status = system_capture_stdout_output ("$x2go_lib_path/x2gogetstatus", "@sinfo[1]");
+			if (length ($current_status)) {
+				@sinfo[4] = $current_status;
+			}
+			else {
+				log_message ('debug', "@sinfo[1]: removed from database, not updating status.");
+			}
+
 			# Record the status of either previously unseen or status-changing sessions and the current time.
 			if (!(defined ($remembered_sessions_status_since_time{@sinfo[1]})) || ($remembered_sessions_status{@sinfo[1]} !~ m/@sinfo[4]/)) {
 				$remembered_sessions_status{@sinfo[1]} = @sinfo[4];
@@ -197,9 +206,6 @@ elsif ($pid == 0 )
 
 			#print @sinfo[1], ': ', $remembered_sessions_status_since_time{@sinfo[1]},' (' , $remembered_sessions_status_since_iterations{@sinfo[1]} ,'iterations) ',$remembered_sessions_status{@sinfo[1]},"\n";
 
-			# Update current status once per session. Avoids race conditions.
-			@sinfo[4] = system_capture_stdout_output ("$x2go_lib_path/x2gogetstatus", "@sinfo[1]");
-
 			if (@sinfo[4] eq 'F')
 			{
 				log_message('debug', "@sinfo[1] is blocked");

--
Alioth's /srv/git/code.x2go.org/x2goserver.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/x2goserver.git


More information about the x2go-commits mailing list