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 

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

Reply via email to