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:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]