[Varnish] #1675: Condition((vbc->in_waiter) != 0) not true.
Varnish
varnish-bugs at varnish-cache.org
Tue May 12 17:44:05 CEST 2015
#1675: Condition((vbc->in_waiter) != 0) not true.
----------------------------------+----------------------------------
Reporter: zaterio@… | Owner: phk
Type: defect | Status: needinfo
Priority: normal | Milestone: Varnish 4.0 release
Component: varnishd | Version: trunk
Severity: normal | Resolution:
Keywords: in_waiter tcp_handle |
----------------------------------+----------------------------------
Comment (by zaterio@…):
{{{
0 Debug - "------> Handler fd 105 in_w 1 state 0x2 ev 1 have_been
0"
0 Debug - "------> Handler fd 105 in_w 0 state 0x2 ev 2 have_been
1"
}}}
both status are VBC_STATE_USED, the first status is changed to the second
status by:
{{{
case VBC_STATE_USED:
vbc->in_waiter = 0;
vbc->have_been_in_waiter = 1;
break;
}}}
And then, when the second handler hits:
{{{
AN(vbc->in_waiter);
}}}
Fails because in_waiter = 0.
vbc->in_waiter = 0; must be changed to non zero value in case
VBC_STATE_USED.
In my scenario states "in_w = 0" are rare, and when they appear varnish
dies
For example handlers after 2 hours running, shows no "in_waiter = 0":
{{{
cat /home/out.log |grep Handler|awk '{print $8" "$9" "$10" "$11" "$12"
"$13" "$14" "$15}'|sort|uniq -c|sort -n
2 in_w 1 state 0x4 ev 1 have_been 0"
3 in_w 1 state 0x4 ev 1 have_been 1"
14 in_w 1 state 0x1 ev 2 have_been 0"
18 in_w 1 state 0x8 ev 2 have_been 0"
235 in_w 1 state 0x8 ev 2 have_been 1"
809 in_w 1 state 0x2 ev 2 have_been 0"
8863 in_w 1 state 0x2 ev 2 have_been 1"
}}}
--
Ticket URL: <https://www.varnish-cache.org/trac/ticket/1675#comment:13>
Varnish <https://varnish-cache.org/>
The Varnish HTTP Accelerator
More information about the varnish-bugs
mailing list