httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Petr Lampa <>
Subject [BUG] garbage_coll() not called in proxy if filsystem full
Date Thu, 13 Mar 1997 10:10:04 GMT


When the cache filesystem is full, garbage_coll() is never called,
and the filesystem remains full indefinitely.


1. garbage_coll() is called only when proxy_cache_tidy() successfully
writes new cached file. When the filesystem is full, this never happens.
proxy_cache_tidy() returns prematurely, garbage_coll() at the end
of the proxy_cache_tidy() is not called, and cache remains full.

2. If $CACHEDIR/.time doesn't exist and the filesystem is full, garbage_coll()
ends prematurely and doesn't clean anything.

Suggested fix:

1. Move garbage_coll() call from proxy_cache_tidy() to http_handler() 
at the line after proxy_cache_tidy() call.

2. If creation of .time fails with the result ENOSPC, don't exit garbage_coll().
   This may result in several processes cleaning cache at the same time,
   but it's better then not to clean cache at all.

							Petr Lampa

Department of Computer Science and Engineering  E-mail:
Faculty of El. Engineering and Comp. Science	Phone: (+420 5) 7275/225,111
Technical University of Brno			Fax:  (+420 5) 41211141
Bozetechova 2, 612 66 Brno, Czech Republic

View raw message