[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