gitweb/lib - Regenerate entry if the cache file has size of 0
authorJakub Narebski <jnareb@gmail.com>
Sun, 5 Dec 2010 20:48:50 +0000 (5 21:48 +0100)
committerJakub Narebski <jnareb@gmail.com>
Sun, 5 Dec 2010 20:48:50 +0000 (5 21:48 +0100)
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>
gitweb/lib/GitwebCache/SimpleFileCache.pm

index 790383d..bf74f7c 100644 (file)
@@ -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();