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