~rousskov/squid/3p1-rock

Viewing all changes in revision 9631.

  • Committer: Alex Rousskov
  • Date: 2011-11-15 22:34:15 UTC
  • Revision ID: rousskov@measurement-factory.com-20111115223415-mdp60nrbj25yl8r3
Bug 3190: Large HTTP POST stuck after early ICAP 400 error response 

When an ICAP REQMOD service responds with an error to
(or the REQMOD transaction aborts while processing) a large HTTP 
request, the HTTP request may get stuck because the request body
buffer gets full and nobody consumes the no-longer-needed content.

The ICAP code quits but leaves the body buffer intact in case the
client-side code wants to bypass the error. After that, nobody consumes
the request body because the buggy client side does not inform the body
pipe that there will be no other consumers, which would have triggered
a noteBodyConsumerAborted() callback and enable auto-consumption or closed
the client connection.

Same as trunk r11766 and v3.1 r10383.

expand all expand all

Show diffs side-by-side

added added

removed removed

Lines of Context: