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

Gordon Sim commented on PROTON-2108:
------------------------------------

Re "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". If accepted is the only valid outcome when outcomes and 
default-outcome are not specified then surely detaching the link with an error 
would imply accepted since the default outcome must be assumed to be a valid 
outcome and only accepted is valid. i.e. detaching the link with an error would 
not avoid silently swallowing the messages.

Re "a definition along the lines that [~gsim] proposed above _"any of the 
outcomes are valid"_ would mean that it is implicitly saying that it will 
accept the new outcome "send_me_helium_filled_elephants" that I have just 
invented", I think it would be intuitive and obvious to assume that no outcomes 
implies that all those concrete outcomes defined by the messaging layer are 
valid. I.e. that to use extensions you would need to indicate support for them, 
or to exclude certain standard outcomes you would likewise need to list those 
you don't support. That is of course not explicitly stated, but neither is it 
explicitly stated that accepted is the ONLY valid outcome in such cases (only 
that it MUST be supported). It would have been clearer and less ambiguous if 
the text explicitly stated e.g. 'if the default-outcome is not set, and no 
outcomes are provided, then the 
[accepted|http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-messaging-v1.0-os.html#type-accepted]
 outcome MUST be supported by the source and this is the ONLY valid outcome', 
which given the definition of accepted means there is no possibility to 
indicate failure to process, or even to distinguish which deliveries were 
processed or not at the point the connection was lost. So to me the mistake is 
not leaving outcomes open, but in leaving the apparent intent implied rather 
than explicitly stated where that apparent intent is far from intuitive in its 
implications.

However I doubt anyone will be helped by clarification in a spec erratum at 
this point.

 

> 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]

Reply via email to