Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: Interchange: cvs

[SCM] Interchange branch, master, updated. 1d9dbfb4e42ecf7e1fcf81cf931d7d4794f46f73

 

 

Interchange cvs RSS feed   Index | Next | Previous | View Threaded


interchange-cvs at icdevgroup

Sep 1, 2009, 2:06 PM

Post #1 of 1 (231 views)
Permalink
[SCM] Interchange branch, master, updated. 1d9dbfb4e42ecf7e1fcf81cf931d7d4794f46f73

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 "Interchange".

The branch, master has been updated
via 1d9dbfb4e42ecf7e1fcf81cf931d7d4794f46f73 (commit)
from e993135f285fe9739473115eec5970d859cdf134 (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 1d9dbfb4e42ecf7e1fcf81cf931d7d4794f46f73
Author: Mark Johnson <mark [at] endpoint>
Date: Tue Sep 1 14:53:37 2009 -0600

Fix problem restarting daemon in PreFork mode

Previously, restart was failing, stating it couldn't find the previous
Interchange running, and would keep creating StartServers new servers on
every restart. Only SIGKILL was able to kill all PreFork children.

The original code was just being stupid (and I can say that freely
since I wrote it). I had in my head that as child PIDs died, %Page_pids
and %Starting_pids would be culled. However, that process only happens
through normal operations (housekeeping, ChildLife or MRPC, etc.)--not
when I send the kid a TERM!

-----------------------------------------------------------------------

Summary of changes and diff:
lib/Vend/Server.pm | 31 ++++++++++---------------------
1 files changed, 10 insertions(+), 21 deletions(-)

diff --git a/lib/Vend/Server.pm b/lib/Vend/Server.pm
index 3c59e2f..2ffa592 100644
--- a/lib/Vend/Server.pm
+++ b/lib/Vend/Server.pm
@@ -1055,31 +1055,20 @@ my ($Sig_inc, $Sig_dec, $Counter);
sub sig_int_or_term {
$Signal_Terminate = 1;

- my $term_count = 0;
- TERM: {
- my %seen;
- my @pids =
- grep { !$seen{$_}++ }
- (keys %Page_pids, keys %Starting_pids);
+ my (%seen, $all_gone);

- last TERM unless @pids;
+ my @pids =
+ grep { !$seen{$_}++ }
+ (keys %Page_pids, keys %Starting_pids);

- kill TERM => $_ for @pids;
- sleep 1;
-
- redo TERM unless ++$term_count > 3;
+ for (1..3) {
+ $all_gone = ! kill TERM => @pids
+ and last;
+ select (undef, undef, undef, 0.5);
}

- KILL: {
- my %seen;
- my @pids =
- grep { !$seen{$_}++ }
- (keys %Page_pids, keys %Starting_pids);
-
- last KILL unless @pids;
-
- kill KILL => $_ for @pids;
- }
+ kill KILL => @pids
+ unless $all_gone;

return;
}


hooks/post-receive
--
Interchange

_______________________________________________
interchange-cvs mailing list
interchange-cvs [at] icdevgroup
http://www.icdevgroup.org/mailman/listinfo/interchange-cvs

Interchange cvs RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.