[
https://issues.apache.org/jira/browse/PROTON-2108?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16937516#comment-16937516
]
Robbie Gemmell commented on PROTON-2108:
----------------------------------------
I think what you describe would be a reasonable behaviour and what it should
have said (explicitly), but I don't think that is what it says/allows given the
continuing outline that not setting outcomes means the default outcome applies
to all transfers, and what is true if that is also not set. Prior discussions
on this from the authors conveyed the same understanding I'm holding of the
text, but that's how I would read it myself, though to be clear I do think its
ridiculous.
On the way implementations treating things, I think its true that most folks
have just largely ignored this entire area of the spec entirely since its
annoying, and I've been guilty of that myself. It only takes one bit to
implement what it says to cause problems, and as
https://github.com/apache/activemq-artemis/pull/2847 shows someone else has
actually done so, and had it not been caught in review it would likely later be
causing problems.
The simple way to avoid that ever causing problems is for clients to advertise
what they support using the mechanism that exists to do that. I am as you
thought just proposing sending the full set since the bindings already use and
handle them that way.
To your last point, I agree it seems wrong, and rather silly. There is
potentially possibility though that a peer could also e.g detach the link with
an error rather than accept and silently swallow the messages though. That is
what the spec says to do in some cases such as if a transaction coordinator
doesn't support the rejected outcome at a point its use would be needed for
example.
> supported source outcomes not set
> ---------------------------------
>
> Key: PROTON-2108
> URL: https://issues.apache.org/jira/browse/PROTON-2108
> Project: Qpid Proton
> Issue Type: Bug
> Affects Versions: proton-c-0.29.0
> Reporter: Robbie Gemmell
> Priority: Critical
>
> From looking at some recent traces, it appears that the bindings (at least
> for python, but probably others) do no set the outcomes (or default-outcome)
> field on its source terminus, although they do use/support all the outcomes.
> To a peer that actually inspects the outcomes to influence behaviour this
> strictly means only Accepted is supported, which can lead to issues (e.g it
> might accept a message then drop it, rather than release/modify/reject it,
> under cases it couldn't be processed).
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]