[LON-CAPA-cvs] cvs: loncom / loncron
raeburn
raeburn at source.lon-capa.org
Mon Nov 14 12:27:34 EST 2011
raeburn Mon Nov 14 17:27:34 2011 EDT
Modified files:
/loncom loncron
Log:
- Do not modfy $warnings count in check_delayed_msg() if $unsend total is
negative.
- Don't attempt pong to server in /home/httpd/sockets/delayed if
server is not listed in cluster tables.
- Log pong timeout and also if server in delayed is not in cluster.
Index: loncom/loncron
diff -u loncom/loncron:1.94 loncom/loncron:1.95
--- loncom/loncron:1.94 Tue Nov 8 22:25:25 2011
+++ loncom/loncron Mon Nov 14 17:27:34 2011
@@ -2,7 +2,7 @@
# Housekeeping program, started by cron, loncontrol and loncron.pl
#
-# $Id: loncron,v 1.94 2011/11/08 22:25:25 raeburn Exp $
+# $Id: loncron,v 1.95 2011/11/14 17:27:34 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -627,7 +627,9 @@
}
&log($fh,"<p>Total unsend messages: <b>$unsend</b></p>\n");
- $warnings=$warnings+5*$unsend;
+ if ($unsend > 0) {
+ $warnings=$warnings+5*$unsend;
+ }
if ($unsend) { $simplestatus{'unsend'}=$unsend; }
&log($fh,"<h3>Outgoing Buffer</h3>\n<pre>");
@@ -641,20 +643,27 @@
}
&log($fh,"</pre>\n");
close (DFH);
+ my %hostname = &Apache::lonnet::all_hostnames();
+ my $numhosts = scalar(keys(%hostname));
# pong to all servers that have delayed messages
# this will trigger a reverse connection, which should flush the buffers
- foreach my $tryserver (keys %servers) {
- my $answer;
- eval {
- local $SIG{ ALRM } = sub { die "TIMEOUT" };
- alarm(20);
- $answer = &Apache::lonnet::reply("pong",$tryserver);
- alarm(0);
- };
- if ($@ && $@ =~ m/TIMEOUT/) {
- print "time out while contacting: $tryserver for pong\n";
+ foreach my $tryserver (sort(keys(%servers))) {
+ if ($hostname{$tryserver} || !$numhosts) {
+ my $answer;
+ eval {
+ local $SIG{ ALRM } = sub { die "TIMEOUT" };
+ alarm(20);
+ $answer = &Apache::lonnet::reply("pong",$tryserver);
+ alarm(0);
+ };
+ if ($@ && $@ =~ m/TIMEOUT/) {
+ &log($fh,"Attempted pong to $tryserver timed out<br />");
+ print "time out while contacting: $tryserver for pong\n";
+ } else {
+ &log($fh,"Pong to $tryserver: $answer<br />");
+ }
} else {
- &log($fh,"Pong to $tryserver: $answer<br />");
+ &log($fh,"$tryserver has delayed messages, but is not part of the cluster -- skipping 'Pong'.<br />");
}
}
}
More information about the LON-CAPA-cvs
mailing list