Breaking Varnish
Niall O'Higgins
niallo at metaweb.com
Fri Jan 23 23:29:47 CET 2009
Hi,
Regarding:
On Wed, Jan 21, 2009 at 02:05:55PM -0800, Tim Kientzle wrote:
> On Jan 21, 2009, at 2:02 PM, Poul-Henning Kamp wrote:
>>> Under heavy load, we're seeing a lot of segfaults and
>>> assertion failures. I've pasted an excerpt below of
>>> two of the issues we've seen using Varnish 2.0.2 on Linux
>>> 2.6.21 kernel with the default VCL (using command-line options
>>> to set the listen address and the addresses of the two back-end
>>> servers).
>>
>> Hi Tim,
>>
>> Can I get you to take -trunk for a spin ?
>>
>> At least the second of the problems you pasted I'm pretty sure I
>> have nailed recently and the first one could easily be the same one
>> in a different disguise.
I've re-run the load test against varnish-trunk. Trunk is better
behaved, but I now get output like this over and over:
child (19731) Started
Child (19731) said Closed fds: 4 7 8 10 11
Child (19731) said Child starts
Child (19731) said managed to mmap 49929912320 bytes of 49929912320
Child (19731) said Ready
Child (19731) not responding to ping, killing it.
Child (19731) not responding to ping, killing it.
Child (19731) not responding to ping, killing it.
Child (19731) died signal=3
Child cleanup complete
And varnish eventually exits with this message:
child (19773) Started
Pushing vcls failed: CLI communication error
I am running varnishd like so:
sbin/varnishd -f etc/varnish/default.vcl -F -a'0.0.0.0:8101'
My configuration file contains:
director www_director round-robin {
{ .backend = { .host = "appserver1"; .port = "8105"; } }
{ .backend = { .host = "appserver2"; .port = "8105"; } }
}
sub vcl_recv {
if (req.http.host ~ "^varnishserver$") {
set req.backend = www_director;
}
}
If there are other details which might help diagnose this, let me know and I'll
try to provide them.
--
Niall O'Higgins
Software Engineer
Metaweb Technologies, Inc.
More information about the varnish-misc
mailing list