[ 
https://issues.apache.org/jira/browse/QPID-1385?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12642117#action_12642117
 ] 

Martin Ritchie commented on QPID-1385:
--------------------------------------

Analysis of race condition between added to unacked map and resending due to a 
rollback.

     * In AMQChannel _unackedMap.clear() was done after the visit. This meant 
that the clear was not in the same
     * synchronized block as as the preparation to resend.
     *
     * This clearing/prep for resend was done as a result of the rollback call. 
HOWEVER, the delivery thread was still
     * in the process of sending messages to the client. It is therefore 
possible that a message could block on the
     * _unackedMap lock waiting for the visit to complete so that it can add 
the new message to the unackedMap....
     * which is then cleared by the resend/rollback thread.
     *
     * This problem was encountered by the testSend2ThenRollback test.
     *
     * To try and increase the chance of the race condition occurring this test 
will send multiple messages so that the
     * delivery thread will be in progress while the rollback method is called. 
Hopefully this will cause the
     * deliveryTag to be lost


> CommitRollbackTest.testSend2ThenRollback failure from build system
> ------------------------------------------------------------------
>
>                 Key: QPID-1385
>                 URL: https://issues.apache.org/jira/browse/QPID-1385
>             Project: Qpid
>          Issue Type: Bug
>          Components: Java Tests
>    Affects Versions: M3, M4
>            Reporter: Martin Ritchie
>            Assignee: Martin Ritchie
>             Fix For: M4
>
>         Attachments: 
> TEST-org.apache.qpid.test.unit.transacted.CommitRollbackTest.testSend2ThenRollback.out
>
>
> Summary:
> The following failure occurred last night:
> testSend2ThenRollback
> org.apache.qpid.test.unit.transacted.CommitRollbackTest
> org.apache.qpid.client.JMSAMQException: Fail-over interrupted commit. Status 
> of the commit is uncertain.  
> at org.apache.qpid.client.AMQSession.commit(AMQSession.java:740)  
> at 
> org.apache.qpid.test.unit.transacted.CommitRollbackTest.testSend2ThenRollback(CommitRollbackTest.java:370)
>   
> at org.apache.qpid.test.utils.QpidTestCase.runBare(QpidTestCase.java:186)  
> at org.apache.qpid.test.utils.QpidTestCase.run(QpidTestCase.java:220)
> Attached is the full output from the test.

-- 
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