Johan Corveleyn <jcorvel_at_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
Received on 2013-07-10 13:24:43 CEST