The branch, release/4.0.1.x has been updated via 95ed41f7d7cf129ca635fcd78959b9f41db2244c (commit) from 02ce6b450e39d07617d95e6a334573f3dd31ee8d (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 95ed41f7d7cf129ca635fcd78959b9f41db2244c Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Sat Jun 22 14:31:13 2013 +0200 Improve session status management in x2gocleansessions. Conflicts (resolved by Mike Gabriel) debian/changelog ----------------------------------------------------------------------- Summary of changes: debian/changelog | 7 +++++++ x2goserver/sbin/x2gocleansessions | 26 +++++++++++++++----------- 2 files changed, 22 insertions(+), 11 deletions(-) The diff of changes is: diff --git a/debian/changelog b/debian/changelog index 2798097..a1e4b4b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +x2goserver (4.0.1.3-0~x2go1) UNRELEASED; urgency=low + + * New upstream version (4.0.1.3): + - Improve session status management in x2gocleansessions. + + -- Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Sat, 22 Jun 2013 14:30:46 +0200 + x2goserver (4.0.1.2-0~x2go1) unstable; urgency=low * New upstream version (4.0.1.2): diff --git a/x2goserver/sbin/x2gocleansessions b/x2goserver/sbin/x2gocleansessions index 2a69281..e2a784a 100755 --- a/x2goserver/sbin/x2gocleansessions +++ b/x2goserver/sbin/x2gocleansessions @@ -95,13 +95,12 @@ sub catch_term } my $uname; -#my $serv=$ENV{'HOSTNAME'}; my $serv = hostname; my $pid = fork(); if (not defined $pid) { print "resources not avilable.\n"; -} +} elsif ($pid != 0) { open (F,">/var/run/x2goserver.pid"); @@ -116,7 +115,8 @@ elsif ($pid == 0 ) $SIG{TERM}=\&catch_term; $SIG{CHLD} = sub { wait }; - my %remembered_sessions = (); + my %remembered_sessions_status = (); + my %remembered_sessions_since = (); while(sleep 2) { @@ -124,11 +124,12 @@ elsif ($pid == 0 ) my @outp=split("\n","$outp"); # forget earlier remembered blocked sessions - while ( my ($session, $remembered_time) = each(%remembered_sessions) ) + while ( my ($session, $remembered_since) = each(%remembered_sessions_since) ) { if (! join(',', @outp)=~m/$session/) { - delete $remembered_sessions{$session}; + delete $remembered_sessions_status{$session}; + delete $remembered_sessions_since{$session}; } } @@ -137,22 +138,25 @@ elsif ($pid == 0 ) my @sinfo=split('\\|',"@outp[$i]"); - if (defined $remembered_sessions{ @sinfo[1] }) + if (defined $remembered_sessions_since{ @sinfo[1] } && ($remembered_sessions_status{ @sinfo[1] } =~m/@sinfo[4]/ )) { - $remembered_sessions{ @sinfo[1] } += 2; + $remembered_sessions_since{ @sinfo[1] } += 2; } else { - $remembered_sessions{ @sinfo[1] } = 0; + $remembered_sessions_status{ @sinfo[1] } = @sinfo[4]; + $remembered_sessions_since{ @sinfo[1] } = 0; } + #print @sinfo[1], ': ', $remembered_sessions_since{@sinfo[1]},' ',$remembered_sessions_status{@sinfo[1]},"\n"; + if (@sinfo[4]eq 'F') { syslog('debug', "@sinfo[1] is blocked"); - if ($remembered_sessions{@sinfo[1]} ge 20) + if ($remembered_sessions_since{@sinfo[1]} ge 20) { # send SIGKILL to dangling X-server processes syslog('warning', "@sinfo[1]: found stale X-server process (@sinfo[0]), sending SIGKILL"); qw(kill -9 @sinfo[0]); - delete $remembered_sessions{@sinfo[1]}; + delete $remembered_sessions_since{@sinfo[1]}; } syslog('debug', "@sinfo[1]: unmounting all shares"); system( "su @sinfo[11] -c \"export HOSTNAME && x2goumount-session @sinfo[1]\" 2> /dev/null"); @@ -167,7 +171,7 @@ elsif ($pid == 0 ) } else { - if ( (@sinfo[4] eq 'R') && ( $remembered_sessions{ @sinfo[1] } ge 2 )) + if ( (@sinfo[4] eq 'R') && ( $remembered_sessions_since{ @sinfo[1] } ge 2 )) { if (is_suspended(@sinfo[1],@sinfo[11])) { hooks/post-receive -- x2goserver.git (X2Go Server) This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "x2goserver.git" (X2Go Server).