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