qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jiri Daněk (Jira) <j...@apache.org>
Subject [jira] [Commented] (PROTON-2186) On released callback invoked twice for same delivery tag
Date Thu, 09 Apr 2020 14:56:00 GMT

    [ https://issues.apache.org/jira/browse/PROTON-2186?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17079448#comment-17079448
] 

Jiri Daněk commented on PROTON-2186:
------------------------------------

[~fgiorget] I think that proton behaves correctly. Dispatch sends disposition performatives
and proton is informing you of those in the on_released callback. If anything, I would probably
wonder why is dispatch sending multiple dispositions about the same message.

Maybe you are here supposed to ignore all dispositions that don't have {{settled=true}}. The
peer is free to change its mind about the disposition, until it sets one final settled=true
disposition. That is my understanding of http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-transport-v1.0-os.html#type-transfer

{quote}
settled
optional boolean

If not set on the first (or only) transfer for a (multi-transfer) delivery, then the settled
flag MUST be interpreted as being false. For subsequent transfers in a multi-transfer delivery
if the settled flag is left unset then it MUST be interpreted as true if and only if the value
of the settled flag on any of the preceding transfers was true; if no preceding transfer was
sent with settled being true then the value when unset MUST be taken as false.

If the negotiated value for snd-settle-mode at attachment is {{settled}}, then this field
MUST be true on at least one transfer frame for a delivery (i.e., the delivery MUST be settled
at the sender at the point the delivery has been completely transferred).

If the negotiated value for snd-settle-mode at attachment is {{unsettled}}, then this field
MUST be false (or unset) on every transfer frame for a delivery (unless the delivery is aborted).

{quote}

> On released callback invoked twice for same delivery tag
> --------------------------------------------------------
>
>                 Key: PROTON-2186
>                 URL: https://issues.apache.org/jira/browse/PROTON-2186
>             Project: Qpid Proton
>          Issue Type: Bug
>          Components: python-binding
>            Reporter: Fernando Giorgetti
>            Priority: Major
>
> In a python client application, that is connected to a dispatch router, I have observed
that the on_released callback was invoked twice for the same delivery tag.
> Here are the disposition frames I was able to capture for the respective delivery:
> {noformat}
> [0x562a0083ed80]:0 <- @disposition(21) [role=true, first=981, state=@released(38)
[]]
> [0x562a0083ed80]:0 <- @disposition(21) [role=true, first=981, last=982, settled=true,
state=@released(38) []]{noformat}
> The delivery tag 981 came first without the settlement and next with the settled as true.
And the on_released was called twice for the 981 delivery tag.
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@qpid.apache.org
For additional commands, e-mail: dev-help@qpid.apache.org


Mime
View raw message