[LON-CAPA-cvs] cvs: loncom(version_0_6) / lond

albertel lon-capa-cvs@mail.lon-capa.org
Fri, 14 Mar 2003 21:25:44 -0000


albertel		Fri Mar 14 16:25:44 2003 EDT

  Modified files:              (Branch: version_0_6)
    /loncom	lond 
  Log:
  - backport of 1.113 (lond parent can get stuck trying to send mail)
  
  
Index: loncom/lond
diff -u loncom/lond:1.103 loncom/lond:1.103.2.1
--- loncom/lond:1.103	Wed Oct 30 09:50:04 2002
+++ loncom/lond	Fri Mar 14 16:25:44 2003
@@ -2,7 +2,7 @@
 # The LearningOnline Network
 # lond "LON Daemon" Server (port "LOND" 5663)
 #
-# $Id: lond,v 1.103 2002/10/30 14:50:04 www Exp $
+# $Id: lond,v 1.103.2.1 2003/03/14 21:25:44 albertel Exp $
 #
 # Copyright Michigan State University Board of Trustees
 #
@@ -272,17 +272,25 @@
         } 
     }
     sleep 5;
+    $SIG{ALRM} = sub { die "timeout" };
+    $SIG{__DIE__} = 'DEFAULT';
     foreach (sort keys %children) {
         unless (-e "$docdir/lon-status/londchld/$_.txt") {
+          eval {
+            alarm(300);
 	    &logthis('Child '.$_.' did not respond');
 	    kill 9 => $_;
 	    $emailto="$perlvar{'lonAdmEMail'},$perlvar{'lonSysEMail'}";
 	    $subj="LON: $perlvar{'lonHostID'} killed lond process $_";
 	    my $result=`echo 'Killed lond process $_.' | mailto $emailto -s '$subj' > /dev/null`;
 	    $execdir=$perlvar{'lonDaemons'};
-	    $result=`/bin/cp $execdir/logs/lond.log $execdir/logs/lond.log.$_`
+	    $result=`/bin/cp $execdir/logs/lond.log $execdir/logs/lond.log.$_`;
+	    alarm(0);
+	  }
         }
     }
+    $SIG{ALRM} = 'DEFAULT';
+    $SIG{__DIE__} = \&cathcexception;
 }
 
 # --------------------------------------------------------------------- Logging