You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by GitBox <gi...@apache.org> on 2021/04/30 13:13:38 UTC

[GitHub] [qpid-dispatch] ChugR commented on a change in pull request #1178: DISPATCH-2091: disable TCP backpressure when delivery is settled

ChugR commented on a change in pull request #1178:
URL: https://github.com/apache/qpid-dispatch/pull/1178#discussion_r623866539



##########
File path: src/adaptors/tcp_adaptor.c
##########
@@ -231,7 +232,7 @@ static int handle_incoming_raw_read(qdr_tcp_connection_t *conn, qd_buffer_list_t
     int free_count = 0;
     const bool was_open = conn->bytes_unacked < TCP_MAX_CAPACITY;
 
-    while ((count + conn->bytes_unacked < TCP_MAX_CAPACITY)
+    while ((conn->backpressure_disabled || (count + conn->bytes_unacked < TCP_MAX_CAPACITY))

Review comment:
       This is probably the only line of code that needs to change to eliminate back pressure problem. See https://github.com/apache/qpid-dispatch/pull/1177
   
   The theory on PR1177 is that when the sending end of a TCP streaming delivery settles then that settlement is reflected in the far end of the stream as an EOS on it's stream. The TCP on the far end of the stream issues a raw connection close_write to half-close the raw connection. Further, the half-closed condition automatically disables the TCP_MAX_CAPACITY back pressure and drains that raw connection's incoming stream.




-- 
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.

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



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org