cache issue
Bertrand Jacquin
beber at meleeweb.net
Sun Mar 23 15:06:42 CET 2014
Hi,
I'm getting some trouble with cgit on enlightenment platforms and cache
since some time, but at it seems to be reproductable with cgit 0.10 here
is a report.
The cache configuration look like this :
cache-root=../cache
cache-size=10000
cache-static-ttl=1
cache-dynamic-ttl=1
cache-repo-ttl=1
cache-root-ttl=1
cache-scanrc-ttl=5
* Main page
$ curl -sD - -o /dev/null https://git.enlightenment.org/ \
| grep -E '^(Date|Expires|Last-Modified): '
Date: Sun, 23 Mar 2014 14:02:08 GMT
Expires: Sun, 23 Mar 2014 14:02:52 GMT
Last-Modified: Sun, 23 Mar 2014 14:01:52 GMT
In this page, core/elementary.git is shown as last modified '58 min.'
ago.
$ curl -s https://git.enlightenment.org/ \
| sed -e 's;<html xmlns=.*>;<html>;' \
| xmlstarlet fo -o -D -R --html 2> /dev/null \
| xmlstarlet sel -T -t \
-m "html/body/div/div/table/tr/td/a[@title='core/elementary.git']" \
-v "../..//span[@class='age-mins']" -n
58 min.
* Repo page
$ curl -sD - -o /dev/null https://git.enlightenment.org/core/elementary.git/ \
| grep -E '^(Date|Expires|Last-Modified): '
Date: Sun, 23 Mar 2014 14:02:14 GMT
Expires: Mon, 10 Mar 2014 20:49:55 GMT
Last-Modified: Mon, 10 Mar 2014 20:48:55 GMT
As you see, the Expires header is wrong as the configuration state it
should not be older than 1 minute (cache-repo-ttl).
Here, master is the last modified branch and is shown as last modified
'3 hours' ago.
$ curl -s https://git.enlightenment.org/core/elementary.git/ \
| sed -e 's;<html xmlns=.*>;<html>;' \
| xmlstarlet fo -o -D -R --html 2> /dev/null \
| xmlstarlet sel -T -t \
-m "html/body/div/div/table/tr/td/a[@href='/core/elementary.git/log/']" \
-v "../..//span[@class='age-hours']" -n
3 hours
* All branch page
$ curl -sD - -o /dev/null https://git.enlightenment.org/core/elementary.git/refs/heads \
| grep -E '^(Date|Expires|Last-Modified): '
Date: Sun, 23 Mar 2014 14:02:22 GMT
Expires: Sun, 23 Mar 2014 14:03:22 GMT
Last-Modified: Sun, 23 Mar 2014 14:02:22 GMT
In this page, the master is showned as last modified '61 min.' ago.
$ curl -s https://git.enlightenment.org/core/elementary.git/refs/heads \
| sed -e 's;<html xmlns=.*>;<html>;' \
| xmlstarlet fo -o -D -R --html 2> /dev/null \
| xmlstarlet sel -t \
-m "html/body/div/div/table/tr/td/a[@href='/core/elementary.git/log/']" \
-v "../..//span[@class='age-mins']" -n
61 min.
How can we fix this ? I have some .lock files in the cache directory, is
there any way to flush the lock files after some period ? Also, to help
debugging this, it should be nice to have a X-Cgit-Cache: header
containing the cache file used given to user.
Once I remove '*.lock' in cache directory, 'Repo page' and 'All branch
page' are equal, but 'Main page' is not OK (ordered in the same as
before) :
62 min.
65 min.
65 min.
--
Beber
More information about the CGit
mailing list