[LON-CAPA-admin] Resources not replicating
Stuart Raeburn
raeburn at msu.edu
Mon Nov 18 19:17:11 EST 2013
Hi,
> Recently, I had to switch servers when one suffered from a hard disk
> failure.
Was the "new" server previously used as a LON-CAPA server?
If so, what was switched on the access server?
IP address, hostname, lonHostID?
> <font color="blue">WARNING: LWP get: 403 Forbidden:
> /home/httpd/html/res/....*.problem</font>
That warning is reported from &repcopy() in
/home/httpd/lib/perl/Apache/lonnet.pm on the LON-CAPA access server.
The URL which is being requested from the remote server (presumably
the library server for the fsu domain) should be:
http://loncapa10.fsu.edu/raw/....*.problem
The entry in /etc/httpd/conf/loncapa_apache.conf which controls access
to /raw is:
<LocationMatch "^/+raw.*">
PerlAccessHandler Apache::lonracc
</LocationMatch>
The handler routine in /home/httpd/lib/perl/Apache/lonracc.pm will
return a FORBIDDEN (403 return code) from the following code:
(a)
my $reqhost = $r->get_remote_host(REMOTE_NOLOOKUP);
my @hostids= &Apache::lonnet::get_hosts_from_ip($reqhost);
if (!@hostids && $reqhost ne '127.0.0.1' ) {
$r->log_reason("Unable to find a host for ".
$r->get_remote_host(REMOTE_NOLOOKUP));
return FORBIDDEN;
}
and (b)
foreach my $id (@hostids) {
my $uri =$r->uri;
if (($filename=~/\.meta$/) ||
($uri=~m|^/raw/uploaded|) ||
(-e "$filename.$id") ||
&subscribed($filename,$id) ) {
return OK;
} else {
$return=FORBIDDEN;
push(@ids,$id);
}
}
if ($return == FORBIDDEN) {
$r->log_reason(join(':', at ids)." not subscribed", $r->filename);
return FORBIDDEN;
}
If you look in the Apache error log (/etc/httpd/logs/error_log or
/etc/httpd/logs/ssl_error_log) on the library server you should find
which of (a) or (b) are responsible -- "Unable to find a host" or "not
subscribed".
The fact that the .meta files appear to be replicated but the other
files are not suggests that:
&subscribed($filename,$id)
is returning 0.
The subscribed routine in lonracc.pm returns 0 in the following cases:
(a) No $filename.subscription file found
or
(b) Invalid IP address
my $hostname=&Apache::lonnet::hostname($id);
my (undef,undef,undef,undef,$ip) = gethostbyname($hostname);
return 0 if (length($ip) != 4);
or
(c) The expected pattern for: lonHostID:IP address for the requesting
server (the access server) is not found in the subscription file for
the resource on the library server
$ip=inet_ntoa($ip);
my $expr='^'.quotemeta($id).':'.quotemeta($ip).':';
my $found=0;
if (my $sh=Apache::File->new("$filename.subscription")) {
while (my $subline=<$sh>) { if ($subline =~ /$expr/) { $found=1; } }
$sh->close();
}
return $found;
I would check that:
my $reqhost = $r->get_remote_host(REMOTE_NOLOOKUP);
my @hostids= &Apache::lonnet::get_hosts_from_ip($reqhost);
return the correct values when your access server requests a file in
/raw from the library server.
I would also check that:
my $hostname=&Apache::lonnet::hostname($id);
my (undef,undef,undef,undef,$ip) = gethostbyname($hostname);
on the library server return the expected hostname and IP address for
the lonHostID of the requesting access server.
I would also check the contents of the $filename.subscription file in
/home/httpd/html/res/fsu on the library server for one of the files
which fails replication.
One thing I note about the entries in the cluster tables for the fsu
servers is that they are all identified as using http, but web
requests to the fsu servers get rewritten to https, and the identity
of the Apache SSL certificates installed there can not be verified,
(and I need to agree to an exception), when pointing a web browser at
any of the fsu LON-CAPA servers.
Stuart Raeburn
LON-CAPA Academic Consortium
Quoting hkng <hkng at fsu.edu>:
> Hi,
>
> Recently, I had to switch servers when one suffered from a hard disk
> failure. The new server does not replicate the resources though the meta
> files are under the /home/httpd/html/res/ directories. Checking lonnet.log,
> there are a number of messages that say
>
> <font color="blue">WARNING: LWP get: 403 Forbidden:
> /home/httpd/html/res/....*.problem</font>
>
> 403 indicates file permission (?) but I cannot determine while file? Any
> pointers?
>
> Thanks,
> -hk
>
More information about the LON-CAPA-admin
mailing list