kgiusti 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_r381479334
##########
File path: src/router_node.c
##########
@@ -1381,12 +1381,16 @@ static void CORE_link_first_attach(void
*context,
//
pn_link_open(qd_link_pn(qlink));
+ // 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.
- // Blocking control messages can lead to various failures
- //
- if (qdr_connection_role(conn) == QDR_ROLE_EDGE_CONNECTION ||
qdr_connection_role(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:
This ignores a class of locally terminated link: the core endpoint links
established by the core. Perhaps those types of links should be
QD_LINK_CONTROL rather than ENDPOINT?
----------------------------------------------------------------
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]