Still running out of workspaces ? (sess_workspace=551077)

Simon Males sime at sime.net.au
Thu Mar 4 03:57:50 CET 2010


Hello all,

Whenever my Varnish (2.0.6) servers experience a traffic spike after a
couple days of uptime I see the following message in syslog:

Mar  4 13:26:09 cache02 varnishd[28881]: Child (28882) Panic message:
Missing errorhandling code in HSH_Prepare(), cache_hash.c line 199:
Condition((p) != 0) not true.thread = (cache-worker) Backtrace:
0x41d63a: /usr/sbin/varnishd [0x41d63a]   0x417ed8:
/usr/sbin/varnishd(HSH_Prepare+0xb8) [0x417ed8]   0x410eaa:
/usr/sbin/varnishd [0x410eaa]   0x41286d:
/usr/sbin/varnishd(CNT_Session+0x41d) [0x41286d]   0x427852:
/usr/sbin/varnishd(ESI_Deliver+0x282) [0x427852]   0x41fe3f:
/usr/sbin/varnishd(RES_WriteObj+0x25f) [0x41fe3f]   0x411a72:
/usr/sbin/varnishd [0x411a72]   0x4127cd:
/usr/sbin/varnishd(CNT_Session+0x37d) [0x4127cd]   0x41ec93:
/usr/sbin/varnishd [0x41ec93]   0x41f402: /usr/sbin/varnishd
[0x41f402] sp = 0x7fb225202008 {   fd = 63, id = 63, xid = 0,   client
= 124.168.62.14:17605,   step = STP_LOOKUP,   handling = hash,
restarts = 0, esis = 1   ws = 0x7fb225202080 { overflow     id =
"sess",     {s,f,r,e} = {0x7fb225202820,+551046,(nil),+551077},   },
http[req] = {     ws = 0x7fb225202080[sess]

I don't really know how to interpret this, but I see references to
"esi" and "session". ESI is used heavily and sess_workspace is 551077.
Below I have the Varnish startup parameters. Should I just continue to
increase the sess_workspace until it stops happening? I have also seen
mentioned online that a backend could be potentially dying though I
can't see to gather that from the above output.

DAEMON_OPTS="-a :80 \
             -T :6082 \
             -f /etc/varnish/default.vcl \
             -w 40,100,60 \
             -p obj_workspace=4096 \
             -p sess_workspace=551077 \
             -p listen_depth=8192 \
             -p log_hashstring=off \
             -p lru_interval=60 \
             -p sess_timeout=10 \
             -p shm_workspace=32768 \
             -p ping_interval=1 \
             -p thread_pools=4 \
             -p thread_pool_min=50 \
             -p srcaddr_ttl=0 \
             -p esi_syntax=0x00000003 \
             -s malloc,2G"

Thanks.

-- 
Simon Males



More information about the varnish-misc mailing list