On Fri, Jun 28, 2013 at 1:30 PM, Greg Stein <gst...@gmail.com> wrote: > > > On Jun 28, 2013 11:17 AM, "Philip Martin" <philip.mar...@wandisco.com> wrote: > > > > Philip Martin <philip.mar...@wandisco.com> writes: > > > > > Suppose serf were to keep track of the number of outstanding requests > > > (it may already do that I haven't checked). Then if the number of > > > outstanding requests is zero when the 411 is received the downgrade to > > > HTTP/1.0 will be OK. Lots of client operations start with multiple > > > requests in serial before switching to pipelined requests, so in all > > > those cases the downgrade will work. > > > > I've been experimenting with the following patch to implement the above > > strategy. It's sufficient to allow me to checkout and commit through an > > nginx proxy that does not support chunked encoding. I had hoped to run > > the regression tests through nginx but for some reason the greek tree > > import fails, although the same import run manually outside the > > testsuite works. I'm not sure why that happens. > > Not everything uses run_one(). It is easier to send a second OPTIONS than to > catch the next request, wherever that may be. (and it could be very hard to > replay)
Could you try svn trunk? Set busted-proxy=yes in your config to enable the new behavior. Without the knob turned out, you should get a 411 error. As Stefan pointed out, we may want to consider detecting 411 and providing a better error message. With the knob enabled, it should auto-detect your nginx proxy and stick to using C-L requests. Cheers, -g