You are viewing a plain text version of this content. The canonical link for it is here.
Posted to proton@qpid.apache.org by "Gordon Sim (JIRA)" <ji...@apache.org> on 2015/02/17 19:44:12 UTC
[jira] [Closed] (PROTON-734) deliveries are not returned in order
[ https://issues.apache.org/jira/browse/PROTON-734?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gordon Sim closed PROTON-734.
-----------------------------
Resolution: Won't Fix
The conclusion here was to use the event api instead of the old work queue api, which avoids the problem.
> deliveries are not returned in order
> ------------------------------------
>
> Key: PROTON-734
> URL: https://issues.apache.org/jira/browse/PROTON-734
> Project: Qpid Proton
> Issue Type: Bug
> Components: proton-c
> Affects Versions: 0.8
> Reporter: Gordon Sim
> Assignee: Rafael H. Schloming
> Priority: Critical
>
> If, on a single session, I send e.g. 3 messages on one link, followed by a message on another link, then on the receiving side I expect those to be returned in the order in which they are sent.
> Although proton-c on the receiving side receives them in the correct order as verified by turning on tracing, the order in which the respective deliveries are returned by pn_work_head()/pn_work_next() is not correct. I get the first message, followed by the last message (i.e. the fourth), then the second and third.
> If I modify the test to send a fifth message to a third link, then on the receiving side the 5th message is received 3rd. I.e. it appears that the work queue involves taking the first delivery off each link, rather than having a session level ordering(?)
> In the case where a transaction discharge message is sent *after* some transactional publications, this results in the discharge being processed before all the publications the transaction is supposed to cover. (The sender can of course wait for all the transactional publications to be accepted before it sends the commit, but on a single session this isn't necessary and as far as I can see not required by the spec.) In any case, preserving order is likely to be important in other cases.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)