[Varnish] #620: error message from varnish "died signal=6<131>Jan 11 03:50:17 varnishd[8785]: Child (8786) Panic message: Assert error in WSL_Flush()"
Varnish
varnish-bugs at projects.linpro.no
Sat Jan 30 02:53:27 CET 2010
#620: error message from varnish "died signal=6<131>Jan 11 03:50:17
varnishd[8785]: Child (8786) Panic message: Assert error in WSL_Flush()"
---------------------------+------------------------------------------------
Reporter: sprasad | Owner: kristian
Type: defect | Status: assigned
Priority: normal | Milestone:
Component: varnishd | Version: 2.0
Severity: normal | Resolution:
Keywords: varnish 2.0.4 |
---------------------------+------------------------------------------------
Comment (by chawl):
Similar on: Centos 5.4 x86_64, Apache/2.2.3 (no keepalive) backend, 2.0.6
compiled from source(forge).
{{{
Jan 29 18:22:45 ns1 varnishd[11028]: Child (11029) not responding to ping,
killing it.
Jan 29 18:23:18 ns1 last message repeated 7 times
Jan 29 18:23:18 ns1 varnishd[11028]: Child (11029) died signal=3
Jan 29 18:23:18 ns1 varnishd[11028]: child (6119) Started
Jan 29 18:23:18 ns1 varnishd[11028]: Child (6119) said Closed fds: 4 5 6
10 11 13 14
Jan 29 18:23:18 ns1 varnishd[11028]: Child (6119) said Child starts
Jan 29 18:23:18 ns1 varnishd[11028]: Child (6119) said managed to mmap
10737418240 bytes of 10737418240
Jan 29 18:23:18 ns1 varnishd[11028]: Child (6119) said Ready
}}}
no core dumps, and my simple vcl
{{{
backend default {
.host = "127.0.0.1";
.port = "8080";
.first_byte_timeout = 300s;
.between_bytes_timeout = 120s;
.max_connections = 35;
}
sub vcl_recv {
set req.grace = 30s;
if (req.url ~ "cron.php") {
return (pass);
}
if (req.url ~ ".*/server-status$") {
error 403 "Hmmm...";
}
if (req.url ~ "(/wp-login.php|/munin/localhost/)") {
return (pipe);
}
if (req.request == "GET" && req.url ~
"(\.[gG][iI][fF])|(\.[jJ][pP][eE]?[gG])|(\.[pP][nN][gG])|(\.[fF][lL][vV])|(\.[mM][pP]4)|(\.[zZ][iI][pP])|(\.[rR][aA][rR])|(\.[cC][sS][sS])|(\.[sS][wW][fF])|(\.[wW][mM][vV])|(\.[sS][wW][fF])|(\.[jJ][sS])$")
{
unset req.http.cookie;
lookup;
}
}
sub vcl_hash {
if (req.http.Cookie) {
set req.hash += req.http.Cookie;
}
}
sub vcl_hit {
if (!obj.cacheable) {
pass;
}
if (req.url ~ "__REFRESH__$") {
set obj.ttl = 0s;
return (restart);
}
deliver;
}
sub vcl_fetch {
set obj.grace = 30s;
if (req.request == "GET" && req.url ~
"(\.[gG][iI][fF])|(\.[jJ][pP][eE]?[gG])|(\.[pP][nN][gG])|(\.[fF][lL][vV])|(\.[mM][pP]4)|(\.[zZ][iI][pP])|(\.[rR][aA][rR])|(\.[cC][sS][sS])|(\.[sS][wW][fF])|(\.[wW][mM][vV])|(\.[sS][wW][fF])|(\.[jJ][sS])$")
{
unset obj.http.Set-Cookie;
set obj.cacheable = true;
}
if (obj.cacheable) {
unset obj.http.expires;
set obj.http.cache-control = "max-age = 900";
set obj.ttl = 1w;
set obj.http.magicmarker = "1";
deliver;
}
}
sub vcl_deliver {
if (resp.http.magicmarker) {
unset resp.http.magicmarker;
set resp.http.age = "0";
}
}
}}}
Crashes once or twice a day and have no correlation with loads, crons,
backend restart etc.
I suspect "set obj.ttl = 0s;return (restart);" without hard evidence
anyway, but a crash occurred once just then I called this line to refresh
an object in the cache. May be a coincidence, but a daily crash is hard to
be coincided with such a rare call.
What's next? Same crash was happened many times with 2.0.5 which is
installed from rpmforge repo, and that's why I attempted to compile a
fresh 2.0.6 from source.
Tx.
--
Ticket URL: <http://varnish-cache.org/ticket/620#comment:4>
Varnish <http://varnish.projects.linpro.no/>
The Varnish HTTP Accelerator
More information about the varnish-bugs
mailing list