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

Martin Ritchie closed QPID-573.
-------------------------------

    Resolution: Fixed

Closed as there is a test and commits to both M2 and trunk

> race condition between rollback() and the dispatcher thread in the java client
> ------------------------------------------------------------------------------
>
>                 Key: QPID-573
>                 URL: https://issues.apache.org/jira/browse/QPID-573
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Client
>    Affects Versions: M2
>            Reporter: Rafael H. Schloming
>            Assignee: Aidan Skinner
>             Fix For: M3
>
>
> SVN change 572751 fixes a rather subtle race condition in the java client 
> implementation of rollback() that is responsible for one of the intermittent 
> failure modes of TransactedTest.
> Prior to this change it was possible for the cleanup code in rollback() to 
> occasionally miss a message because the dispatcher thread in AMQSession holds 
> the message for a short time after extracting it from _queue and prior to 
> dispatching it to a consumer. If the rollback code runs during this period, 
> the prefetched message being held in the dispatcher thread is erroneously 
> delivered despite being rolled back.
> I suspect this race condition also occurs on the M2 branch as well, so it may 
> be worth merging this fix to the branch. Placing a Thread.sleep(500) as the 
> first line in the dispatcher thread and running TransactedTest should 
> consistently reproduce the issue if it exists.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to