Diff for /loncom/loncnew between versions 1.31 and 1.35

version 1.31, 2003/10/28 10:48:10 version 1.35, 2003/12/12 09:57:28
Line 43 Line 43
 #    - Detect transmission timeouts.  #    - Detect transmission timeouts.
 #  #
   
 # Change log:  
 #    $Log$  
 #    Revision 1.31  2003/10/28 10:48:10  foxr  
 #    Call LondConnection::ReadConfig explicitly so that the configuration is loaded  
 #    prior to getting the hosts table hashiterator.  
 #  
 #    Revision 1.30  2003/10/27 10:09:21  foxr  
 #    Tighten up a few compares to eq and flip a few debug levels around... nothing  
 #    critical  
 #  
 #    Revision 1.29  2003/10/21 14:24:42  foxr  
 #    Fix little typo that may explain growth of connections  
 #  
 #    Revision 1.28  2003/10/14 15:36:21  albertel  
 #    - making it easier to run loncnew,  
 #       /etc/init.d/loncontrol startnew  
 #       /etc/init.d/loncontrol restartnew  
 #      will now start loncnew in place of lonc  
 #  
 #    Revision 1.27  2003/10/07 11:23:03  foxr  
 #    Installed and tested code to process reinit in parent server.  
 #  
 #    Revision 1.26  2003/09/30 11:11:17  foxr  
 #    Add book-keeping hashes to support the re-init procedure.  
 #  
 #    Revision 1.25  2003/09/23 11:22:14  foxr  
 #    Tested ability to receive sigusr2  This is now logged and must be  
 #    properly implemented as a re-read of hosts and re-init of appropriate  
 #    children.  
 #  
 #    Revision 1.24  2003/09/16 09:46:42  foxr  
 #    Added skeletal infrastructure to support SIGUSR2 update hosts request.  
 #  
 #    Revision 1.23  2003/09/15 09:24:49  foxr  
 #    Add use strict and fix all the fallout from that.  
 #  
 #    Revision 1.22  2003/09/02 10:34:47  foxr  
 #    - Fix errors in host dead detection logic (too many cases where the  
 #      retries left were not getting incremented or just not checked).  
 #    - Added some additional status to the ps axuww display:  
 #      o Remaining retries on a host.  
 #      o >>> DEAD <<< indicator if I've given up on a host.  
 #    - Tested the SIGHUP will reset the retries remaining count (thanks to  
 #      the above status stuff, and get allow the loncnew to re-try again  
 #      on the host (thanks to the log).  
 #  
 #    Revision 1.21  2003/08/26 09:19:51  foxr  
 #    How embarrassing... put in the SocketTimeout function in loncnew and forgot  
 #    to actually hook it into the LondTransaction.  Added this to MakeLondConnection  
 #    where it belongs... hopefully transactions (not just connection attempts) will  
 #    timeout more speedily than the socket errors will catch it.  
 #  
 #    Revision 1.20  2003/08/25 18:48:11  albertel  
 #    - fixing a forgotten ;  
 #  
 #    Revision 1.19  2003/08/19 09:31:46  foxr  
 #    Get socket directory from configuration rather than the old hard coded test  
 #    way that I forgot to un-hard code.  
 #  
 #    Revision 1.18  2003/08/06 09:52:29  foxr  
 #    Also needed to remember to fail in-flight transactions if their sends fail.  
 #  
 #    Revision 1.17  2003/08/03 00:44:31  foxr  
 #    1. Correct handling of connection failure: Assume it means the host is  
 #       unreachable and fail all of the queued transactions.  Note that the  
 #       inflight transactions should fail on their own time due either to timeout  
 #       or send/receive failures.  
 #    2. Correct handling of logs for forced death signals.  Pull the signal  
 #       from the event watcher.  
 #  
 #    Revision 1.16  2003/07/29 02:33:05  foxr  
 #    Add SIGINT processing to child processes to toggle annoying trace mode  
 #    on/off.. will try to use this to isolate the compute boud process issue.  
 #  
 #    Revision 1.15  2003/07/15 02:07:05  foxr  
 #    Added code for lonc/lond transaction timeouts.  Who knows if it works right.  
 #    The intent is for a timeout to fail any transaction in progress and kill  
 #    off the sockt that timed out.  
 #  
 #    Revision 1.14  2003/07/03 02:10:18  foxr  
 #    Get all of the signals to work correctly.  
 #  
 #    Revision 1.13  2003/07/02 01:31:55  foxr  
 #    Added kill -HUP logic (restart).  
 #  
 #    Revision 1.11  2003/06/25 01:54:44  foxr  
 #    Fix more problems with transaction failure.  
 #  
 #    Revision 1.10  2003/06/24 02:46:04  foxr  
 #    Put a limit on  the number of times we'll retry a connection.  
 #    Start getting the signal stuff put in as well...note that need to get signals  
 #    going or else the client will permanently give up on dead servers.  
 #  
 #    Revision 1.9  2003/06/13 02:38:43  foxr  
 #    Add logging in 'expected format'  
 #  
 #    Revision 1.8  2003/06/11 02:04:35  foxr  
 #    Support delayed transactions... this is done uniformly by encapsulating  
 #    transactions in an object ... a LondTransaction that is implemented by  
 #    LondTransaction.pm  
 #  
 #    Revision 1.7  2003/06/03 01:59:39  foxr  
 #    complete coding to support deferred transactions.  
 #  
 #  
 use strict;  use strict;
 use lib "/home/httpd/lib/perl/";  use lib "/home/httpd/lib/perl/";
 use lib "/home/foxr/newloncapa/types";  
 use Event qw(:DEFAULT );  use Event qw(:DEFAULT );
 use POSIX qw(:signal_h);  use POSIX qw(:signal_h);
 use POSIX;  use POSIX;
Line 316  sub GetPeername { Line 210  sub GetPeername {
  return $peerfile;   return $peerfile;
     }      }
 }  }
 #----------------------------- Timer management ------------------------  
 =pod  =pod
   
 =head2 Debug  =head2 Debug
Line 373  sub SocketTimeout { Line 266  sub SocketTimeout {
                                 # a connection failure:                                  # a connection failure:
     $ConnectionRetriesLeft--;      $ConnectionRetriesLeft--;
 }  }
   #----------------------------- Timer management ------------------------
   
 =pod  =pod
   
Line 407  sub Tick { Line 301  sub Tick {
     #      #
     #  For each inflight transaction, tick down its timeout counter.      #  For each inflight transaction, tick down its timeout counter.
     #      #
     foreach my $item (keys %ActiveTransactions) {  
  my $Socket = $ActiveTransactions{$item}->getServer();      foreach my $item (keys %ActiveConnections) {
  $Socket->Tick();   my $State = $ActiveConnections{$item}->data->GetState();
    if ($State ne 'Idle') {
       Debug(5,"Ticking Socket $State $item");
       $ActiveConnections{$item}->data->Tick();
    }
     }      }
     # Do we have work in the queue, but no connections to service them?      # Do we have work in the queue, but no connections to service them?
     # If so, try to make some new connections to get things going again.      # If so, try to make some new connections to get things going again.
Line 456  Trigger disconnections of idle sockets. Line 354  Trigger disconnections of idle sockets.
   
 sub SetupTimer {  sub SetupTimer {
     Debug(6, "SetupTimer");      Debug(6, "SetupTimer");
     Event->timer(interval => 1, debug => 1, cb => \&Tick );      Event->timer(interval => 1, cb => \&Tick );
 }  }
   
 =pod  =pod

Removed from v.1.31  
changed lines
  Added in v.1.35


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>