md5 fastcgi cache collisions
Maxim Dounin
mdounin at mdounin.ru
Tue Sep 25 00:27:00 UTC 2012
Hello!
On Sat, Sep 22, 2012 at 04:39:47PM -0400, Ian M. Evans wrote:
> Was looking at my error log and noticed a whole bunch of errors like this:
>
> 2012/09/22 15:52:26 [crit] 641#0: *4896016 cache file
> "/var/lib/nginx/fastcgicache/3/21/32d5a44032aadeeed2b1d027314ba213" has
> md5 collision, client: x.x.x.x, server: www.example.com, request: "GET
> /cr/denzelwashington/ HTTP/1.1", host: "www.example.com"
Is the file reported is the same in all errors?
> My fastcgi cache is setup as follows:
>
> fastcgi_cache_path /var/lib/nginx/fastcgicache levels=1:2
> keys_zone=MYCACHE:5m inactive=2h max_size=1g loader_files=1000
> loader_threshold=2000;
> map $http_cookie $no_cache { default 0; ~SESS 1; }
> fastcgi_cache_key "$scheme$request_method$host$request_uri";
> add_header X-My-Cache $upstream_cache_status;
>
> /cr is actually a php file called like this in the nginx.conf from a
> thread years ago:
>
> location ~ ^/cr(/.*$|$) {
> rewrite ^/cr(/.*$|$) /$1.php?mypath=$2 last;
> }
>
> Site's working fine...just wondering what's causing all the collisions.
Most likely it's a corrupted cache file. Looking into the cache
file should be enough to see if it's indeed corrupted.
Intresting question is to find out how the file was corrupted.
This may be either something "normal" like filesystem corruption
after power failure, or something in nginx. The later case might
need investigation.
If you just want to get rid of the messages you may try to remove
the cache file, it should fix things. Normal nginx behaviour is
to replace such currupted cache files with new responses, but it
looks like it doesn't work in your case, likely because responses
aren't cacheable.
Maxim Dounin
More information about the nginx
mailing list