[
https://issues.apache.org/jira/browse/DISPATCH-1266?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16915834#comment-16915834
]
ASF GitHub Bot commented on DISPATCH-1266:
------------------------------------------
kgiusti commented on pull request #554: DISPATCH-1266: Fix unsettled multicast
forwarding
URL: https://github.com/apache/qpid-dispatch/pull/554#discussion_r317628508
##########
File path: src/router_core/delivery.c
##########
@@ -558,81 +572,386 @@ void qdr_delivery_decref_CT(qdr_core_t *core,
qdr_delivery_t *dlv, const char *l
}
+// the remote endpoint has change the state (disposition) or settlement for the
+// delivery. Update the local state/settlement accordingly.
+//
static void qdr_update_delivery_CT(qdr_core_t *core, qdr_action_t *action,
bool discard)
{
- qdr_delivery_t *dlv = action->args.delivery.delivery;
- qdr_delivery_t *peer = qdr_delivery_first_peer_CT(dlv);
- bool push = false;
- bool peer_moved = false;
- bool dlv_moved = false;
- uint64_t disp = action->args.delivery.disposition;
- bool settled = action->args.delivery.settled;
- qdr_error_t *error = action->args.delivery.error;
- bool error_unassigned = true;
+ if (discard)
+ return;
+
+ qdr_delivery_t *dlv = action->args.delivery.delivery;
+ qdr_delivery_t *peer = qdr_delivery_first_peer_CT(dlv);
+ uint64_t new_disp = action->args.delivery.disposition;
+ bool settled = action->args.delivery.settled;
+ qdr_error_t *error = action->args.delivery.error;
+ bool free_error = true;
+
+ if (dlv->multicast) {
+ //
+ // remote state change for *inbound* multicast delivery,
+ // update downstream *outbound* peers
+ //
+ qdr_delivery_mcast_update_CT(core, dlv, new_disp, settled);
Review comment:
qdr_delivery_mcast_inbound_update_CT
----------------------------------------------------------------
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]
> Improve router's handling of unsettled multicast deliveries
> -----------------------------------------------------------
>
> Key: DISPATCH-1266
> URL: https://issues.apache.org/jira/browse/DISPATCH-1266
> Project: Qpid Dispatch
> Issue Type: Improvement
> Components: Documentation, Management Agent, Routing Engine, Tests
> Affects Versions: 1.5.0
> Reporter: Ken Giusti
> Assignee: Ken Giusti
> Priority: Major
>
> The current implementation of multicast forwarding will immediately settle
> the delivery on ingress to the router and forward the delivery as pre-settled.
> This means the settlement state sent back to the producer provides no
> indication of actual delivery state. And the credit is replenished
> immediately rather than gate on the settlement coming from the consumer.
> Improve this behavior by settling of the inbound delivery after all outbound
> deliveries have settled.
--
This message was sent by Atlassian Jira
(v8.3.2#803003)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]