[Varnish] #495: HTTP/1.0 or 'Connection: closed' backend race condition

Varnish varnish-bugs at projects.linpro.no
Fri Apr 24 00:21:21 CEST 2009


#495: HTTP/1.0 or 'Connection: closed' backend race condition
-------------------+--------------------------------------------------------
 Reporter:  cra    |        Type:  defect
   Status:  new    |    Priority:  normal
Milestone:         |   Component:  build 
  Version:  trunk  |    Severity:  normal
 Keywords:         |  
-------------------+--------------------------------------------------------
 When Varnish talks to a backend that uses HTTP/1.0 (no connection keep-
 alives) it relies on the backend to close the connection.

 Similarly when Varnish sends the 'Connection: closed' header to the
 backend it only waits for the backend to close the connection.

 In both cases while the connection to the backend is still open Varnish
 may try to reuse it.

 If the reuse happens it will most likely result in a 503 error to the
 client (depending on how the backend server handles it, I guess).

 Varnish should be smart enough to not try to reuse a connection that by
 RFC standards will be closed, and/or there should be way to configure
 Varnish to not reuse backend connections.

 The suggested [http://varnish.projects.linpro.no/wiki/VCLExamplePipe pipe
 backend fix] and [http://varnish.projects.linpro.no/ticket/451 related
 ticket] are relevant to this bug.

-- 
Ticket URL: <http://varnish.projects.linpro.no/ticket/495>
Varnish <http://varnish.projects.linpro.no/>
The Varnish HTTP Accelerator


More information about the varnish-bugs mailing list