[Varnish] #818: Incorrectly handling 304 responses from an HTTP/1.1 backend with keepalive enabled

Varnish varnish-bugs at varnish-cache.org
Mon Nov 22 21:34:27 CET 2010


#818: Incorrectly handling 304 responses from an HTTP/1.1 backend with keepalive
enabled
-------------------+--------------------------------------------------------
 Reporter:  lew    |        Type:  defect
   Status:  new    |    Priority:  normal
Milestone:         |   Component:  build 
  Version:  trunk  |    Severity:  normal
 Keywords:         |  
-------------------+--------------------------------------------------------
 It appears that when receiving a 304 response to a GET from a backend (for
 example, in response to a request with an If-modified-since header),
 varnishd may be waiting for a message body that never comes. (since 304s
 have no body)

 When a backend has keepalive enabled, it results in a hang on the varnish
 side until the connection times out and is closed by the backend server.
 We are experiencing this in our environment where we have varnish in front
 of apache/2.2.3 backends.

 It is reproducible in 2.1.4 and trunk with a basic default backend set to
 an HTTP/1.1 server with keepalive enabled (apache/2.2.3 in our case), by
 issuing the following request:
 {{{
 GET /test.file HTTP/1.1
 Host: your.host
 Connection: close
 Cookie: x
 If-Modified-Since: <appropriate timestamp>
 }}}
 HEAD requests appear to be handled correctly.

-- 
Ticket URL: <http://www.varnish-cache.org/trac/ticket/818>
Varnish <http://varnish-cache.org/>
The Varnish HTTP Accelerator




More information about the varnish-bugs mailing list