[X2Go-Commits] [x2goserver] 07/07: x2goserver/sbin/x2gocleansessions: add @remembered_finished_sessions array.

git-admin at x2go.org git-admin at x2go.org
Tue Jun 23 01:05:46 CEST 2015


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

x2go pushed a commit to branch release/4.0.1.x
in repository x2goserver.

commit eff9f17cce0c7e714e6c70fb48b8e512e9ae0810
Author: Mihai Moldovan <ionic at ionic.de>
Date:   Tue Jun 23 00:08:10 2015 +0200

    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.
---
 debian/changelog                  |    4 ++++
 x2goserver/sbin/x2gocleansessions |    5 +++++
 2 files changed, 9 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index debf495..1d6914c 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -47,6 +47,10 @@ x2goserver (4.0.1.20-0x2go1) UNRELEASED; urgency=low
       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.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 7efcb89..73c04d4 100755
--- a/x2goserver/sbin/x2gocleansessions
+++ b/x2goserver/sbin/x2gocleansessions
@@ -157,6 +157,7 @@ elsif ($pid == 0 )
 	$SIG{TERM}=\&catch_term;
 	$SIG{CHLD} = sub { wait };
 
+	my @remembered_finished_sessions = ();
 	my %remembered_sessions_status = ();
 	my %remembered_sessions_status_since_time = ();
 	my %remembered_sessions_status_since_iterations = ();
@@ -177,6 +178,8 @@ elsif ($pid == 0 )
 			}
 		}
 
+		push (@outp, @remembered_finished_sessions);
+
 		for (my $i=0;$i<@outp;$i++)
 		{
 
@@ -216,6 +219,7 @@ elsif ($pid == 0 )
 			if (@sinfo[4] eq 'F')
 			{
 				syslog ('debug', "@sinfo[1]: is blocked, adding to finished list.");
+				push (@remembered_finished_sessions, join ('|', @sinfo));
 
 				# Kill the process if blocked for more than 20 seconds.
 				if ((gmtime (time) - $remembered_sessions_status_since_time{@sinfo[1]}) >= 20)
@@ -226,6 +230,7 @@ elsif ($pid == 0 )
 					system("kill", "-9", "@sinfo[0]");
 
 					# Remove all references to this sessions. We will never see it again.
+					@remembered_finished_sessions = grep (!/\Q at sinfo[1]\E/, @remembered_finished_sessions);
 					delete $remembered_sessions_status{@sinfo[1]};
 					delete $remembered_sessions_status_since_time{@sinfo[1]};
 					delete $remembered_sessions_status_since_iterations{@sinfo[1]};

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