[Varnish] #1815: Child died on pipe request
Varnish
varnish-bugs at varnish-cache.org
Mon Feb 22 18:21:48 CET 2016
#1815: Child died on pipe request
-------------------------+-----------------------
Reporter: jferjan | Owner: Dridi
Type: defect | Status: assigned
Priority: normal | Milestone:
Component: varnishd | Version: 4.0.3
Severity: major | Resolution:
Keywords: pipe, panic |
-------------------------+-----------------------
Changes (by Dridi):
* status: new => assigned
Comment:
This doesn't look like a duplicate because in #1730 the assertion triggers
after a failed getfd, whereas in this case it's before.
I have tried to reproduce it and AFAICT the only VCL way to end up with a
NULL {{{(struct busyobj).director}}} is to either set the
{{{req.backend_hint}}} or {{{bereq.backend}}} to NULL which is not allowed
by the VCL compiler unless you use a VMOD? When setting a NULL
{{{bereq.backend}}} Varnish seems to recover and pick the default backend.
I narrowed it down to this:
{{{
$ cat bin/varnishtest/tests/r01815.vtc
varnishtest "backend unreachable on piped request"
server s1 {
rxreq
txresp
} -start
varnish v1 -vcl+backend {
import ${vmod_debug};
sub vcl_recv {
set req.backend_hint = debug.no_backend();
}
} -start
client c1 {
txreq -req PROPFIND
rxresp
expect resp.status == 200
} -run
}}}
It looks an awful lot like #1501 for piped requests :)
jferjan, are you using a director? Can you share your VCL or confirm it
may be a director failing to pick a backend?
phk, it looks like something Varnish should handle properly with either a
synthetic 500 response or picking the default backend.
Thoughts?
--
Ticket URL: <https://www.varnish-cache.org/trac/ticket/1815#comment:3>
Varnish <https://varnish-cache.org/>
The Varnish HTTP Accelerator
More information about the varnish-bugs
mailing list