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 2014/10/29 11:59:34 UTC

[jira] [Created] (PROTON-734) deliveries are not returned in order

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)