[Varnish] #748: sess_timeout incorrectly used for in-flight requests

Varnish varnish-bugs at varnish-cache.org
Mon Aug 9 23:46:46 CEST 2010

#748: sess_timeout incorrectly used for in-flight requests
 Reporter:  xb95    |       Owner:  martin
     Type:  defect  |      Status:  new   
 Priority:  normal  |   Milestone:        
Component:  build   |     Version:  2.1.0 
 Severity:  minor   |    Keywords:        

Comment(by tsuna):

 To be more precise, the bug is in source:trunk/varnish-
 cache/bin/varnishd/cache_acceptor.c#4989 in vca_acct() around line 249
 where the value that's passed to {{{setsockopt()}}} to set the
 {{{SO_RCVTIMEO}}} is initialized incorrectly from

 {{{params->sess_timeout}}} is used correctly in the waiter code, e.g. in
 source:trunk/varnish-cache/bin/varnishd/cache_waiter_epoll.c#4989 in
 {{{vca_main()}}} around line 192.  It seems to me that someone added a
 timeout in {{{cache_acceptor.c}}} after {{{params->sess_timeout}}} was
 introduced, and the misleading name {{{sess_timeout}}} lead them to
 believe that this was the appropriate timeout to use.  This variable
 should really be renamed {{{idle_timeout}}} or something less confusing
 like that.

 The consequence of this bug, just to make it clearer to the readers not
 too familiar with Varnish, is that a default Varnish config will not wait
 more than 5 seconds for a request to complete.  5 seconds is a hell of a
 lot of time, which is why many people probably didn't notice, but it can
 happen.  Until this is fixed, the workaround is to up {{{sess_timeout}}}
 to whatever request timeout you think is reasonable (by passing {{{-p
 sess_timeout 25s}}} in argument to {{{varnishd}}} – if you want a 25s
 timeout for example).

Ticket URL: <http://varnish-cache.org/ticket/748#comment:2>
Varnish <http://varnish-cache.org/>
The Varnish HTTP Accelerator

More information about the varnish-bugs mailing list