Gordon Sim created PROTON-734: --------------------------------- Summary: 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)