[jira] [Commented] (PROTON-1512) Expose the "aborted" flag for transferred deliveries

2017-10-03 Thread ASF subversion and git services (JIRA)

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

ASF subversion and git services commented on PROTON-1512:
-

Commit b36b70c2ab9ce19b7d56b2e6c9ca9b2383e369bf in qpid-proton's branch 
refs/heads/master from [~aconway]
[ https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;h=b36b70c ]

PROTON-1512: aborted messages: handle credit and empty messages.

The AMQP spec says: "The delivery-count is initialized by the sender when a link
endpoint is created, and is incremented whenever a message is sent."
http://docs.oasis-open.org/amqp/core/v1.0/os/amqp-core-transport-v1.0-os.html#doc-flow-control

We interpret this to mean when the *first* frame of a message is sent/received,
so if any frames of an aborted message are sent, it consumes a credit and
increases the delivery count exactly like a successful message.

However: if a proton sender calls pn_delivery_abort() *before* any frames have
been sent, the delivery is dropped locally, no frames sent, no link-state
updates. This means pn_delivery_abort() will either cancel a local,
partially-constructed message with no side effects, or send an aborted=true
frame as required. Proton will never send a message consisting of a single
aborted frame.

A proton receiver will handle a message consisting of a single aborted frame
correctly - i.e. do credit calculations but consider the delivery aborted.


> Expose the "aborted" flag for transferred deliveries
> 
>
> Key: PROTON-1512
> URL: https://issues.apache.org/jira/browse/PROTON-1512
> Project: Qpid Proton
>  Issue Type: New Feature
>  Components: proton-c
>Reporter: Ted Ross
>Assignee: Alan Conway
>  Labels: api
> Fix For: proton-c-0.18.0
>
>
> As we develop support for message streaming in Qpid Dispatch Router (i.e. 
> frames for large multi-frame messages are forwarded to destinations as they 
> arrive, before the complete message is received), there is a need to handle 
> the case where a received message is never completed.
> The AMQP protocol has a provision for this in the "aborted" flag in the 
> transfer performative.  If the router is in the process of streaming a large 
> message from sender to receiver and the sender drops before completing the 
> delivery, the router can send a transfer to the downstream receivers with the 
> "aborted" flag set.  This would indicate that the message should not be 
> processed and would not cause any framing errors on the link.
> Proton does not currently expose this capability in its API (There is a 
> pn_link_abort in the C header file, but it is commented out and not 
> implemented).
> In order to properly handle the failure cases for message streaming, this 
> feature must be usable in Proton.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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



[jira] [Commented] (PROTON-1512) Expose the "aborted" flag for transferred deliveries

2017-10-03 Thread Alan Conway (JIRA)

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

Alan Conway commented on PROTON-1512:
-

The final, final missing piece: how to account for credit in the presence of 
aborted messages. See 
http://qpid.2158936.n2.nabble.com/AMQP-spec-question-aborted-messages-and-credit-td7667485.html


> Expose the "aborted" flag for transferred deliveries
> 
>
> Key: PROTON-1512
> URL: https://issues.apache.org/jira/browse/PROTON-1512
> Project: Qpid Proton
>  Issue Type: New Feature
>  Components: proton-c
>Reporter: Ted Ross
>Assignee: Alan Conway
>  Labels: api
> Fix For: proton-c-0.18.0
>
>
> As we develop support for message streaming in Qpid Dispatch Router (i.e. 
> frames for large multi-frame messages are forwarded to destinations as they 
> arrive, before the complete message is received), there is a need to handle 
> the case where a received message is never completed.
> The AMQP protocol has a provision for this in the "aborted" flag in the 
> transfer performative.  If the router is in the process of streaming a large 
> message from sender to receiver and the sender drops before completing the 
> delivery, the router can send a transfer to the downstream receivers with the 
> "aborted" flag set.  This would indicate that the message should not be 
> processed and would not cause any framing errors on the link.
> Proton does not currently expose this capability in its API (There is a 
> pn_link_abort in the C header file, but it is commented out and not 
> implemented).
> In order to properly handle the failure cases for message streaming, this 
> feature must be usable in Proton.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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



[jira] [Commented] (PROTON-1512) Expose the "aborted" flag for transferred deliveries

2017-09-27 Thread ASF subversion and git services (JIRA)

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

ASF subversion and git services commented on PROTON-1512:
-

Commit 5b1be8771faeafa7401d5f96705d38d266c61206 in qpid-proton's branch 
refs/heads/master from [~aconway]
[ https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;h=5b1be87 ]

PROTON-1512: c examples: fix thread safety issue in broker

Replace global receiving buffer with buffer-per-link to accumulate messages 
correctly.


> Expose the "aborted" flag for transferred deliveries
> 
>
> Key: PROTON-1512
> URL: https://issues.apache.org/jira/browse/PROTON-1512
> Project: Qpid Proton
>  Issue Type: New Feature
>  Components: proton-c
>Reporter: Ted Ross
>Assignee: Alan Conway
>  Labels: api
> Fix For: proton-c-0.18.0
>
>
> As we develop support for message streaming in Qpid Dispatch Router (i.e. 
> frames for large multi-frame messages are forwarded to destinations as they 
> arrive, before the complete message is received), there is a need to handle 
> the case where a received message is never completed.
> The AMQP protocol has a provision for this in the "aborted" flag in the 
> transfer performative.  If the router is in the process of streaming a large 
> message from sender to receiver and the sender drops before completing the 
> delivery, the router can send a transfer to the downstream receivers with the 
> "aborted" flag set.  This would indicate that the message should not be 
> processed and would not cause any framing errors on the link.
> Proton does not currently expose this capability in its API (There is a 
> pn_link_abort in the C header file, but it is commented out and not 
> implemented).
> In order to properly handle the failure cases for message streaming, this 
> feature must be usable in Proton.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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



[jira] [Commented] (PROTON-1512) Expose the "aborted" flag for transferred deliveries

2017-09-27 Thread ASF subversion and git services (JIRA)

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

ASF subversion and git services commented on PROTON-1512:
-

Commit 58dfb4aa4424c0116443533639a42b7ceda774e7 in qpid-proton's branch 
refs/heads/master from [~aconway]
[ https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;h=58dfb4a ]

PROTON-1512: c examples: clean up examples and fix some issues.

All examples that receive messages use a consistent code sequence and error
reporting, all deal with aborted messages consistently. All receivers accumulate
messages in local buffer not in proton link buffers.

Fixed issues
- broker.c use per-link buffer for thread safety
- direct.c - wasn't accumulating messages in separate buffer

Added abort tests to example_test.py, using send-abort.c and verifying broker.c
and direct.c correctly report and drop aborted messages and continue to 
function.


> Expose the "aborted" flag for transferred deliveries
> 
>
> Key: PROTON-1512
> URL: https://issues.apache.org/jira/browse/PROTON-1512
> Project: Qpid Proton
>  Issue Type: New Feature
>  Components: proton-c
>Reporter: Ted Ross
>Assignee: Alan Conway
>  Labels: api
> Fix For: proton-c-0.18.0
>
>
> As we develop support for message streaming in Qpid Dispatch Router (i.e. 
> frames for large multi-frame messages are forwarded to destinations as they 
> arrive, before the complete message is received), there is a need to handle 
> the case where a received message is never completed.
> The AMQP protocol has a provision for this in the "aborted" flag in the 
> transfer performative.  If the router is in the process of streaming a large 
> message from sender to receiver and the sender drops before completing the 
> delivery, the router can send a transfer to the downstream receivers with the 
> "aborted" flag set.  This would indicate that the message should not be 
> processed and would not cause any framing errors on the link.
> Proton does not currently expose this capability in its API (There is a 
> pn_link_abort in the C header file, but it is commented out and not 
> implemented).
> In order to properly handle the failure cases for message streaming, this 
> feature must be usable in Proton.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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



[jira] [Commented] (PROTON-1512) Expose the "aborted" flag for transferred deliveries

2017-09-22 Thread ASF subversion and git services (JIRA)

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

ASF subversion and git services commented on PROTON-1512:
-

Commit 3dae6623e9e5645ec3bf4650b5ad208f21f321f6 in qpid-proton's branch 
refs/heads/master from [~chug]
[ https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;h=3dae662 ]

PROTON-1512: add c example that sends aborted messages


> Expose the "aborted" flag for transferred deliveries
> 
>
> Key: PROTON-1512
> URL: https://issues.apache.org/jira/browse/PROTON-1512
> Project: Qpid Proton
>  Issue Type: New Feature
>  Components: proton-c
>Reporter: Ted Ross
>Assignee: Alan Conway
>  Labels: api
> Fix For: proton-c-0.18.0
>
>
> As we develop support for message streaming in Qpid Dispatch Router (i.e. 
> frames for large multi-frame messages are forwarded to destinations as they 
> arrive, before the complete message is received), there is a need to handle 
> the case where a received message is never completed.
> The AMQP protocol has a provision for this in the "aborted" flag in the 
> transfer performative.  If the router is in the process of streaming a large 
> message from sender to receiver and the sender drops before completing the 
> delivery, the router can send a transfer to the downstream receivers with the 
> "aborted" flag set.  This would indicate that the message should not be 
> processed and would not cause any framing errors on the link.
> Proton does not currently expose this capability in its API (There is a 
> pn_link_abort in the C header file, but it is commented out and not 
> implemented).
> In order to properly handle the failure cases for message streaming, this 
> feature must be usable in Proton.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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



[jira] [Commented] (PROTON-1512) Expose the "aborted" flag for transferred deliveries

2017-09-21 Thread ASF subversion and git services (JIRA)

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

ASF subversion and git services commented on PROTON-1512:
-

Commit 5c99849941f6c553a1080995936696ff56e3e4a9 in qpid-proton's branch 
refs/heads/master from [~aconway]
[ https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;h=5c99849 ]

PROTON-1512: c examples use recommended PN_DELIVERY pattern

Fixed the C examples to use the recommended pattern of always reading data
on a PN_DELIVERY event. Letting data accumulate in proton can cause a hang
if a message is larger than the session flow-control limit.


> Expose the "aborted" flag for transferred deliveries
> 
>
> Key: PROTON-1512
> URL: https://issues.apache.org/jira/browse/PROTON-1512
> Project: Qpid Proton
>  Issue Type: New Feature
>  Components: proton-c
>Reporter: Ted Ross
>Assignee: Alan Conway
>  Labels: api
> Fix For: proton-c-0.18.0
>
>
> As we develop support for message streaming in Qpid Dispatch Router (i.e. 
> frames for large multi-frame messages are forwarded to destinations as they 
> arrive, before the complete message is received), there is a need to handle 
> the case where a received message is never completed.
> The AMQP protocol has a provision for this in the "aborted" flag in the 
> transfer performative.  If the router is in the process of streaming a large 
> message from sender to receiver and the sender drops before completing the 
> delivery, the router can send a transfer to the downstream receivers with the 
> "aborted" flag set.  This would indicate that the message should not be 
> processed and would not cause any framing errors on the link.
> Proton does not currently expose this capability in its API (There is a 
> pn_link_abort in the C header file, but it is commented out and not 
> implemented).
> In order to properly handle the failure cases for message streaming, this 
> feature must be usable in Proton.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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



[jira] [Commented] (PROTON-1512) Expose the "aborted" flag for transferred deliveries

2017-09-21 Thread Alan Conway (JIRA)

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

Alan Conway commented on PROTON-1512:
-

It has been pointed out that it is not easy to tell whether an outgoing 
delivery in proton actually has had any frames sent or not. PN_FLOW events are 
ambiguous, they can mean data sent on wire OR credit received from remote so 
that's not reliable. Need to determine if we can use existing functions to 
determine that reliably, and if not add one. Also we should probably have 
abort() automatically drop the message if nothing is already sent and send an 
aborted=true frame only if the message has been partially framed already.

> Expose the "aborted" flag for transferred deliveries
> 
>
> Key: PROTON-1512
> URL: https://issues.apache.org/jira/browse/PROTON-1512
> Project: Qpid Proton
>  Issue Type: New Feature
>  Components: proton-c
>Reporter: Ted Ross
>Assignee: Alan Conway
>  Labels: api
> Fix For: proton-c-0.18.0
>
>
> As we develop support for message streaming in Qpid Dispatch Router (i.e. 
> frames for large multi-frame messages are forwarded to destinations as they 
> arrive, before the complete message is received), there is a need to handle 
> the case where a received message is never completed.
> The AMQP protocol has a provision for this in the "aborted" flag in the 
> transfer performative.  If the router is in the process of streaming a large 
> message from sender to receiver and the sender drops before completing the 
> delivery, the router can send a transfer to the downstream receivers with the 
> "aborted" flag set.  This would indicate that the message should not be 
> processed and would not cause any framing errors on the link.
> Proton does not currently expose this capability in its API (There is a 
> pn_link_abort in the C header file, but it is commented out and not 
> implemented).
> In order to properly handle the failure cases for message streaming, this 
> feature must be usable in Proton.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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



[jira] [Commented] (PROTON-1512) Expose the "aborted" flag for transferred deliveries

2017-09-21 Thread Alan Conway (JIRA)

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

Alan Conway commented on PROTON-1512:
-

[~gemmellr] +1

For link routing the router simply forwards frames verbatim.

You're correct about the potential block for method A: dispatch doesn't do this 
but some of our examples and bindings do; so we want to make sure they get an 
error at least for an abort till we can fix them all.

> Expose the "aborted" flag for transferred deliveries
> 
>
> Key: PROTON-1512
> URL: https://issues.apache.org/jira/browse/PROTON-1512
> Project: Qpid Proton
>  Issue Type: New Feature
>  Components: proton-c
>Reporter: Ted Ross
>Assignee: Alan Conway
>  Labels: api
> Fix For: proton-c-0.18.0
>
>
> As we develop support for message streaming in Qpid Dispatch Router (i.e. 
> frames for large multi-frame messages are forwarded to destinations as they 
> arrive, before the complete message is received), there is a need to handle 
> the case where a received message is never completed.
> The AMQP protocol has a provision for this in the "aborted" flag in the 
> transfer performative.  If the router is in the process of streaming a large 
> message from sender to receiver and the sender drops before completing the 
> delivery, the router can send a transfer to the downstream receivers with the 
> "aborted" flag set.  This would indicate that the message should not be 
> processed and would not cause any framing errors on the link.
> Proton does not currently expose this capability in its API (There is a 
> pn_link_abort in the C header file, but it is commented out and not 
> implemented).
> In order to properly handle the failure cases for message streaming, this 
> feature must be usable in Proton.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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



[jira] [Commented] (PROTON-1512) Expose the "aborted" flag for transferred deliveries

2017-09-21 Thread Robbie Gemmell (JIRA)

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

Robbie Gemmell commented on PROTON-1512:


On the comments around whether its ok for the router to drop an aborted message 
not yet partly passed on toa peer, would I be right to assume thats around 
message-routing and that for link-routing the transfers would always be 
forwarded as-is?

On Alans A/B scenario, to complicate matters slightly more I'd note that A may 
already be subject to potential hang/stall/never finish even without aborted 
transfers, if session flow control is in play enforcing protons 'session 
capacity' and the window becomes full before the message is complete. I believe 
that only effectively happens if you set a max frame size currently though.

> Expose the "aborted" flag for transferred deliveries
> 
>
> Key: PROTON-1512
> URL: https://issues.apache.org/jira/browse/PROTON-1512
> Project: Qpid Proton
>  Issue Type: New Feature
>  Components: proton-c
>Reporter: Ted Ross
>Assignee: Alan Conway
>  Labels: api
> Fix For: proton-c-0.18.0
>
>
> As we develop support for message streaming in Qpid Dispatch Router (i.e. 
> frames for large multi-frame messages are forwarded to destinations as they 
> arrive, before the complete message is received), there is a need to handle 
> the case where a received message is never completed.
> The AMQP protocol has a provision for this in the "aborted" flag in the 
> transfer performative.  If the router is in the process of streaming a large 
> message from sender to receiver and the sender drops before completing the 
> delivery, the router can send a transfer to the downstream receivers with the 
> "aborted" flag set.  This would indicate that the message should not be 
> processed and would not cause any framing errors on the link.
> Proton does not currently expose this capability in its API (There is a 
> pn_link_abort in the C header file, but it is commented out and not 
> implemented).
> In order to properly handle the failure cases for message streaming, this 
> feature must be usable in Proton.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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



[jira] [Commented] (PROTON-1512) Expose the "aborted" flag for transferred deliveries

2017-09-21 Thread ASF subversion and git services (JIRA)

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

ASF subversion and git services commented on PROTON-1512:
-

Commit 6743ab4418736dab353b8566dae7d94fd2e34f2b in qpid-proton's branch 
refs/heads/master from [~aconway]
[ https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;h=6743ab4 ]

PROTON-1512: Fixes and doc clarifications for pn_delivery_aborted()

- added explict PN_ABORTED error code (PN_STATE_ERR has another meaning in this 
context)
- fixed initialization bug for aborted flag
- enforce discarding all data for aborted frames on sender and receiver, for 
interop sanity
- clarified docs - see below

Goal is to enable *correct* use of abort while minimizing interop problems with 
existing
abort-unaware proton code (and other AMQP clients)

The only correct use of abort is when part of a message has already been
sent. In a router, an incoming message can be aborted before any of it has been
forwarded, or even before enough headers have been acquired to know how to
forward it. Such messages should simply not be forwarded at all. Dispatch
doesn't (shouldn't) promise frame-by-frame identity for message routing so
silently dropping an early-aborted message is entirely valid and
unavoidable. Using abort is only valid when part of a message has already been
forwarded.

Here's the explanation of the backwards-compatibility problem:

/**
 * Check if a received delivery has been aborted.
 *
 * An aborted delivery means the sender cannot complete the message and the
 * receiver should discard any data already received. There is nothing further
 * to be done with the delivery: it is pn_delivery_settled() and pn_link_recv()
 * returns ::PN_ABORTED.
 *
 * For backward compatibility with code that does not check 
pn_delivery_aborted(),
 * the following are true of an aborted delivery:
 *
 * - pn_delivery_partial() is false - old code will not wait forever for more 
data
 *
 * - pn_delivery_pending() returns 1, not 0 - old code that checks for 
completion with
 *
 *   if (pn_delivery_pending(d)==0 && !pn_delivery_partial(d))
 *
 *   will not mistake this for successful completion, and will call 
pn_link_recv()
 *
 * - pn_link_recv() returns ::PN_ABORTED - old code will know there is some 
kind of error.
 *
 * @see pn_delivery_abort()
 * @param[in] delivery a delivery object
 * @return true if the delivery has been aborted, false otherwise
 */
PN_EXTERN bool pn_delivery_aborted(pn_delivery_t *delivery);


> Expose the "aborted" flag for transferred deliveries
> 
>
> Key: PROTON-1512
> URL: https://issues.apache.org/jira/browse/PROTON-1512
> Project: Qpid Proton
>  Issue Type: New Feature
>  Components: proton-c
>Reporter: Ted Ross
>Assignee: Alan Conway
>  Labels: api
> Fix For: proton-c-0.18.0
>
>
> As we develop support for message streaming in Qpid Dispatch Router (i.e. 
> frames for large multi-frame messages are forwarded to destinations as they 
> arrive, before the complete message is received), there is a need to handle 
> the case where a received message is never completed.
> The AMQP protocol has a provision for this in the "aborted" flag in the 
> transfer performative.  If the router is in the process of streaming a large 
> message from sender to receiver and the sender drops before completing the 
> delivery, the router can send a transfer to the downstream receivers with the 
> "aborted" flag set.  This would indicate that the message should not be 
> processed and would not cause any framing errors on the link.
> Proton does not currently expose this capability in its API (There is a 
> pn_link_abort in the C header file, but it is commented out and not 
> implemented).
> In order to properly handle the failure cases for message streaming, this 
> feature must be usable in Proton.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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



[jira] [Commented] (PROTON-1512) Expose the "aborted" flag for transferred deliveries

2017-09-21 Thread Chuck Rolke (JIRA)

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

Chuck Rolke commented on PROTON-1512:
-

If you want to have existing clients not hang then I agree with returning an 
error immediately. Those same clients may have some of the same issues running 
0.17 proton when an aborted message is received and the more flag is not 
overridden by the abort.

Regarding the degenerate case of having the first frame of a message with 
aborted=true, sense could be made with a log entry on the order of "DEBUG 
Aborted message received on link _linkname_".

> Expose the "aborted" flag for transferred deliveries
> 
>
> Key: PROTON-1512
> URL: https://issues.apache.org/jira/browse/PROTON-1512
> Project: Qpid Proton
>  Issue Type: New Feature
>  Components: proton-c
>Reporter: Ted Ross
>Assignee: Alan Conway
>  Labels: api
> Fix For: proton-c-0.18.0
>
>
> As we develop support for message streaming in Qpid Dispatch Router (i.e. 
> frames for large multi-frame messages are forwarded to destinations as they 
> arrive, before the complete message is received), there is a need to handle 
> the case where a received message is never completed.
> The AMQP protocol has a provision for this in the "aborted" flag in the 
> transfer performative.  If the router is in the process of streaming a large 
> message from sender to receiver and the sender drops before completing the 
> delivery, the router can send a transfer to the downstream receivers with the 
> "aborted" flag set.  This would indicate that the message should not be 
> processed and would not cause any framing errors on the link.
> Proton does not currently expose this capability in its API (There is a 
> pn_link_abort in the C header file, but it is commented out and not 
> implemented).
> In order to properly handle the failure cases for message streaming, this 
> feature must be usable in Proton.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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



[jira] [Commented] (PROTON-1512) Expose the "aborted" flag for transferred deliveries

2017-09-20 Thread Alan Conway (JIRA)

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

Alan Conway commented on PROTON-1512:
-

Thinking some more, and I think the original design is correct.

- The AMQP 'aborted' flag on a transfer means throw away *all* data for the 
delivery.
- Abort is only useful for multi-frame messages, where part of the message is 
already sent.
- We should *never* generate frames with aborted=true and data.
  aborted=true *requires* you to ignore the data, so sending both is 
meaningless.
  I would update proton to enforce this.
- If we receive aborted=true with data from some daft library, we will ignore 
the data.
  The spec requires us to ignore it so nobody can fault us on that.

What this means for dispatch:
- if we receive an aborted=true frame before we have enough message headers to 
forward the message,
  we simply ignore the whole delivery like it never happened.
- once we have started forwarding a message, if we get an aborted=true frame, 
we forward
  an empty aborted=true frame. We're not obliged to forward any data on that 
frame since
  the aborted=true flag compels the receiver to throw away all the data anyway.

It is quite possible to have proton expose the data (I already did it before I
thought this through) but I believe it is *impossible* do do that *and* have 
older
clients correctly raise an error when a message is aborted. Eitehr they will 
loop or
stall forever on a delivery wating for data that never comes, or they will 
incorrectly
believe the message is completed.

There are 2 different ways that existing bidings and dispatch gather messages, 
any way 
I try to expose data on an aborted frame will break case A below.
If aborted frames are treated as partial, case A will hang/stall/never finish.
If they are not partial then case A will incorrectly complete the message.

The only way to get all existing clients to fail is to say aborted messages
are not partial and have pn_link_recv return an immediate error.

{code}
/* A: wait for a complete delivery, copy to application */
case PN_DELIVERY: {
if (pn_delivery_readable(d) && !pn_delivery_partial(d)) {
int ret = pn_link_recv(pn_delivery_link(d), buffer, 
pn_delivery_pending(d));
if (ret >= 0) {
got_message(buffer, ret);
} else {
error(ret);
}
return COMPLETE_OR_ERROR;
}
break;  /* Wait for more PN_DELIVERY events */
}

/* B: Append result of link_recv to app buffer till complete */ 
case PN_DELIVERY: {
int ret = pn_link_recv(pn_delivery_link(d), buffer+received_so_far, 
pn_delivery_pending(d));
if (ret > 0) {
received_so_far += ret;
} else if (ret < 0) {
if (ret == PN_EOS) got_message(buffer, received_so_far);
if (ret < 0) error(ret);
return COMPLETE_OR_ERROR;
}
break;  /* Wait for more PN_DELIVERY events */
}
{code}


> Expose the "aborted" flag for transferred deliveries
> 
>
> Key: PROTON-1512
> URL: https://issues.apache.org/jira/browse/PROTON-1512
> Project: Qpid Proton
>  Issue Type: New Feature
>  Components: proton-c
>Reporter: Ted Ross
>Assignee: Alan Conway
>  Labels: api
> Fix For: proton-c-0.18.0
>
>
> As we develop support for message streaming in Qpid Dispatch Router (i.e. 
> frames for large multi-frame messages are forwarded to destinations as they 
> arrive, before the complete message is received), there is a need to handle 
> the case where a received message is never completed.
> The AMQP protocol has a provision for this in the "aborted" flag in the 
> transfer performative.  If the router is in the process of streaming a large 
> message from sender to receiver and the sender drops before completing the 
> delivery, the router can send a transfer to the downstream receivers with the 
> "aborted" flag set.  This would indicate that the message should not be 
> processed and would not cause any framing errors on the link.
> Proton does not currently expose this capability in its API (There is a 
> pn_link_abort in the C header file, but it is commented out and not 
> implemented).
> In order to properly handle the failure cases for message streaming, this 
> feature must be usable in Proton.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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



[jira] [Commented] (PROTON-1512) Expose the "aborted" flag for transferred deliveries

2017-09-20 Thread Ted Ross (JIRA)

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

Ted Ross commented on PROTON-1512:
--

The above comment is unclear.  I replied on the email thread with in-line 
remarks and Jira seems to have removed my remarks from their context.


> Expose the "aborted" flag for transferred deliveries
> 
>
> Key: PROTON-1512
> URL: https://issues.apache.org/jira/browse/PROTON-1512
> Project: Qpid Proton
>  Issue Type: New Feature
>  Components: proton-c
>Reporter: Ted Ross
>Assignee: Alan Conway
>  Labels: api
> Fix For: proton-c-0.18.0
>
>
> As we develop support for message streaming in Qpid Dispatch Router (i.e. 
> frames for large multi-frame messages are forwarded to destinations as they 
> arrive, before the complete message is received), there is a need to handle 
> the case where a received message is never completed.
> The AMQP protocol has a provision for this in the "aborted" flag in the 
> transfer performative.  If the router is in the process of streaming a large 
> message from sender to receiver and the sender drops before completing the 
> delivery, the router can send a transfer to the downstream receivers with the 
> "aborted" flag set.  This would indicate that the message should not be 
> processed and would not cause any framing errors on the link.
> Proton does not currently expose this capability in its API (There is a 
> pn_link_abort in the C header file, but it is commented out and not 
> implemented).
> In order to properly handle the failure cases for message streaming, this 
> feature must be usable in Proton.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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



[jira] [Commented] (PROTON-1512) Expose the "aborted" flag for transferred deliveries

2017-09-20 Thread Ted Ross (JIRA)

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

Ted Ross commented on PROTON-1512:
--



To be pedantic, I think that Dispatch Router should only forward the
aborted delivery if it has already forwarded an earlier frame from the same
delivery.  If a new delivery arrives with the aborted flag set, the router
should simply drop it (and issue replacement credit).



I'm not sure I agree, but I'm also not sure the spec is clear on what
should happen.  I think it's ok for the receiver to receive A, B, D.  If it
cares it can observe that there is a gap in the delivery sequence.




> Expose the "aborted" flag for transferred deliveries
> 
>
> Key: PROTON-1512
> URL: https://issues.apache.org/jira/browse/PROTON-1512
> Project: Qpid Proton
>  Issue Type: New Feature
>  Components: proton-c
>Reporter: Ted Ross
>Assignee: Alan Conway
>  Labels: api
> Fix For: proton-c-0.18.0
>
>
> As we develop support for message streaming in Qpid Dispatch Router (i.e. 
> frames for large multi-frame messages are forwarded to destinations as they 
> arrive, before the complete message is received), there is a need to handle 
> the case where a received message is never completed.
> The AMQP protocol has a provision for this in the "aborted" flag in the 
> transfer performative.  If the router is in the process of streaming a large 
> message from sender to receiver and the sender drops before completing the 
> delivery, the router can send a transfer to the downstream receivers with the 
> "aborted" flag set.  This would indicate that the message should not be 
> processed and would not cause any framing errors on the link.
> Proton does not currently expose this capability in its API (There is a 
> pn_link_abort in the C header file, but it is commented out and not 
> implemented).
> In order to properly handle the failure cases for message streaming, this 
> feature must be usable in Proton.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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



[jira] [Commented] (PROTON-1512) Expose the "aborted" flag for transferred deliveries

2017-09-20 Thread Alan Conway (JIRA)

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

Alan Conway commented on PROTON-1512:
-

OK, I'll redo the impl to preserve whatever data is in the aborted frame but 
finish with a PN_STATE error rather than PN_EOS. It does make sense that since 
a sender could compose aborted frames any way they like, proton might as well 
simply reflect that to the application to be handled as the application likes. 
In particular it means the router can forward aborted frames verbatim and let 
the ultimate receiver decide what to do about it if they do included data, 
which makes the router more transparent.

> Expose the "aborted" flag for transferred deliveries
> 
>
> Key: PROTON-1512
> URL: https://issues.apache.org/jira/browse/PROTON-1512
> Project: Qpid Proton
>  Issue Type: New Feature
>  Components: proton-c
>Reporter: Ted Ross
>Assignee: Alan Conway
>  Labels: api
> Fix For: proton-c-0.18.0
>
>
> As we develop support for message streaming in Qpid Dispatch Router (i.e. 
> frames for large multi-frame messages are forwarded to destinations as they 
> arrive, before the complete message is received), there is a need to handle 
> the case where a received message is never completed.
> The AMQP protocol has a provision for this in the "aborted" flag in the 
> transfer performative.  If the router is in the process of streaming a large 
> message from sender to receiver and the sender drops before completing the 
> delivery, the router can send a transfer to the downstream receivers with the 
> "aborted" flag set.  This would indicate that the message should not be 
> processed and would not cause any framing errors on the link.
> Proton does not currently expose this capability in its API (There is a 
> pn_link_abort in the C header file, but it is commented out and not 
> implemented).
> In order to properly handle the failure cases for message streaming, this 
> feature must be usable in Proton.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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



[jira] [Commented] (PROTON-1512) Expose the "aborted" flag for transferred deliveries

2017-09-20 Thread Chuck Rolke (JIRA)

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

Chuck Rolke commented on PROTON-1512:
-

I'm trying to consume proton's behavior in qpid-dispatch. If a sender sends an 
aborted delivery to the router I believe that the router must forward that 
aborted delivery to it's message receivers. Then the receivers discard any data 
they have received so far.

When proton discards the frame in which the abort is set and that is the only 
frame then proton has discarded the message arguments, header, router headers, 
and the router can't route a meaningful message. From the outside the receiver 
will not see the same stream that the sender sent. If sender sends A, B, 
C(aborted), D and receiver receives A, B, D with no indication that anything 
weird happened to message C then the system is unreliable.

WRT a single-frame message with the aborted flag set: Why not? The spec allows 
for it and somebody will do it: I did it on my very first try!


> Expose the "aborted" flag for transferred deliveries
> 
>
> Key: PROTON-1512
> URL: https://issues.apache.org/jira/browse/PROTON-1512
> Project: Qpid Proton
>  Issue Type: New Feature
>  Components: proton-c
>Reporter: Ted Ross
>Assignee: Alan Conway
>  Labels: api
> Fix For: proton-c-0.18.0
>
>
> As we develop support for message streaming in Qpid Dispatch Router (i.e. 
> frames for large multi-frame messages are forwarded to destinations as they 
> arrive, before the complete message is received), there is a need to handle 
> the case where a received message is never completed.
> The AMQP protocol has a provision for this in the "aborted" flag in the 
> transfer performative.  If the router is in the process of streaming a large 
> message from sender to receiver and the sender drops before completing the 
> delivery, the router can send a transfer to the downstream receivers with the 
> "aborted" flag set.  This would indicate that the message should not be 
> processed and would not cause any framing errors on the link.
> Proton does not currently expose this capability in its API (There is a 
> pn_link_abort in the C header file, but it is commented out and not 
> implemented).
> In order to properly handle the failure cases for message streaming, this 
> feature must be usable in Proton.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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



[jira] [Commented] (PROTON-1512) Expose the "aborted" flag for transferred deliveries

2017-09-20 Thread Alan Conway (JIRA)

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

Alan Conway commented on PROTON-1512:
-

 Not sure I understand the problem.

First: If a frame is aborted, by definition it's content (if any) is irrelevant 
and must be discarded, so it seems correct to return PN_STATE immediately; 
rather than return data that can only be thrown away. You can call 
pn_delivery_aborted() to tell the difference between an aborted frame and some 
other problem that causes a PN_STATE return. If you want to send an aborted 
frame, it doesn't need to have any data in it - it would be ignored in any 
case. 

Second: Why would you ever send a single-frame message with the aborted flag 
set? The only reason to abort a message is if >0 frames are already sent and 
there are >0 frames left to go but the remaining frames can never be sent for 
some reason. If a message is complete in a single frame then either send it or 
don't - there's no reason to use aborted.


> Expose the "aborted" flag for transferred deliveries
> 
>
> Key: PROTON-1512
> URL: https://issues.apache.org/jira/browse/PROTON-1512
> Project: Qpid Proton
>  Issue Type: New Feature
>  Components: proton-c
>Reporter: Ted Ross
>Assignee: Alan Conway
>  Labels: api
> Fix For: proton-c-0.18.0
>
>
> As we develop support for message streaming in Qpid Dispatch Router (i.e. 
> frames for large multi-frame messages are forwarded to destinations as they 
> arrive, before the complete message is received), there is a need to handle 
> the case where a received message is never completed.
> The AMQP protocol has a provision for this in the "aborted" flag in the 
> transfer performative.  If the router is in the process of streaming a large 
> message from sender to receiver and the sender drops before completing the 
> delivery, the router can send a transfer to the downstream receivers with the 
> "aborted" flag set.  This would indicate that the message should not be 
> processed and would not cause any framing errors on the link.
> Proton does not currently expose this capability in its API (There is a 
> pn_link_abort in the C header file, but it is commented out and not 
> implemented).
> In order to properly handle the failure cases for message streaming, this 
> feature must be usable in Proton.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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



[jira] [Commented] (PROTON-1512) Expose the "aborted" flag for transferred deliveries

2017-09-19 Thread Chuck Rolke (JIRA)

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

Chuck Rolke commented on PROTON-1512:
-

Testing this feature there is an issue with how it is implemented. If a 
single-frame message comes in with abort=true in the header then pn_link_recv 
does not deliver any of the message. Instead it just delivery the -5 state 
error. In the case where the second message is aborted pn_link_recv returns:
{noformat}
125 - some length 1
-1 - EOS
-5 - STATE_ERROR
{noformat}

When two normal, short messages are received pn_link_recv returns:
{noformat}
125 - some length 1
-1 - EOS
125 - some length 2
-1 - EOS
{noformat}

In order for the router to have some message header to send down the line 
proton must deliver the content of the header that had the abort=true.
{noformat}
125 - some length 1
-1 - EOS
125 - some length 2
-5 - STATE_ERROR
{noformat}


> Expose the "aborted" flag for transferred deliveries
> 
>
> Key: PROTON-1512
> URL: https://issues.apache.org/jira/browse/PROTON-1512
> Project: Qpid Proton
>  Issue Type: New Feature
>  Components: proton-c
>Reporter: Ted Ross
>Assignee: Alan Conway
>  Labels: api
> Fix For: proton-c-0.18.0
>
>
> As we develop support for message streaming in Qpid Dispatch Router (i.e. 
> frames for large multi-frame messages are forwarded to destinations as they 
> arrive, before the complete message is received), there is a need to handle 
> the case where a received message is never completed.
> The AMQP protocol has a provision for this in the "aborted" flag in the 
> transfer performative.  If the router is in the process of streaming a large 
> message from sender to receiver and the sender drops before completing the 
> delivery, the router can send a transfer to the downstream receivers with the 
> "aborted" flag set.  This would indicate that the message should not be 
> processed and would not cause any framing errors on the link.
> Proton does not currently expose this capability in its API (There is a 
> pn_link_abort in the C header file, but it is commented out and not 
> implemented).
> In order to properly handle the failure cases for message streaming, this 
> feature must be usable in Proton.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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



[jira] [Commented] (PROTON-1512) Expose the "aborted" flag for transferred deliveries

2017-09-13 Thread ASF subversion and git services (JIRA)

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

ASF subversion and git services commented on PROTON-1512:
-

Commit 73bb4da612866c5ca5963fa3b87a951bad5e0947 in qpid-proton's branch 
refs/heads/master from [~aconway]
[ https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;h=73bb4da ]

PROTON-1512: Remove stray FIXME comment


> Expose the "aborted" flag for transferred deliveries
> 
>
> Key: PROTON-1512
> URL: https://issues.apache.org/jira/browse/PROTON-1512
> Project: Qpid Proton
>  Issue Type: New Feature
>  Components: proton-c
>Reporter: Ted Ross
>Assignee: Alan Conway
>  Labels: api
> Fix For: proton-c-0.18.0
>
>
> As we develop support for message streaming in Qpid Dispatch Router (i.e. 
> frames for large multi-frame messages are forwarded to destinations as they 
> arrive, before the complete message is received), there is a need to handle 
> the case where a received message is never completed.
> The AMQP protocol has a provision for this in the "aborted" flag in the 
> transfer performative.  If the router is in the process of streaming a large 
> message from sender to receiver and the sender drops before completing the 
> delivery, the router can send a transfer to the downstream receivers with the 
> "aborted" flag set.  This would indicate that the message should not be 
> processed and would not cause any framing errors on the link.
> Proton does not currently expose this capability in its API (There is a 
> pn_link_abort in the C header file, but it is commented out and not 
> implemented).
> In order to properly handle the failure cases for message streaming, this 
> feature must be usable in Proton.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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



[jira] [Commented] (PROTON-1512) Expose the "aborted" flag for transferred deliveries

2017-09-12 Thread ASF subversion and git services (JIRA)

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

ASF subversion and git services commented on PROTON-1512:
-

Commit a08929eba61dd0270e01dc99ab85836804cfaf2b in qpid-proton's branch 
refs/heads/master from [~astitcher]
[ https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;h=a08929e ]

PROTON-1512: Fix warning for declaration in middle of switch


> Expose the "aborted" flag for transferred deliveries
> 
>
> Key: PROTON-1512
> URL: https://issues.apache.org/jira/browse/PROTON-1512
> Project: Qpid Proton
>  Issue Type: New Feature
>  Components: proton-c
>Reporter: Ted Ross
>Assignee: Alan Conway
>  Labels: api
> Fix For: proton-c-0.18.0
>
>
> As we develop support for message streaming in Qpid Dispatch Router (i.e. 
> frames for large multi-frame messages are forwarded to destinations as they 
> arrive, before the complete message is received), there is a need to handle 
> the case where a received message is never completed.
> The AMQP protocol has a provision for this in the "aborted" flag in the 
> transfer performative.  If the router is in the process of streaming a large 
> message from sender to receiver and the sender drops before completing the 
> delivery, the router can send a transfer to the downstream receivers with the 
> "aborted" flag set.  This would indicate that the message should not be 
> processed and would not cause any framing errors on the link.
> Proton does not currently expose this capability in its API (There is a 
> pn_link_abort in the C header file, but it is commented out and not 
> implemented).
> In order to properly handle the failure cases for message streaming, this 
> feature must be usable in Proton.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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



[jira] [Commented] (PROTON-1512) Expose the "aborted" flag for transferred deliveries

2017-09-12 Thread ASF subversion and git services (JIRA)

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

ASF subversion and git services commented on PROTON-1512:
-

Commit f719f80da8c5a4939654e4efb720a02f470026e2 in qpid-proton's branch 
refs/heads/master from [~aconway]
[ https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;h=f719f80 ]

PROTON-1512: Expose the "aborted" flag for transferred deliveries


> Expose the "aborted" flag for transferred deliveries
> 
>
> Key: PROTON-1512
> URL: https://issues.apache.org/jira/browse/PROTON-1512
> Project: Qpid Proton
>  Issue Type: New Feature
>  Components: proton-c
>Reporter: Ted Ross
>Assignee: Alan Conway
>  Labels: api
> Fix For: proton-c-0.18.0
>
>
> As we develop support for message streaming in Qpid Dispatch Router (i.e. 
> frames for large multi-frame messages are forwarded to destinations as they 
> arrive, before the complete message is received), there is a need to handle 
> the case where a received message is never completed.
> The AMQP protocol has a provision for this in the "aborted" flag in the 
> transfer performative.  If the router is in the process of streaming a large 
> message from sender to receiver and the sender drops before completing the 
> delivery, the router can send a transfer to the downstream receivers with the 
> "aborted" flag set.  This would indicate that the message should not be 
> processed and would not cause any framing errors on the link.
> Proton does not currently expose this capability in its API (There is a 
> pn_link_abort in the C header file, but it is commented out and not 
> implemented).
> In order to properly handle the failure cases for message streaming, this 
> feature must be usable in Proton.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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



[jira] [Commented] (PROTON-1512) Expose the "aborted" flag for transferred deliveries

2017-09-12 Thread Alan Conway (JIRA)

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

Alan Conway commented on PROTON-1512:
-

I would suggest forwarding the abort - forward the messages as it is received, 
including a final frame with aborted=true if it is aborted. That means the 
router is transparent and leaves the problem of dealing with aborted messages 
to the receiving client.

> Expose the "aborted" flag for transferred deliveries
> 
>
> Key: PROTON-1512
> URL: https://issues.apache.org/jira/browse/PROTON-1512
> Project: Qpid Proton
>  Issue Type: New Feature
>  Components: proton-c
>Reporter: Ted Ross
>Assignee: Alan Conway
>  Labels: api
> Fix For: proton-c-0.18.0
>
>
> As we develop support for message streaming in Qpid Dispatch Router (i.e. 
> frames for large multi-frame messages are forwarded to destinations as they 
> arrive, before the complete message is received), there is a need to handle 
> the case where a received message is never completed.
> The AMQP protocol has a provision for this in the "aborted" flag in the 
> transfer performative.  If the router is in the process of streaming a large 
> message from sender to receiver and the sender drops before completing the 
> delivery, the router can send a transfer to the downstream receivers with the 
> "aborted" flag set.  This would indicate that the message should not be 
> processed and would not cause any framing errors on the link.
> Proton does not currently expose this capability in its API (There is a 
> pn_link_abort in the C header file, but it is commented out and not 
> implemented).
> In order to properly handle the failure cases for message streaming, this 
> feature must be usable in Proton.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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