PIPE asserts
Václav Bílek
v.bilek at 1art.cz
Tue Sep 22 15:50:45 CEST 2009
i redefined vcl_recv this way:
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. */
return (error);
}
and get assert like this:
varnishd[7432]: Child (26652) Panic message: Assert error in
http_StatusMessage(), cache_http.c line 111:#012 Condition(status >=
100 && status <= 999) not true. errno = 104 (Connection reset by peer)
thread = (cache-worker)sp = 0x7f71469a7008 {#012 fd = 393, id = 393,
xid = 1393611480,#012 client = 94.246.126.148:35576,#012 step =
STP_ERROR,#012 handling = error,#012 ws = 0x7f71469a7078 { #012 id
= "sess",#012 {s,f,r,e} = {0x7f71469a7808,,+460,(nil),+16384},#012
},#012 worker = 0x7f710977bbe0 {#012 },#012 vcl = {#012
srcname = {#012 "input",#012 "Default",#012 },#012
},#012 obj = 0x7f780f4b1000 {#012 refcnt = 1, xid = 1393611480,#012
ws = 0x7f780f4b1028 { #012 id = "obj",#012 {s,f,r,e} =
{0x7f780f4b1358,,+78,(nil),+7336},#012 },#012 http = {#012 ws
= 0x7f780f4b1028 { #012 id = "obj",#012 {s,f,r,e} =
{0x7f780f4b1358,,+78,(nil),+7336},#012 },#012 hd = {#012
"Date: Tue, 22 Sep 2009 13:06:36 GMT",#012 "Server:
Varnish",#012 "Retry-After: 0",#012 },#012 },#012 len
= 0,#012 store = {#012 },#012 },#012},#012
is there any way how to block such bad request?
Václav Bílek napsal(a):
> Hello
>
> On high load we are geting asserts (and varnish restarts) like this:
>
> varnishd[23515]: Child (7569) Panic message: Assert error in Tcheck(),
> cache.h line 648:#012 Condition((t.e) != 0) not true. thread =
> (cache-worker)sp = 0x7f76c5875008 {#012 fd = 611, id = 611, xid =
> 778413112,#012 client = 62.141.2.8:56778,#012 step = STP_PIPE,#012
> handling = pipe,#012 err_code = 400, err_reason = (null),#012 ws =
> 0x7f76c5875078 { #012 id = "sess",#012 {s,f,r,e} =
> {0x7f76c5875808,,+40,(nil),+16384},#012 },#012 worker =
> 0x7f7694353be0 {#012 },#012 vcl = {#012 srcname = {#012
> "input",#012 "Default",#012 },#012 },#012},#012
>
> We do not PIPE anything explicitly ... after a day of run we have tens
> of passes in hundreds millions of requests.
> Is there any way how to absolutely disable piping of requests?
> What kind of requests is piped?
>
> Is there anything I can do for debuging this?
>
> Vaclav Bilek
>
>
> _______________________________________________
> varnish-misc mailing list
> varnish-misc at projects.linpro.no
> http://projects.linpro.no/mailman/listinfo/varnish-misc
More information about the varnish-misc
mailing list