[
https://issues.apache.org/jira/browse/QPID-2901?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13091768#comment-13091768
]
Alex Rudyy edited comment on QPID-2901 at 8/29/11 10:43 AM:
------------------------------------------------------------
The attached patch fixes the problem by changing the following:
- un-registering of existing subscriptions in ServerConnection#sessionClose
method
- transport session closing state is checked in Subscription_0_10#isSuspended
method
The system test case to reproduce the racing conditions and verify fix is
attached as a separate patch
was (Author: alex.rufous):
The attached patch fixes the problem by changing the following:
- subscription send locks are acquired before closing the session from SCDP
- transport session closing state is checked in Subscription_0_10#isSuspended
method
> A number of tests sporadically fails with 0.10 profiles on attempt to commit
> transaction due to exception in org.apache.qpid.transport.Session#sync
> ---------------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: QPID-2901
> URL: https://issues.apache.org/jira/browse/QPID-2901
> Project: Qpid
> Issue Type: Bug
> Components: Java Broker, Java Client
> Affects Versions: 0.7, 0.8, 0.9, 0.10, 0.11, 0.12
> Reporter: Robbie Gemmell
> Attachments:
> 0001-QPID-2901-Fixes-racing-conditions-on-broker-side-whe.patch,
> 0001-QPID-2901-System-test-to-reproduce-racing-conditions.patch
>
>
> The following stack trace is printed for failed commit
> org.apache.qpid.transport.SessionException: ch=0 id=0
> ExecutionException(errorCode=INTERNAL_ERROR, commandId=13,
> description=Exception processing command: java.lang.RuntimeException: Failed
> to commit transaction)
> at org.apache.qpid.transport.Session.sync(Session.java:807)
> at org.apache.qpid.transport.Session.sync(Session.java:772)
> at org.apache.qpid.transport.Session.invoke(Session.java:732)
> at org.apache.qpid.transport.Session.invoke(Session.java:561)
> at
> org.apache.qpid.transport.SessionInvoker.txCommit(SessionInvoker.java:148)
> at
> org.apache.qpid.client.AMQSession_0_10.sendCommit(AMQSession_0_10.java:423)
> at
> org.apache.qpid.client.AMQSession_0_10.commit(AMQSession_0_10.java:1008)
> at
> org.apache.qpid.systest.TestingBaseCase$1.run(TestingBaseCase.java:105)
> at java.lang.Thread.run(Thread.java:619)
> This is the list of failing tests:
> org.apache.qpid.systest.SubscriptionTest#testTopicDurableConsumerMessageAge
> org.apache.qpid.systest.SubscriptionTest#testTopicDurableConsumerMessageCount
> org.apache.qpid.systest.TopicTest#org.apache.qpid.systest.TopicTest
> org.apache.qpid.systest.TopicTest#testTopicDurableConsumerMessageAge
> org.apache.qpid.systest.GlobalQueuesTest#testTopicDurableConsumerMessageAge
> org.apache.qpid.systest.GlobalTopicsTest#testTopicDurableConsumerMessageSize
> org.apache.qpid.systest.GlobalTopicsTest#testTopicDurableConsumerMessageAge
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]