Incomplete files in 3.0.x
Reinis Rozitis
r at roze.lv
Thu Nov 24 17:34:22 CET 2011
Hello,
I have been using 2.1.5 for quite some time in a heavy environment and everything works as expected.
Now I'm trying to upgrade to 3.0.2 (just because of persistent storage possibility on a ssd disk) but in my tests I experience
strange behaviour of Varnish - as it randomly caches incomplete image files - which display like half size on browsers.
It does happen on randomly pattern - when the storage file is deleted or in malloc case just restarted out of 40-50 requests I will
sure get one file which is corrupted, but it doesn't reproduce on the same files.
So I have no idea where to start digging or am I doing something wrong - as in the config/startup options are not valid anymore for
3.0.x ?
The config and startup is pretty simple and taken out of 2.1.x instances which have been working fine for a year with the minor
changes of beresp.cachable replaced with beresp.ttl and hash_data
varnishd -f default.vcl -s persistent,/tmp/varnish,10m -h classic,500009 -p connect_timeout=60 -p thread_pools=8 -p
thread_pool_min=100 -p thread_pool_max=5000 -thread_pool_add_delay=2 -p cli_timeout=50 -p session_linger=120 -p lru_interval=20
(-s persistent,/tmp/varnish,10m / -s malloc,10m - are just for testing purposes the original 2.1 instances run with 64Gb malloc)
backend default {
.host = "10.0.10.1";
.port = "8080";
.connect_timeout = 60s;
.first_byte_timeout = 60s;
.between_bytes_timeout = 60s;
}
sub vcl_recv {
set req.grace = 30s;
unset req.http.Cookie;
unset req.http.Accept-Encoding;
unset req.http.X-Forwarded-For;
unset req.http.Cache-Control;
set req.url = regsub(req.url, "\?.*", "");
}
sub vcl_hash {
hash_data(req.url);
return (hash);
}
sub vcl_fetch {
remove beresp.http.Server;
set beresp.grace = 30s;
if (beresp.ttl <= 0s) {
return (hit_for_pass);
}
if (beresp.ttl < 5m) {
set beresp.ttl = 5m;
}
return (deliver);
}
sub vcl_deliver {
remove resp.http.Via;
if (obj.hits > 0) {
set resp.http.X-Cache = "HIT";
}
return (deliver);
}
sub vcl_error {
if (obj.status == 503 && req.restarts < 5) {
return (restart);
}
}
wbr
rr
More information about the varnish-misc
mailing list