[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