ganeshmurthy commented on a change in pull request #689: DISPATCH-1576: Avoid
Q2/Q3 flow control on router control links
URL: https://github.com/apache/qpid-dispatch/pull/689#discussion_r381641296
##########
File path: src/router_node.c
##########
@@ -1415,16 +1419,18 @@ static void CORE_link_second_attach(void *context,
qdr_link_t *link, qdr_terminu
//
pn_link_open(pn_link);
- qd_connection_t *conn = qd_link_connection(qlink);
- qdr_connection_t *qdr_conn = (qdr_connection_t*)
qd_connection_get_context(conn);
+ // DISPATCH-1460, DISPATCH-1576 Do not block router control messages.
+ // Control messages must be received in their entirety before they are
+ // consumed. Flow controlling such messages mean they will never fully
+ // arrive thus never be consumed (therefore flow control is never
+ // released).
//
- // All links on the inter router or edge connection have unbounded q2 limit
- //
- if (qdr_connection_role(qdr_conn) == QDR_ROLE_EDGE_CONNECTION ||
qdr_connection_role(qdr_conn) == QDR_ROLE_INTER_ROUTER) {
+ const qd_link_type_t lt = qdr_link_type(link);
+ if (lt == QD_LINK_CONTROL || lt == QD_LINK_EDGE_DOWNLINK) {
Review comment:
I don't think we need to include QD_LINK_EDGE_DOWNLINK. Links of
QD_LINK_EDGE_DOWNLINK must be backpressured just like the other links. The only
link that should not be front pressured or back pressured is QD_LINK_CONTROL
----------------------------------------------------------------
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]
With regards,
Apache Git Services
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]