You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by "Martin Ritchie (JIRA)" <qp...@incubator.apache.org> on 2008/10/23 10:26:44 UTC
[jira] Commented: (QPID-1385)
CommitRollbackTest.testSend2ThenRollback failure from build system
[ 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.