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