died signal=6 , panic and restart every few sec. to min.
M L
ml at tinwong.com
Mon Sep 21 00:45:56 CEST 2009
Hi David
Thanks for reply i never modifying vcl_hit
my vcl
backend default {
.host = "10.0.0.5";
.port = "80";
.connect_timeout = 1s;
.first_byte_timeout = 5s;
.between_bytes_timeout = 2s;
}
backend srv1 {
.host = "10.0.0.5";
.port = "80";
.connect_timeout = 1s;
.first_byte_timeout = 5s;
.between_bytes_timeout = 2s;
}
backend srv2 {
.host = "10.0.0.5";
.port = "80";
.connect_timeout = 1s;
.first_byte_timeout = 5s;
.between_bytes_timeout = 2s;
}
acl purge {
"localhost"; "127.0.0.1";
}
#recv
sub vcl_recv {
if (req.http.host ~ "www.foobar.com") {
set req.http.host = "www.foobar.com";
if (req.restarts == 0) {
set req.backend = srv1;
} else if (req.restarts == 1) {
set req.backend = allhabit2;
}
}elseif ( req.http.host ~ "www.zoobar.com") {
set req.http.host = "www.zoobar.com";
if (req.restarts == 0) {
set req.backend = srv1;
} else if (req.restarts == 1) {
set req.backend = srv2;
}
}elseif ( req.http.host ~ "www.yoobar.com") {
set req.http.host = "www.yoobar.com";
if (req.restarts == 0) {
set req.backend = srv1;
} else if (req.restarts == 1) {
set req.backend = srv2;
}
}elseif ( req.http.host ~ "218.242.39.202") {
set req.http.host = "118.142.39.202";
if (req.restarts == 0) {
set req.backend = srv1;
} else if (req.restarts == 1) {
set req.backend = srv2;
}
}elseif ( req.http.host ~ "218.242.39.203") {
set req.http.host = "118.142.39.203";
if (req.restarts == 0) {
set req.backend = srv1;
} else if (req.restarts == 1) {
set req.backend = srv2;
}
}elseif ( req.http.host ~ "204.186.59.41") {
set req.http.host = "204.186.59.41";
if (req.restarts == 0) {
set req.backend = srv1;
} else if (req.restarts == 1) {
set req.backend = srv2;
}
}elseif ( req.http.host ~ "204.126.59.45") {
set req.http.host = "204.126.59.45";
if (req.restarts == 0) {
set req.backend = srv1;
} else if (req.restarts == 1) {
set req.backend = srv2;
}
}else{
error 401 "Bad Domain";
}
#set req.grace = 30s;
# Add a unique header containing the client address
remove req.http.X-Forwarded-For;
set req.http.X-Forwarded-For = client.ip;
# [...]
if (req.request == "PURGE") {
if(!client.ip ~ purge) {
error 405 "Not Allowed";
} lookup;}
#if (req.request != "GET" && req.request != "HEAD") {
# pipe;
# }
#if (req.request == "POST") {
# pass;
# }
if (req.http.Expect) {
pipe;
}
if (req.request != "GET" &&
req.request != "HEAD" &&
req.request != "PUT" &&
req.request != "POST" &&
req.request != "TRACE" &&
req.request != "OPTIONS" &&
req.request != "DELETE") {
/* Non-RFC2616 or CONNECT which is weird. */
pipe;
}
if (req.request != "GET" && req.request != "HEAD") {
/* We only deal with GET and HEAD by default */
pass;
}
if (req.http.Cache-Control ~ "no-cache") {
pass;
}
if (req.http.Authenticate) {
pass;
}
#if (req.http.Cookie) {
# pass;
# }
if (req.url ~
"\.(zip|ico|dat|torrent|png|gif|jpg|swf|css|js|bmp|bz2|tbz|mp3|ogg)$") {
unset req.http.cookie;
lookup;
# unset req.http.authenticate;
}
if (req.http.Accept-Encoding) {
if (req.url ~
"\.(zip|ico|dat|torrent|png|gif|jpg|swf|css|js|bmp|bz2|tbz|mp3|ogg)$") {
# No point in compressing these
remove req.http.Accept-Encoding;
} elsif (req.http.Accept-Encoding ~ "gzip") {
set req.http.Accept-Encoding = "gzip";
} elsif (req.http.Accept-Encoding ~ "deflate") {
set req.http.Accept-Encoding = "deflate";
} else {
# unkown algorithm
remove req.http.Accept-Encoding;
}
}
} #end recv
sub vcl_hash {
set req.hash += req.url;
set req.hash += req.http.host;
#set req.hash += req.http.cookie;
#set req.hash += server.ip;
hash;
} #end hash
# sub vcl_hash {
# set req.hash += req.url;
# if (req.http.host) {
# set req.hash += req.http.host;
# } else {
# set req.hash += server.ip;
# }
# hash;
# }
#if (req.http.Accept-Encoding ~ "gzip") {
#set req.hash += "gzip";
#}
#else if (req.http.Accept-Encoding ~ "deflate") {
#set req.hash += "deflate";
#}
#hash;
#} #end hash
#sub vcl_hash {
# set req.hash += req.url;
# set req.hash += req.http.host;
# if (req.http.Accept-Encoding ~ "gzip") {
# set req.hash += "gzip";
# }
# else if (req.http.Accept-Encoding ~ "deflate") {
# set req.hash += "deflate";
# }
#}
# strip the cookie before the image is inserted into cache.
sub vcl_fetch {
#if (obj.status != 200 && obj.status != 302) {
#restart;
#}
if(obj.http.Set-Cookie){
pass;
}
if(obj.http.Pragma ~ "no-cache" ||
obj.http.Cache-Control ~ "no-cache" ||
obj.http.Cache-Control ~ "private"){
pass;
}
# set obj.grace = 30s;
if (req.url ~
"\.(zip|ico|dat|torrent|png|gif|jpg|swf|css|js|bmp|bz2|tbz|mp3|ogg)$") {
unset obj.http.set-cookie;
set obj.ttl = 1w;
}
# if (req.request == "GET" && req.url ~ "\.(txt|js)$") {
# set obj.ttl = 1d;
# } else {
# set obj.ttl = 1w;
# }
if (req.url ~
"\.(zip|ico|dat|torrent|png|gif|jpg|swf|css|js|bmp|bz2|tbz|mp3|ogg)$") {
unset obj.http.expires;
set obj.http.cache-control = "max-age=315360000, public";
set obj.ttl = 1w;
set obj.http.magicmarker = "1";
}
Thx
TW
# if (obj.cacheable) {
# /* Remove Expires from backend, it's not long
enough */
# unset obj.http.expires;
# /* Set the clients TTL on this object */
# set obj.http.cache-control = "max-age=315360000,
public";
# /* Set how long Varnish will keep it */
# set obj.ttl = 1w;
# /* marker for vcl_deliver to reset Age: */
# set obj.http.magicmarker = "1";
# }
} #fetch end
sub vcl_deliver {
if (resp.http.magicmarker) {
/* Remove the magic marker */
unset resp.http.magicmarker;
/* By definition we have a fresh object */
set resp.http.age = "0";
if (obj.hits > 0) {
set resp.http.X-Cache = "HIT";
} else {
set resp.http.X-Cache = "MISS";
}
}
} #deliver end
sub vcl_pipe {
# http://varnish.projects.linpro.no/ticket/451
# This forces every pipe request to be the first one.
set bereq.http.connection = "close";
} #pipe end
sub vcl_error {
if (obj.status == 503) {
restart;
}
} #error end
On Mon, Sep 21, 2009 at 6:33 AM, David Birdsong <david.birdsong at gmail.com>wrote:
> On Sun, Sep 20, 2009 at 3:29 PM, M L <ml at tinwong.com> wrote:
> > Plz help, anyone have idea howto solve this problem ?
> >
> > varnishd -a 0.0.0.0:80 -T 127.0.0.1:3500 -p client_http11=on -f vconf2
> -s
> > file,/usr/local/varnish/cache.bin,80G -h classic,500009 -p
> listen_depth=4096
> > -p obj_workspace=32768 -p sess_workspace=32768 -p send_timeout=327
> >
> > I got this message from /var/log/messages
> >
> > Sep 20 21:26:36 x2 varnishd[21933]: Child (21934) died signal=6 Sep 20
> > 21:26:36 x2 varnishd[21933]: Child (21934) Panic message: Assert error in
> > VRT_IP_string(), cache_vrt.c line 693: Condition((p =
> WS_Alloc(sp->http->ws,
> > len)) != 0) nlient = 211.74.185.119:2909, step = STP_RECV, handling =
> error,
> > err_code = 503, err_reason = (null), ws = 0x2abeb5926078 { overflow id =
> > "sess", {s,f,r,e} = cname = { "input", "Default", }, }, },
> >
> > Sep 20 21:26:36 x2 varnishd[21933]: child (21952) Started Sep 20 21:26:36
> x2
> > varnishd[21933]: Child (21952) said Closed fds: 4 5 8 9 11 12 Sep 20
> > 21:26:36 x2 varnishd[21933]: Child (21952) said Child starts Sep 20
> 21:26:36
> > x2 varnishd[21933]: Child (21952) said managed to mmap 85899345920 bytes
> of
> > 85899345920 Sep 20 21:26:36 x2 varnishd[21933]: Child (21952) said Ready
> Sep
> > 20 21:28:10 x2 varnishd[21933]: Child (21952) died signal=6 Sep 20
> 21:28:10
> > x2 varnishd[21933]: Child (21952) Panic message: Assert error in
> > WS_Release(), cache_ws.c line 170: Condition(bytes <= ws->e - ws->f) not
> > true. thread = (10:32759, step = STP_RECV, handling = error, err_code =
> 503,
> > err_reason = (null), ws = 0x2abeb5a65078 { id = "sess", {s,f,r,e} =
> > {0x2abeb5a65808+32738,+32 "Default", }, }, },
>
> what about your vcl file?
>
> are you modifying the object in vcl_hit at all?
>
> >
> > Thanks alot
> >
> > T W
> >
> > _______________________________________________
> > varnish-misc mailing list
> > varnish-misc at projects.linpro.no
> > http://projects.linpro.no/mailman/listinfo/varnish-misc
> >
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://projects.linpro.no/pipermail/varnish-misc/attachments/20090921/326d3586/attachment.htm
More information about the varnish-misc
mailing list