[PATCH 05/24] gitweb/lib - Regenerate entry if the cache file has size of 0
- From
Jakub Narebski <jnareb@gmail.com>
- Date
- Dec 6, 2010, 23:10 UTC
- Message-ID
- <1291677069-6559-6-git-send-email-jnareb@gmail.com>
- In-Reply-To
- <1291677069-6559-1-git-send-email-jnareb@gmail.com>
If the file representing cache entry has size 0 (in bytes), the cache entry is considered invalid, regardless of its freshness, even if cache expiration is turned off.
[jh: This is a quick, and thankfully easy, check to regenerate the cache if the resulting file is of size 0. This *SHOULDN'T* happen, but it is possible that it could and thus adding the check.]
Based-on-commit-by: John 'Warthog9' Hawley <warthog9@eaglescrag.net> Signed-off-by: Jakub Narebski <jnareb@gmail.com> --- This patch is unchanged from previos version of this series.
It is inspired by commit 22eb7af (Gitweb - Regenerate the cache if the resulting file has size of 0, 2010-09-23) on 'master' branch of git/warthog9/gitweb.git repository on git.kernel.org
The "gitweb: File based caching layer (from git.kernel.org)" in "Gitweb caching v7" by J.H. incudes the same test.
gitweb/lib/GitwebCache/SimpleFileCache.pm | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/gitweb/lib/GitwebCache/SimpleFileCache.pm b/gitweb/lib/GitwebCache/SimpleFileCache.pm index 790383d..bf74f7c 100644 --- a/gitweb/lib/GitwebCache/SimpleFileCache.pm +++ b/gitweb/lib/GitwebCache/SimpleFileCache.pm @@ -310,6 +310,8 @@ sub is_valid { # get its modification time my $mtime = (stat(_))[9] # _ to reuse stat structure used in -f test or die "Couldn't stat file '$path': $!"; + # cache entry is invalid if it is size 0 (in bytes) + return 0 unless ((stat(_))[7] > 0); # expire time can be set to never my $expires_in = $self->get_expires_in();
-- 1.7.3