next up previous contents index
Next: 7 The Replicator Up: 6 The Object Cache Previous: 6.10 Meanings of log

6.11 Troubleshooting

   

Symptom
The cache refuses to start, because the port number is tied up.

Solution
Usually this means that you killed the cached process recently, and the UNIX operating system hasn't timed out the port number yet. Wait a minute and try starting cached again. Finally, it may be that your cache_dns_program variable in the cached.conf file is incorrectly set.

Symptom
Once I try to retrieve an object from a site that is down, when I try again the cache immediately tells me it is down, seemingly without trying again.

Solution
  This happens because the Harvest cache employs negative caching for failed Domain Naming System (DNS) lookups and object retrievals. In other words, after a failure occurs, it will not try again for a configurable period of time (the default is 5 minutes; it can be set from the negative_ttl variable in your cached.conf file). Note that your browser's Reload button will have no effect on the negative DNS cache.

 

Symptom
The Reload button doesn't cause stale images and other data to be reloaded.

Solution
This is a shortcoming of Web browsers -- they don't give you a way to ``point'' the Reload button at inlined images, etc.

Symptom
When I get a temporary name lookup failure, the cache thinks the object still can't be looked up when I try again later.

Solution
For performance and scaling reasons, we cache negative results from DNS lookups for 5 minutes (and, the Reload button has no effect on the negative DNS cache). Note that this is not a configuration file settable parameter (i.e., you would have to change the source code to change it).

As a work-around, the Harvest Cache includes a little program called "client" that will let you reload stale objects as follows:

        Usage: client [-nr] [-c hostname] [-p port] url
               -n don't print object to stdout.
               -r force reload.
               -c get object from hostname default is localhost.
               -p use port as a cached port number.  Default is 3128.

So, if you know the URL of the inlined image you can reload it. This is not a very good solution (e.g., you need to view the source of the object to find the URL that needs to be reloaded, and then run 'client' from the shell to do the reload), but there's not much we can do to make it more convenient as long as the Web browsers don't provide better support for reloads.

Solution
A source code patch is available in the contrib/Mosaic-2.4+cached-fixes/ directory, under the top-level directory of each Harvest software distribution sites, for an improved Reload button for NCSA Mosaic and Lynx. This patch will allow you to force re-retrieval of objects through the cache. Note that the Reload button already provides this functionality in Netscape.

   

Symptom
The cache fails with FTP URLs.

Solution
This is usually because you do not have the ftpget.pl program installed properly. Verify that ftpget.pl is in your PATH when you execute cached (or that the ftpget.pl program is explicitly listed in the cache_ftp_program variable in your cached.conf file). You can verify that ftpget.pl works by running:

        % ftpget.pl - ftp.dec.com / I anonymous harvest-user@

   

Symptom
Gopher menus retrieved through the cache appear incorrectly formatted from within my WWW browser.

Solution
This is an alignment bug common to at least NCSA Mosaic version 2.4, Spyglass Mosaic, Netscape 1.0, and Lynx. We have informed Netscape Communications Inc., Spyglass Inc, and NCSA about this problem. In the mean time, you can repair the problem with a patch to Mosaic, which we make available in the contrib/Mosaic-2.4+cached-fixes/ directory under the top-level directory of each Harvest software distribution sites. Or, you can disable Gopher caching by unsetting the Gopher proxy environment variable (or the Gopher proxy preference setting from within Netscape).

   

Symptom
My cached process uses up more memory than what I specified in the cache_mem variable in cached.conf.

Solution
The cache_mem variable specifies how much memory is to be used by the cache's hot object RAM cache (see [7] for technical details). When the cache reaches this level of memory consumption it will not use any more data for hot objects, but it will continue to store meta data for cached objects (including those stored only on disk), at about 80-110 bytes per object. The memory size will thus continue to grow until the disk cache becomes full. In a future version of Harvest we may move meta data for cold objects to disk, and make cache_mem into a hard limit on the memory size of the cached process. Note that you can control how much memory is used by adjusting the cache_mem_high and cache_mem_low variables in cached.conf. When the amount of memory reaches the level specified in cache_mem_high, the cache discards hot objects from the RAM cache until usage reaches the level specified in cache_mem_low.

Symptom
The cache aborts because it can't bind to the ASCII port.

Solution
Check to see that no other process is using this port. If not, the port will become available after a short wait, typically less than 5 minutes. As background, we elected to enable port locking to prevent people from accidentally starting two cache processes. As a consequence, sometimes you can't bind to a port while TCP is going through the 3-way handshake necessary to terminate a previous connection.

Symptom
The cache quits silently.

Solution
The cache attempts to write fatal errors into /dev/console; if it cannot, it will exit silently when it encounters fatal errors. Also check that you've created the cache's working directory and that this directory is owned by the effective user id on which your cache is running.

Symptom
I changed an object, but the cache keeps returning the old version.

Solution
Try reloading the cache with the ``reload'' button on your Mosaic or Netscape client. The cache implements negative caching for 5 minutes, so you may have to wait up to 5 minutes to fetch an object if you fetched it once before the object was created. If the object is an image, note that Mosaic can't issue a reload. If you really want to flush an image, use netscape or the cache's reload program.

Symptom
I launched the cache or httpd-accelerator, and they don't work right.

Solution
Did you setenv HARVEST_HOME?

Symptom
I tried to install the httpd-accelerator, but it won't let me bind to port 80.

Solution
You have to start the httpd-accelerator as root if you plan to bind to a port numbered lower than 1024.

Symptom
The cache/httpd-accelerator works for everything but FTP.

Solution
Since the cache changes effective UID to ``nobody'' or ``daemon'', check that your Perl libraries are all set to permission ``r-xr-xr-x''.

 

       


next up previous contents index
Next: 7 The Replicator Up: 6 The Object Cache Previous: 6.10 Meanings of log



Duane Wessels
Wed Jan 31 23:46:21 PST 1996