[ 
https://issues.apache.org/jira/browse/QPID-5877?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrew MacBean resolved QPID-5877.
----------------------------------

    Resolution: Fixed

> Potential for rejected messages to be resent out of order
> ---------------------------------------------------------
>
>                 Key: QPID-5877
>                 URL: https://issues.apache.org/jira/browse/QPID-5877
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Broker
>            Reporter: Andrew MacBean
>            Assignee: Andrew MacBean
>             Fix For: 0.29
>
>
> Based on investigation of a test failures in the 
> FailoverBehaviourTest#testTransactionRolledBackExceptionThrownOnCommitAfterFailoverOnMessageReceiving()
>  it was observed that the messages consumed by the client after failover were 
> out of order.  
> This manifested itself because of a client bug (QPID-5878) that means that 
> after failover the highestDeliveryTag was not rest and so rejects were send 
> spuriosly for messages previously delivered.  
> This meant that if the AbstractQueue.getNextAvailableEntry was executing 
> while the IO Thread caused a rejected message to be requeued (and updated 
> lastSeen node) the logic that finally decides the next entry node would 
> incorrectly continue if the lastSeen and releasedNodes where the very same 
> queue entry.  This would mean that the next selected by the broker would 
> break the ordering sequence expected.
> Basically, the AbstractQueue.getNextAvailableEntry implementation has the 
> potential to choose the wrong node when lastSeen and releasedNode are the 
> same as the compareTo impl to determine which node to select but uses the > 
> operator rather than >= and so wont select releasedNode in the case were that 
> and lastSeen are the same.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@qpid.apache.org
For additional commands, e-mail: dev-h...@qpid.apache.org

Reply via email to