--- loncom/lonnet/perl/lonnet.pm 2004/09/20 20:14:14 1.523.2.5 +++ loncom/lonnet/perl/lonnet.pm 2004/09/27 19:02:11 1.523.2.8 @@ -1,7 +1,7 @@ # The LearningOnline Network # TCP networking package # -# $Id: lonnet.pm,v 1.523.2.5 2004/09/20 20:14:14 albertel Exp $ +# $Id: lonnet.pm,v 1.523.2.8 2004/09/27 19:02:11 albertel Exp $ # # Copyright Michigan State University Board of Trustees # @@ -795,11 +795,11 @@ sub getsection { if ($key eq $courseid.'_st') { $section=''; } my ($dummy,$end,$start)=split(/\_/,&unescape($value)); my $now=time; - if (defined($end) && ($now > $end)) { + if (defined($end) && $end && ($now > $end)) { $Expired{$end}=$section; next; } - if (defined($start) && ($now < $start)) { + if (defined($start) && $start && ($now < $start)) { $Pending{$start}=$section; next; } @@ -873,7 +873,7 @@ sub is_cached { # &logthis("Upping $mtime - ".$$cache{$id.'.time'}. # "$id because of $filename"); } else { - &logthis("Devalidating $filename $id - ".(time-($$cache{$id.'.time'}))); +# &logthis("Devalidating $filename $id - ".(time-($$cache{$id.'.time'}))); &devalidate_cache($cache,$id,$name); return (undef,undef); } @@ -3132,8 +3132,10 @@ sub log_query { sub fetch_enrollment_query { my ($context,$affiliatesref,$replyref,$dom,$cnum) = @_; my $homeserver; + my $maxtries = 1; if ($context eq 'automated') { $homeserver = $perlvar{'lonHostID'}; + $maxtries = 10; # will wait for up to 2000s for retrieval of classlist data before timeout } else { $homeserver = &homeserver($cnum,$dom); } @@ -3148,6 +3150,16 @@ sub fetch_enrollment_query { my $queryid=&reply("querysend:".$query.':'.$dom.':'.$ENV{'user.name'}.':'.$cmd,$homeserver); unless ($queryid=~/^\Q$host\E\_/) { return 'error: '.$queryid; } my $reply = &get_query_reply($queryid); + my $tries = 1; + while (($reply=~/^timeout/) && ($tries < $maxtries)) { + $reply = &get_query_reply($queryid); + $tries++; + } + if ( ($reply =~/^timeout/) || ($reply =~/^error/) ) { + &logthis('fetch_enrollment_query error: '.$reply.' for '.$dom.' '. + $ENV{'user.name'}.' for '.$queryid.' context: '.$context.' '. + $cnum.' maxtries: '.$maxtries.' tries: '.$tries); + } unless ( ($reply =~/^timeout/) || ($reply =~/^error/) ) { my @responses = split/:/,$reply; if ($homeserver eq $perlvar{'lonHostID'}) {