ok2c commented on code in PR #543:
URL: 
https://github.com/apache/httpcomponents-core/pull/543#discussion_r2264672290


##########
httpcore5/src/main/java/org/apache/hc/core5/http/impl/nio/AbstractHttp1StreamDuplexer.java:
##########
@@ -277,13 +278,14 @@ public final void onInput(final ByteBuffer src) throws 
HttpException, IOExceptio
             return;
         }
 
-        boolean endOfStream = false;
         if (incomingMessage == null) {
             final int bytesRead = inbuf.fill(ioSession);

Review Comment:
   > This must mean that the connection is being returned to the pool the very 
instant the HTTP response is read
   
   @rschmitt This is precisely what the protocol handler does. As soon as the 
response message has been fully consumed _and_ the connection is deemed 
re-usable the protocol handler hands it back to the connection pool which may 
immediately lease it out to another caller. No amount of trickery can make the 
protocol handler aware of the opposite endpoint's intent to not honor the 
protocol requirements with regards of the connection persistence, especially 
when using TLS to negotiate the connection closure. It can get lucky and read 
the end of stream over a plain connection but this is just luck.
   
   There is no solution to this problem other then a request recovery and 
re-trial mechanism and possibly some sort of a stale connection check. I 
suggest we focus on that.



-- 
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: dev-unsubscr...@hc.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@hc.apache.org
For additional commands, e-mail: dev-h...@hc.apache.org

Reply via email to