[
https://issues.apache.org/jira/browse/DISPATCH-1540?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17014395#comment-17014395
]
ASF GitHub Bot commented on DISPATCH-1540:
------------------------------------------
kgiusti commented on pull request #658: DISPATCH-1540 - Set the pre-settled
flag appropriately on a delivery …
URL: https://github.com/apache/qpid-dispatch/pull/658#discussion_r365850091
##########
File path: src/router_core/delivery.c
##########
@@ -201,8 +201,16 @@ void qdr_delivery_remote_state_updated(qdr_core_t *core,
qdr_delivery_t *deliver
}
-qdr_delivery_t *qdr_deliver_continue(qdr_core_t *core,qdr_delivery_t *in_dlv)
+qdr_delivery_t *qdr_deliver_continue(qdr_core_t *core,qdr_delivery_t *in_dlv,
bool settled)
{
+ //
+ // If the delivery is already pre-settled, don't do anything with the
pre-settled flag.
+ //
+ // If the in_delivery was not pre-settled, you can go to pre-settled.
+ if (! in_dlv->presettled && settled) {
+ in_dlv->presettled = settled;
Review comment:
This is (technically) a possible race condition. This method runs under the
I/O thread which should not be modifying qdr_delivery_t state directly.
It would be better to pass along the presettled flag in the action. I
suggest considering changing the existing code to use the action->args.delivery
action structure (adding a pre-settled flag there) instead of the
args.connection structure.
----------------------------------------------------------------
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]
> multiframe presettled messages not included in presettled count on downstream
> router
> -------------------------------------------------------------------------------------
>
> Key: DISPATCH-1540
> URL: https://issues.apache.org/jira/browse/DISPATCH-1540
> Project: Qpid Dispatch
> Issue Type: Bug
> Components: Container
> Affects Versions: 1.10.0
> Reporter: Gordon Sim
> Assignee: Ganesh Murthy
> Priority: Major
> Fix For: 1.11.0
>
>
> Set up two routers connected to each other. Attach receiver to one, sender to
> the other and send a large message (such that it is sent as multiple transfer
> frames).
>
> Then look at the inter-router link stats for each router. The downstream
> router (i.e. that to which receiver is attached), does not record the
> delivery as presettled.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]