ffang opened a new pull request, #3514:
URL: https://github.com/apache/cxf/pull/3514

   … bodyless requests
   
   For a request without a body (e.g. a GET fetching a remote WSDL), close() 
invoked from the async send's exceptionally() callback re-enters 
handleHeadersTrustCaching() -> setProtocolHeaders() and resends the request, 
since `written` is never set and no exception has been recorded on the message. 
The renewed failure triggers another callback, another close(), and another 
resend, indefinitely.
   
   Record the failure in the (previously unused) `exception` field from the 
exceptionally() callback, and short-circuit setProtocolHeaders() once it is 
set, letting handleNoOutput()/setupWrappedStream() surface the recorded failure 
instead of resending.
   
   Add HttpClientHTTPConduitResendLoopTest, reproducing the reporter's 
suggested scenario (a server that accepts and immediately drops every 
connection), which observed thousands of connection attempts within seconds on 
the unpatched code.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to