This is an automated email from the git hooks/post-receive script. x2go pushed a change to branch master in repository x2goserver. from a35aa9c x2goserver/sbin/x2gocleansessions: give suspended-but-running sessions a grace period of one iteration. new a1ab739 x2goserver/sbin/x2gocleansessions: fix ugly missing whitespace. new 8393882 x2goserver/sbin/x2gocleansessions: move up session status sync a bit, don't update session state when session has been removed from the database. new 939a345 x2goserver/sbin/x2gocleansessions: unify log messages. Move dangling line around. new 30de2ca x2goserver/sbin/x2gocleansessions: whitespace only. new 45a92c7 x2goserver/sbin/x2gocleansessions: also delete entries in the other, overlooked hashes. new b44bc57 x2goserver/sbin/x2gocleansessions: move socket and lock file cleanup into time-based block for finished/failed sessions. new 77ce2d2 x2goserver/sbin/x2gocleansessions: add @remembered_finished_sessions array. The 7 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Summary of changes: debian/changelog | 15 ++++++++ x2goserver/sbin/x2gocleansessions | 72 +++++++++++++++++++++++-------------- 2 files changed, 61 insertions(+), 26 deletions(-) -- Alioth's /srv/git/code.x2go.org/x2goserver.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/x2goserver.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository x2goserver. commit 939a345a93ed07b4e63c75bcf467caf55f2e53c5 Author: Mihai Moldovan <ionic@ionic.de> Date: Mon Jun 22 23:55:34 2015 +0200 x2goserver/sbin/x2gocleansessions: unify log messages. Move dangling line around. Cherry-picked from release/4.0.1.x branch. --- debian/changelog | 2 ++ x2goserver/sbin/x2gocleansessions | 21 ++++++++++++--------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/debian/changelog b/debian/changelog index 9fdff27..073f36c 100644 --- a/debian/changelog +++ b/debian/changelog @@ -209,6 +209,8 @@ x2goserver (4.0.1.20-0x2go1) UNRELEASED; urgency=low - x2goserver/sbin/x2gocleansessions: move up session status sync a bit, don't update session state when session has been removed from the database. + - x2goserver/sbin/x2gocleansessions: unify log messages. Move dangling + line around. * 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 38f62ed..a17d92e 100755 --- a/x2goserver/sbin/x2gocleansessions +++ b/x2goserver/sbin/x2gocleansessions @@ -208,10 +208,12 @@ elsif ($pid == 0 ) if (@sinfo[4] eq 'F') { - log_message('debug', "@sinfo[1] is blocked"); + log_message ('debug', "@sinfo[1]: is blocked, adding to finished list."); + # Kill the process if blocked for more than 20 seconds. if ((gmtime (time) - $remembered_sessions_status_since_time{@sinfo[1]}) >= 20) { + log_message ('debug', "@sinfo[1]: blocked for more than 20 seconds."); # send SIGKILL to dangling X-server processes log_message('warning', "@sinfo[1]: found stale X-server process (@sinfo[0]), sending SIGKILL"); system("kill", "-9", "@sinfo[0]"); @@ -220,12 +222,12 @@ elsif ($pid == 0 ) my $display = @sinfo[2]; if (-S "/tmp/.X11-unix/X$display") { # remove the NX-X11 socket file (as the agent will not have managed after a kill -9) - log_message('warning', "@sinfo[1], pid @sinfo[0] cleaning up stale X11 socket file: /tmp/.X11-unix/X$display"); + log_message('warning', "@sinfo[1], pid @sinfo[0]: cleaning up stale X11 socket file: /tmp/.X11-unix/X$display"); unlink("/tmp/.X11-unix/X$display"); } if (-e "/tmp/.X$display-lock") { # remove the NX-X11 lock file (as the agent will not have managed after a kill -9) - log_message('warning', "@sinfo[1], pid @sinfo[0] cleaning up stale X11 lock file: /tmp/.X$display-lock"); + log_message('warning', "@sinfo[1], pid @sinfo[0]: cleaning up stale X11 lock file: /tmp/.X$display-lock"); unlink("/tmp/.X$display-lock"); } log_message('debug', "@sinfo[1]: unmounting all shares"); @@ -246,20 +248,21 @@ elsif ($pid == 0 ) $user = $effective_user; } + log_message('debug', "@sinfo[1], pid @sinfo[0]: does not exist, changing status from @sinfo[4] to F"); system("su", "$user", "-s", "/bin/sh", "-c", "$x2go_lib_path/x2gochangestatus 'F' @sinfo[1]"); my $display = @sinfo[2]; if (-S "/tmp/.X11-unix/X$display") { # remove the NX-X11 socket file (we don't know how the agent disappeared, # someone might have shot it with kill -9) - log_message('warning', "@sinfo[1], pid @sinfo[0] cleaning up stale X11 socket file: /tmp/.X11-unix/X$display"); + log_message('warning', "@sinfo[1], pid @sinfo[0]: cleaning up stale X11 socket file: /tmp/.X11-unix/X$display"); unlink("/tmp/.X11-unix/X$display"); } if (-e "/tmp/.X$display-lock") { # remove the NX-X11 lock file (we don't know how the agent disappeared, # someone might have shot it with kill -9) - log_message('warning', "@sinfo[1], pid @sinfo[0] cleaning up stale X11 lock file: /tmp/.X$display-lock"); + log_message('warning', "@sinfo[1], pid @sinfo[0]: cleaning up stale X11 lock file: /tmp/.X$display-lock"); unlink("/tmp/.X$display-lock"); - } log_message('debug', "@sinfo[1], pid @sinfo[0] does not exist, changing status from @sinfo[4] to F"); + } log_message('debug', "@sinfo[1]: unmounting all shares"); system("su", "@sinfo[11]", "-s", "/bin/sh", "-c", "export HOSTNAME && x2goumount-session @sinfo[1]"); } @@ -270,7 +273,7 @@ elsif ($pid == 0 ) if (session_is_suspended(@sinfo[1],@sinfo[11])) { system("su", "@sinfo[11]", "-s", "/bin/sh", "-c", "$x2go_lib_path/x2gochangestatus S @sinfo[1]"); - log_message('debug', "@sinfo[1] is suspended, changing status from @sinfo[4] to S"); + log_message('debug', "@sinfo[1]: is suspended, changing status from @sinfo[4] to S"); log_message('debug', "@sinfo[1]: unmounting all shares"); system("su", "@sinfo[11]", "-s", "/bin/sh", "-c", "export HOSTNAME && x2goumount-session @sinfo[1]"); #remove port forwarding @@ -286,7 +289,7 @@ elsif ($pid == 0 ) log_message('debug', "@sinfo[1]: unmounting all shares"); system("su", "@sinfo[11]", "-s", "/bin/sh", "-c", "export HOSTNAME && x2goumount-session @sinfo[1]"); system("su", "@sinfo[11]", "-s", "/bin/sh", "-c", "x2gosuspend-session @sinfo[1]"); - log_message('debug', "@sinfo[1] was found running and has now been suspended"); + log_message('debug', "@sinfo[1]: was found running and has now been suspended"); } elsif ($remembered_sessions_status_since_iterations{@sinfo[1]} == 2) { # Issue a diagnostic warning in case suspension was already tried, but failed to @@ -302,7 +305,7 @@ elsif ($pid == 0 ) log_message('debug', "@sinfo[1]: unmounting all shares"); system("su", "@sinfo[11]", "-s", "/bin/sh", "-c", "export HOSTNAME && x2goumount-session @sinfo[1]"); system("su", "@sinfo[11]", "-s", "/bin/sh", "-c", "x2goterminate-session @sinfo[1]"); - log_message('debug', "@sinfo[1] has been requested for termination via the session DB"); + log_message('debug', "@sinfo[1]: termination has been requested via the session DB"); #remove port forwarding system("su", "@sinfo[11]", "-s", "/bin/sh", "-c", "$x2go_lib_path/x2gormforward @sinfo[1]"); } -- Alioth's /srv/git/code.x2go.org/x2goserver.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/x2goserver.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository x2goserver. commit a1ab7390cadb505cba20b896cc1a04ba7b2142ed Author: Mihai Moldovan <ionic@ionic.de> Date: Mon Jun 22 17:34:51 2015 +0200 x2goserver/sbin/x2gocleansessions: fix ugly missing whitespace. Cherry-picked from release/4.0.1.x branch. --- debian/changelog | 1 + x2goserver/sbin/x2gocleansessions | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 92bb7a3..01393c3 100644 --- a/debian/changelog +++ b/debian/changelog @@ -205,6 +205,7 @@ x2goserver (4.0.1.20-0x2go1) UNRELEASED; urgency=low the next change. - x2goserver/sbin/x2gocleansessions: give suspended-but-running sessions a grace period of one iteration. Fixes: #888. + - x2goserver/sbin/x2gocleansessions: fix ugly missing whitespace. * 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 81dcf4a..1d67b4c 100755 --- a/x2goserver/sbin/x2gocleansessions +++ b/x2goserver/sbin/x2gocleansessions @@ -200,7 +200,7 @@ elsif ($pid == 0 ) # 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') + if (@sinfo[4] eq 'F') { log_message('debug', "@sinfo[1] is blocked"); # Kill the process if blocked for more than 20 seconds. -- Alioth's /srv/git/code.x2go.org/x2goserver.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/x2goserver.git
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@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
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository x2goserver. commit 30de2cacc34999600a03c0ad5edd0c6bce614a92 Author: Mihai Moldovan <ionic@ionic.de> Date: Mon Jun 22 23:57:00 2015 +0200 x2goserver/sbin/x2gocleansessions: whitespace only. Cherry-picked from release/4.0.1.x branch. --- debian/changelog | 1 + x2goserver/sbin/x2gocleansessions | 1 + 2 files changed, 2 insertions(+) diff --git a/debian/changelog b/debian/changelog index 073f36c..2eb4e3e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -211,6 +211,7 @@ x2goserver (4.0.1.20-0x2go1) UNRELEASED; urgency=low database. - x2goserver/sbin/x2gocleansessions: unify log messages. Move dangling line around. + - x2goserver/sbin/x2gocleansessions: whitespace only. * 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 a17d92e..de96487 100755 --- a/x2goserver/sbin/x2gocleansessions +++ b/x2goserver/sbin/x2gocleansessions @@ -250,6 +250,7 @@ elsif ($pid == 0 ) log_message('debug', "@sinfo[1], pid @sinfo[0]: does not exist, changing status from @sinfo[4] to F"); system("su", "$user", "-s", "/bin/sh", "-c", "$x2go_lib_path/x2gochangestatus 'F' @sinfo[1]"); + my $display = @sinfo[2]; if (-S "/tmp/.X11-unix/X$display") { # remove the NX-X11 socket file (we don't know how the agent disappeared, -- Alioth's /srv/git/code.x2go.org/x2goserver.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/x2goserver.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository x2goserver. commit 45a92c73c6e675a1a7e963f7b3398beff1fb4f81 Author: Mihai Moldovan <ionic@ionic.de> Date: Tue Jun 23 00:02:47 2015 +0200 x2goserver/sbin/x2gocleansessions: also delete entries in the other, overlooked hashes. Cherry-picked from release/4.0.1.x branch. --- debian/changelog | 2 ++ x2goserver/sbin/x2gocleansessions | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/debian/changelog b/debian/changelog index 2eb4e3e..7cf1ff6 100644 --- a/debian/changelog +++ b/debian/changelog @@ -212,6 +212,8 @@ x2goserver (4.0.1.20-0x2go1) UNRELEASED; urgency=low - x2goserver/sbin/x2gocleansessions: unify log messages. Move dangling line around. - x2goserver/sbin/x2gocleansessions: whitespace only. + - x2goserver/sbin/x2gocleansessions: also delete entries in the other, + overlooked hashes. * 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 de96487..d6a003b 100755 --- a/x2goserver/sbin/x2gocleansessions +++ b/x2goserver/sbin/x2gocleansessions @@ -217,7 +217,11 @@ elsif ($pid == 0 ) # send SIGKILL to dangling X-server processes log_message('warning', "@sinfo[1]: found stale X-server process (@sinfo[0]), sending SIGKILL"); system("kill", "-9", "@sinfo[0]"); + + # Remove all references to this sessions. We will never see it again. + delete $remembered_sessions_status{@sinfo[1]}; delete $remembered_sessions_status_since_time{@sinfo[1]}; + delete $remembered_sessions_status_since_iterations{@sinfo[1]}; } my $display = @sinfo[2]; if (-S "/tmp/.X11-unix/X$display") { -- Alioth's /srv/git/code.x2go.org/x2goserver.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/x2goserver.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository x2goserver. commit b44bc574da2f6fb07608becf4d959ae2a0fa928d Author: Mihai Moldovan <ionic@ionic.de> Date: Tue Jun 23 00:05:25 2015 +0200 x2goserver/sbin/x2gocleansessions: move socket and lock file cleanup into time-based block for finished/failed sessions. Cherry-picked from release/4.0.1.x branch. --- debian/changelog | 2 ++ x2goserver/sbin/x2gocleansessions | 31 ++++++++++++++++--------------- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/debian/changelog b/debian/changelog index 7cf1ff6..0bbc9f6 100644 --- a/debian/changelog +++ b/debian/changelog @@ -214,6 +214,8 @@ x2goserver (4.0.1.20-0x2go1) UNRELEASED; urgency=low - x2goserver/sbin/x2gocleansessions: whitespace only. - x2goserver/sbin/x2gocleansessions: also delete entries in the other, overlooked hashes. + - x2goserver/sbin/x2gocleansessions: move socket and lock file cleanup + into time-based block for finished/failed sessions. * 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 d6a003b..f44f841 100755 --- a/x2goserver/sbin/x2gocleansessions +++ b/x2goserver/sbin/x2gocleansessions @@ -222,22 +222,23 @@ elsif ($pid == 0 ) delete $remembered_sessions_status{@sinfo[1]}; delete $remembered_sessions_status_since_time{@sinfo[1]}; delete $remembered_sessions_status_since_iterations{@sinfo[1]}; + + my $display = @sinfo[2]; + if (-S "/tmp/.X11-unix/X$display") { + # remove the NX-X11 socket file (as the agent will not have managed after a kill -9) + log_message('warning', "@sinfo[1], pid @sinfo[0]: cleaning up stale X11 socket file: /tmp/.X11-unix/X$display"); + unlink("/tmp/.X11-unix/X$display"); + } + if (-e "/tmp/.X$display-lock") { + # remove the NX-X11 lock file (as the agent will not have managed after a kill -9) + log_message('warning', "@sinfo[1], pid @sinfo[0]: cleaning up stale X11 lock file: /tmp/.X$display-lock"); + unlink("/tmp/.X$display-lock"); + } + log_message('debug', "@sinfo[1]: unmounting all shares"); + system( "su", "@sinfo[11]", "-s", "/bin/sh", "-c", "export HOSTNAME && x2goumount-session @sinfo[1]"); + #remove port forwarding + system("su", "@sinfo[11]", "-s", "/bin/sh", "-c", "$x2go_lib_path/x2gormforward @sinfo[1]"); } - my $display = @sinfo[2]; - if (-S "/tmp/.X11-unix/X$display") { - # remove the NX-X11 socket file (as the agent will not have managed after a kill -9) - log_message('warning', "@sinfo[1], pid @sinfo[0]: cleaning up stale X11 socket file: /tmp/.X11-unix/X$display"); - unlink("/tmp/.X11-unix/X$display"); - } - if (-e "/tmp/.X$display-lock") { - # remove the NX-X11 lock file (as the agent will not have managed after a kill -9) - log_message('warning', "@sinfo[1], pid @sinfo[0]: cleaning up stale X11 lock file: /tmp/.X$display-lock"); - unlink("/tmp/.X$display-lock"); - } - log_message('debug', "@sinfo[1]: unmounting all shares"); - system( "su", "@sinfo[11]", "-s", "/bin/sh", "-c", "export HOSTNAME && x2goumount-session @sinfo[1]"); - #remove port forwarding - system("su", "@sinfo[11]", "-s", "/bin/sh", "-c", "$x2go_lib_path/x2gormforward @sinfo[1]"); } elsif (! check_pid (@sinfo[0],@sinfo[1],@sinfo[12])) { -- Alioth's /srv/git/code.x2go.org/x2goserver.git//..//_hooks_/post-receive-email on /srv/git/code.x2go.org/x2goserver.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository x2goserver. commit 77ce2d2ba144ee0c73c0f458834ed2e46231da86 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. Cherry-picked from release/4.0.1.x branch. --- debian/changelog | 4 ++++ x2goserver/sbin/x2gocleansessions | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/debian/changelog b/debian/changelog index 0bbc9f6..e67011b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -216,6 +216,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 f44f841..b9337fe 100755 --- a/x2goserver/sbin/x2gocleansessions +++ b/x2goserver/sbin/x2gocleansessions @@ -145,6 +145,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 = (); @@ -170,6 +171,8 @@ elsif ($pid == 0 ) } } + push (@outp, @remembered_finished_sessions); + for (my $i=0;$i<@outp;$i++) { @@ -209,6 +212,7 @@ elsif ($pid == 0 ) if (@sinfo[4] eq 'F') { log_message ('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) @@ -219,6 +223,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