[Varnish] #1500: Possible bug in 4.0.0 with Range+do_stream=true

Varnish varnish-bugs at varnish-cache.org
Mon May 12 23:42:01 CEST 2014

#1500: Possible bug in 4.0.0 with Range+do_stream=true
 Reporter:  moseleymark  |       Owner:
     Type:  defect       |      Status:  new
 Priority:  normal       |   Milestone:
Component:  build        |     Version:  4.0.0
 Severity:  normal       |  Resolution:
 Keywords:               |

Comment (by moseleymark):

 Yup, I could see how the combo of Streaming + Ranges could be a seriously
 tangled issue.

 Though I was initially thrown by streaming being on by default. I've not
 seen anything in the docs that indicate that that was the case.

 Workaround-wise, I think the easy solution is just to set do_stream=false
 if the Range header is set.

 I've been playing around with that, but I've run into one thing that's
 come up a few times as I port my varnish 3 vcl to 4: the narrower scope in
 4.0 of where you can use the req/bereq/resp/beresp vars makes it hard to
 communicate between the different vcl_* subroutines. I've typically used
 headers to communicate between the subs.

 For example, to do this workaround, I can set (in vcl_recv) a new header
 on 'req'. But I can't seem to set 'do_stream' until vcl_backend_response,
 so I can't remove the header before it gets sent to the backend.

 Do you have any recommendations on how to better communicate between the
 various vcl_* subroutines? I've been trying to avoid (for easy of
 packaging-sake) adding new compiled vmod modules.

Ticket URL: <https://www.varnish-cache.org/trac/ticket/1500#comment:2>
Varnish <https://varnish-cache.org/>
The Varnish HTTP Accelerator

More information about the varnish-bugs mailing list