Johan Corveleyn <jcor...@gmail.com> writes:

> Can someone explain again why ra_serf / serf can't just resend
> requests, with C-L, whenever it has received a 411? So (after we know
> it's HTTP/1.1) send every request optimistically assuming chunked
> encoding, and fallback whenever we get a 411 (and perhaps remember the
> fallback, so we downgrade that entire connection / session).
>
> Why is that not possible? Is it because (a) it's too hard to implement
> (lots of code paths all over the place), (b) we can't resend requests
> because we don't have them available in the right place anymore after
> sending, (c) it would potentially break some ordering things (really?
> why?), (d) it would require serf 1.4 anyway, or (e) something else?

Partly a), mostly c).  It is relatively easy to do when ra_serf is
processing requests syncronously.  It gets much more difficult when
ra_serf starts using pipelined requests as there may be outstanding
requests when the 411 is received.  I posted a patch that keeps track of
outstanding requests and retries, it works in lots of cases but won't
work in all cases.

-- 
Philip Martin | Subversion Committer
WANdisco | Non-Stop Data
www.wandisco.com

Reply via email to