Set bereq.http.connection:close in vcl_pipe by default

Tollef Fog Heen tfheen at
Tue Jan 28 08:03:07 CET 2014

]] Lasse Karstensen

> What I'm struggling with is that we have a good amount of help requests and
> tickets because of this. I think many people must set connection:close for
> pipe to work as they expect. (possibly overestimated by me.)
> I don't know the history here, but I don't quite understand why we don't
> flip this default and save us/them the trouble?

>From what I see in the wild today, there are basically two valid reasons
for using pipe: websockets and working around two bugs in varnish: We
don't handle chunked from clients and we don't handle large uploads
well (they end up hitting sess_timeout and then we restart with half a
POST and it goes rapidly downhill).

> Tollef had some input on how this should be handled in VCL, but I thought
> I'd run the main idea through the development team first.

I'm not opposed to adding the header, but I think it should then be done
in the C code running before vcl_pipe so you can remove it if you need
to.  Adding it to the built-in vcl_pipe means the only way to get rid of
it is to return early, something we tell people to avoid for other VCL

Tollef Fog Heen
Technical lead | Varnish Software AS
📞: +47 21 98 92 64
We Make Websites Fly!

More information about the varnish-dev mailing list