[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