[JBoss JIRA] (JBTM-1751) TransactionRolledBackException thrown during the test case of
by Amos Feng (JIRA)
[ https://issues.jboss.org/browse/JBTM-1751?page=com.atlassian.jira.plugin.... ]
Amos Feng updated JBTM-1751:
----------------------------
Summary: TransactionRolledBackException thrown during the test case of (was: TransactionRolledBackException thrown during commit in com.jboss.transaction.txinterop.interop.ATTest)
> TransactionRolledBackException thrown during the test case of
> --------------------------------------------------------------
>
> Key: JBTM-1751
> URL: https://issues.jboss.org/browse/JBTM-1751
> Project: JBoss Transaction Manager
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: XTS
> Reporter: Gytis Trikleris
> Assignee: Amos Feng
> Fix For: 4.17.8, 5.0.0.M4
>
> Original Estimate: 2 hours
> Time Spent: 2 hours
> Remaining Estimate: 1 day
>
> http://172.17.131.2/view/Narayana+BlackTie/job/jbossts-EAP61/1791/console...
> {code}
> [0m[31m22:25:44,948 ERROR [org.jboss.arquillian.protocol.jmx.JMXTestRunner] (pool-1-thread-1) Failed: com.jboss.transaction.txinterop.interop.ATTest.testAT4_1: com.arjuna.wst.TransactionRolledBackException
> at com.arjuna.wst11.stub.CompletionStub.commit(CompletionStub.java:65) [jbossxts-4.17.5.Final-SNAPSHOT.jar:4.17.5.Final-SNAPSHOT]
> at com.jboss.transaction.txinterop.interop.ATTestCase.testAT4_1(ATTestCase.java:281) [classes:]
> at com.jboss.transaction.txinterop.interop.ATTest.testAT4_1(ATTest.java:104) [classes:]
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.6.0_37]
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [rt.jar:1.6.0_37]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [rt.jar:1.6.0_37]
> at java.lang.reflect.Method.invoke(Method.java:597) [rt.jar:1.6.0_37]
> at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45) [arquillian-service:]
> at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) [arquillian-service:]
> at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42) [arquillian-service:]
> at org.jboss.arquillian.junit.Arquillian$6$1.invoke(Arquillian.java:270) [arquillian-service:]
> at org.jboss.arquillian.container.test.impl.execution.LocalTestExecuter.execute(LocalTestExecuter.java:60) [arquillian-service:]
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.6.0_37]
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [rt.jar:1.6.0_37]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [rt.jar:1.6.0_37]
> at java.lang.reflect.Method.invoke(Method.java:597) [rt.jar:1.6.0_37]
> at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90) [arquillian-service:]
> at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99) [arquillian-service:]
> at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81) [arquillian-service:]
> at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:135) [arquillian-service:]
> at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:115) [arquillian-service:]
> at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:67) [arquillian-service:]
> at org.jboss.arquillian.container.test.impl.execution.ContainerTestExecuter.execute(ContainerTestExecuter.java:38) [arquillian-service:]
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.6.0_37]
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [rt.jar:1.6.0_37]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [rt.jar:1.6.0_37]
> at java.lang.reflect.Method.invoke(Method.java:597) [rt.jar:1.6.0_37]
> at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90) [arquillian-service:]
> at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99) [arquillian-service:]
> at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81) [arquillian-service:]
> at org.jboss.arquillian.test.impl.TestContextHandler.createTestContext(TestContextHandler.java:89) [arquillian-service:]
> at sun.reflect.GeneratedMethodAccessor91.invoke(Unknown Source) [:1.6.0_37]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [rt.jar:1.6.0_37]
> at java.lang.reflect.Method.invoke(Method.java:597) [rt.jar:1.6.0_37]
> at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90) [arquillian-service:]
> at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88) [arquillian-service:]
> at org.jboss.arquillian.test.impl.TestContextHandler.createClassContext(TestContextHandler.java:75) [arquillian-service:]
> at sun.reflect.GeneratedMethodAccessor90.invoke(Unknown Source) [:1.6.0_37]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [rt.jar:1.6.0_37]
> at java.lang.reflect.Method.invoke(Method.java:597) [rt.jar:1.6.0_37]
> at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90) [arquillian-service:]
> at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88) [arquillian-service:]
> at org.jboss.arquillian.test.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:60) [arquillian-service:]
> at sun.reflect.GeneratedMethodAccessor87.invoke(Unknown Source) [:1.6.0_37]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [rt.jar:1.6.0_37]
> at java.lang.reflect.Method.invoke(Method.java:597) [rt.jar:1.6.0_37]
> at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90) [arquillian-service:]
> at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88) [arquillian-service:]
> at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:135) [arquillian-service:]
> at org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.test(EventTestRunnerAdaptor.java:111) [arquillian-service:]
> at org.jboss.arquillian.junit.Arquillian$6.evaluate(Arquillian.java:263) [arquillian-service:]
> at org.jboss.arquillian.junit.Arquillian$4.evaluate(Arquillian.java:226) [arquillian-service:]
> at org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java:314) [arquillian-service:]
> at org.jboss.arquillian.junit.Arquillian.access$100(Arquillian.java:46) [arquillian-service:]
> at org.jboss.arquillian.junit.Arquillian$5.evaluate(Arquillian.java:240) [arquillian-service:]
> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263) [arquillian-service:]
> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68) [arquillian-service:]
> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47) [arquillian-service:]
> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231) [arquillian-service:]
> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60) [arquillian-service:]
> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229) [arquillian-service:]
> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50) [arquillian-service:]
> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222) [arquillian-service:]
> at org.jboss.arquillian.junit.Arquillian$2.evaluate(Arquillian.java:185) [arquillian-service:]
> at org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java:314) [arquillian-service:]
> at org.jboss.arquillian.junit.Arquillian.access$100(Arquillian.java:46) [arquillian-service:]
> at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:199) [arquillian-service:]
> at org.junit.runners.ParentRunner.run(ParentRunner.java:300) [arquillian-service:]
> at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:147) [arquillian-service:]
> at org.junit.runner.JUnitCore.run(JUnitCore.java:157) [arquillian-service:]
> at org.junit.runner.JUnitCore.run(JUnitCore.java:136) [arquillian-service:]
> at org.jboss.arquillian.junit.container.JUnitTestRunner.execute(JUnitTestRunner.java:65) [arquillian-service:]
> at org.jboss.arquillian.protocol.jmx.JMXTestRunner.runTestMethodInternal(JMXTestRunner.java:128) [arquillian-service:]
> at org.jboss.arquillian.protocol.jmx.JMXTestRunner.runTestMethod(JMXTestRunner.java:107) [arquillian-service:]
> at org.jboss.as.arquillian.service.ArquillianService$ExtendedJMXTestRunner.runTestMethod(ArquillianService.java:214) [arquillian-service:]
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.6.0_37]
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [rt.jar:1.6.0_37]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [rt.jar:1.6.0_37]
> at java.lang.reflect.Method.invoke(Method.java:597) [rt.jar:1.6.0_37]
> at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:93) [rt.jar:1.6.0_37]
> at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:27) [rt.jar:1.6.0_37]
> at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:208) [rt.jar:1.6.0_37]
> at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:120) [rt.jar:1.6.0_37]
> at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:262) [rt.jar:1.6.0_37]
> at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836) [rt.jar:1.6.0_37]
> at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761) [rt.jar:1.6.0_37]
> at org.jboss.as.jmx.PluggableMBeanServerImpl$TcclMBeanServer.invoke(PluggableMBeanServerImpl.java:527)
> at org.jboss.as.jmx.PluggableMBeanServerImpl.invoke(PluggableMBeanServerImpl.java:263)
> at org.jboss.remotingjmx.protocol.v2.ServerProxy$InvokeHandler.handle(ServerProxy.java:915)
> at org.jboss.remotingjmx.protocol.v2.ServerCommon$MessageReciever$1.run(ServerCommon.java:152)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_37]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_37]
> at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_37]
> {code}
> Another errors in the log:
> {code}
> [0m[33m22:26:26,763 WARN [com.arjuna.mw.wstx] (TaskWorker-2) ARJUNA045035: comms timeout attempting to prepare WS-AT participant D0:ffffac118324:4acfdb55:51afacb7:87
> [0m[31m22:26:26,763 ERROR [stderr] (TaskWorker-2) com.arjuna.mw.wsas.exceptions.SystemCommunicationException: com.arjuna.wst.stub.SystemCommunicationException
> [0m[31m22:26:26,763 ERROR [stderr] (TaskWorker-2) at com.arjuna.mwlabs.wst.at.participants.DurableTwoPhaseCommitParticipant.prepare(DurableTwoPhaseCommitParticipant.java:124)
> [0m[31m22:26:26,764 ERROR [stderr] (TaskWorker-2) at com.arjuna.mwlabs.wst.at.participants.DurableTwoPhaseCommitParticipant.confirmOnePhase(DurableTwoPhaseCommitParticipant.java:233)
> [0m[31m22:26:26,764 ERROR [stderr] (TaskWorker-2) at com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord.topLevelOnePhaseCommit(ParticipantRecord.java:429)
> [0m[31m22:26:26,764 ERROR [stderr] (TaskWorker-2) at com.arjuna.ats.arjuna.coordinator.BasicAction.onePhaseCommit(BasicAction.java:2263)
> [0m[31m22:26:26,764 ERROR [stderr] (TaskWorker-2) at com.arjuna.ats.arjuna.coordinator.BasicAction.End(BasicAction.java:1475)
> [0m[31m22:26:26,764 ERROR [stderr] (TaskWorker-2) at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinator.java:98)
> [0m[31m22:26:26,765 ERROR [stderr] (TaskWorker-2) at com.arjuna.mwlabs.wscf.model.twophase.arjunacore.CoordinatorControl.complete(CoordinatorControl.java:137)
> [0m[31m22:26:26,765 ERROR [stderr] (TaskWorker-2) at com.arjuna.mwlabs.wscf11.model.twophase.arjunacore.TwoPhaseHLSImple.complete(TwoPhaseHLSImple.java:130)
> [0m[31m22:26:26,765 ERROR [stderr] (TaskWorker-2) at com.arjuna.mwlabs.wsas.activity.ActivityImple.end(ActivityImple.java:293)
> [0m[31m22:26:26,765 ERROR [stderr] (TaskWorker-2) at com.arjuna.mwlabs.wsas.UserActivityImple.end(UserActivityImple.java:261)
> [0m[31m22:26:26,765 ERROR [stderr] (TaskWorker-2) at com.arjuna.mwlabs.wscf.model.twophase.arjunacore.CoordinatorServiceImple.confirm(CoordinatorServiceImple.java:156)
> [0m[31m22:26:26,766 ERROR [stderr] (TaskWorker-2) at com.arjuna.mwlabs.wst11.at.participants.CompletionCoordinatorImple.commit(CompletionCoordinatorImple.java:41)
> [0m[31m22:26:26,766 ERROR [stderr] (TaskWorker-2) at com.arjuna.wst11.messaging.CompletionCoordinatorProcessorImpl.commit(CompletionCoordinatorProcessorImpl.java:84)
> [0m[31m22:26:26,766 ERROR [stderr] (TaskWorker-2) at com.arjuna.webservices11.wsat.sei.CompletionCoordinatorPortTypeImpl$1.executeTask(CompletionCoordinatorPortTypeImpl.java:58)
> [0m[31m22:26:26,766 ERROR [stderr] (TaskWorker-2) at com.arjuna.services.framework.task.TaskWorker.run(TaskWorker.java:63)
> [0m[31m22:26:26,766 ERROR [stderr] (TaskWorker-2) at java.lang.Thread.run(Thread.java:662)
> {code}
> and:
> {code}
> [0m[33m22:27:03,729 WARN [com.arjuna.mw.wstx] (TaskWorker-2) ARJUNA045035: comms timeout attempting to prepare WS-AT participant D0:ffffac118324:4acfdb55:51afacb7:9c
> [0m[31m22:27:03,730 ERROR [stderr] (TaskWorker-2) com.arjuna.mw.wsas.exceptions.SystemCommunicationException: com.arjuna.wst.stub.SystemCommunicationException
> [0m[31m22:27:03,730 ERROR [stderr] (TaskWorker-2) at com.arjuna.mwlabs.wst.at.participants.DurableTwoPhaseCommitParticipant.prepare(DurableTwoPhaseCommitParticipant.java:124)
> [0m[31m22:27:03,731 ERROR [stderr] (TaskWorker-2) at com.arjuna.mwlabs.wst.at.participants.DurableTwoPhaseCommitParticipant.confirmOnePhase(DurableTwoPhaseCommitParticipant.java:233)
> [0m[31m22:27:03,731 ERROR [stderr] (TaskWorker-2) at com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord.topLevelOnePhaseCommit(ParticipantRecord.java:429)
> [0m[31m22:27:03,731 ERROR [stderr] (TaskWorker-2) at com.arjuna.ats.arjuna.coordinator.BasicAction.onePhaseCommit(BasicAction.java:2263)
> [0m[31m22:27:03,731 ERROR [stderr] (TaskWorker-2) at com.arjuna.ats.arjuna.coordinator.BasicAction.End(BasicAction.java:1475)
> [0m[31m22:27:03,732 ERROR [stderr] (TaskWorker-2) at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinator.java:98)
> [0m[31m22:27:03,732 ERROR [stderr] (TaskWorker-2) at com.arjuna.mwlabs.wscf.model.twophase.arjunacore.CoordinatorControl.complete(CoordinatorControl.java:137)
> [0m[31m22:27:03,732 ERROR [stderr] (TaskWorker-2) at com.arjuna.mwlabs.wscf11.model.twophase.arjunacore.TwoPhaseHLSImple.complete(TwoPhaseHLSImple.java:130)
> [0m[31m22:27:03,732 ERROR [stderr] (TaskWorker-2) at com.arjuna.mwlabs.wsas.activity.ActivityImple.end(ActivityImple.java:293)
> [0m[31m22:27:03,733 ERROR [stderr] (TaskWorker-2) at com.arjuna.mwlabs.wsas.UserActivityImple.end(UserActivityImple.java:261)
> [0m[31m22:27:03,733 ERROR [stderr] (TaskWorker-2) at com.arjuna.mwlabs.wscf.model.twophase.arjunacore.CoordinatorServiceImple.confirm(CoordinatorServiceImple.java:156)
> [0m[31m22:27:03,733 ERROR [stderr] (TaskWorker-2) at com.arjuna.mwlabs.wst11.at.participants.CompletionCoordinatorImple.commit(CompletionCoordinatorImple.java:41)
> [0m[31m22:27:03,733 ERROR [stderr] (TaskWorker-2) at com.arjuna.wst11.messaging.CompletionCoordinatorProcessorImpl.commit(CompletionCoordinatorProcessorImpl.java:84)
> [0m[31m22:27:03,733 ERROR [stderr] (TaskWorker-2) at com.arjuna.webservices11.wsat.sei.CompletionCoordinatorPortTypeImpl$1.executeTask(CompletionCoordinatorPortTypeImpl.java:58)
> [0m[31m22:27:03,734 ERROR [stderr] (TaskWorker-2) at com.arjuna.services.framework.task.TaskWorker.run(TaskWorker.java:63)
> [0m[31m22:27:03,734 ERROR [stderr] (TaskWorker-2) at java.lang.Thread.run(Thread.java:662)
> {code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
10 years, 9 months
[JBoss JIRA] (JBTM-1751) TransactionRolledBackException thrown during commit in com.jboss.transaction.txinterop.interop.ATTest
by Paul Robinson (JIRA)
[ https://issues.jboss.org/browse/JBTM-1751?page=com.atlassian.jira.plugin.... ]
Paul Robinson commented on JBTM-1751:
-------------------------------------
Amos,
I agree. I think you need to use Byteman to make sure the readOnly message is processed before the producer of the message proceeds.
> TransactionRolledBackException thrown during commit in com.jboss.transaction.txinterop.interop.ATTest
> -----------------------------------------------------------------------------------------------------
>
> Key: JBTM-1751
> URL: https://issues.jboss.org/browse/JBTM-1751
> Project: JBoss Transaction Manager
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: XTS
> Reporter: Gytis Trikleris
> Assignee: Amos Feng
> Fix For: 4.17.8, 5.0.0.M4
>
> Original Estimate: 2 hours
> Time Spent: 2 hours
> Remaining Estimate: 1 day
>
> http://172.17.131.2/view/Narayana+BlackTie/job/jbossts-EAP61/1791/console...
> {code}
> [0m[31m22:25:44,948 ERROR [org.jboss.arquillian.protocol.jmx.JMXTestRunner] (pool-1-thread-1) Failed: com.jboss.transaction.txinterop.interop.ATTest.testAT4_1: com.arjuna.wst.TransactionRolledBackException
> at com.arjuna.wst11.stub.CompletionStub.commit(CompletionStub.java:65) [jbossxts-4.17.5.Final-SNAPSHOT.jar:4.17.5.Final-SNAPSHOT]
> at com.jboss.transaction.txinterop.interop.ATTestCase.testAT4_1(ATTestCase.java:281) [classes:]
> at com.jboss.transaction.txinterop.interop.ATTest.testAT4_1(ATTest.java:104) [classes:]
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.6.0_37]
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [rt.jar:1.6.0_37]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [rt.jar:1.6.0_37]
> at java.lang.reflect.Method.invoke(Method.java:597) [rt.jar:1.6.0_37]
> at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:45) [arquillian-service:]
> at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) [arquillian-service:]
> at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42) [arquillian-service:]
> at org.jboss.arquillian.junit.Arquillian$6$1.invoke(Arquillian.java:270) [arquillian-service:]
> at org.jboss.arquillian.container.test.impl.execution.LocalTestExecuter.execute(LocalTestExecuter.java:60) [arquillian-service:]
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.6.0_37]
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [rt.jar:1.6.0_37]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [rt.jar:1.6.0_37]
> at java.lang.reflect.Method.invoke(Method.java:597) [rt.jar:1.6.0_37]
> at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90) [arquillian-service:]
> at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99) [arquillian-service:]
> at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81) [arquillian-service:]
> at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:135) [arquillian-service:]
> at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:115) [arquillian-service:]
> at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:67) [arquillian-service:]
> at org.jboss.arquillian.container.test.impl.execution.ContainerTestExecuter.execute(ContainerTestExecuter.java:38) [arquillian-service:]
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.6.0_37]
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [rt.jar:1.6.0_37]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [rt.jar:1.6.0_37]
> at java.lang.reflect.Method.invoke(Method.java:597) [rt.jar:1.6.0_37]
> at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90) [arquillian-service:]
> at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99) [arquillian-service:]
> at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81) [arquillian-service:]
> at org.jboss.arquillian.test.impl.TestContextHandler.createTestContext(TestContextHandler.java:89) [arquillian-service:]
> at sun.reflect.GeneratedMethodAccessor91.invoke(Unknown Source) [:1.6.0_37]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [rt.jar:1.6.0_37]
> at java.lang.reflect.Method.invoke(Method.java:597) [rt.jar:1.6.0_37]
> at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90) [arquillian-service:]
> at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88) [arquillian-service:]
> at org.jboss.arquillian.test.impl.TestContextHandler.createClassContext(TestContextHandler.java:75) [arquillian-service:]
> at sun.reflect.GeneratedMethodAccessor90.invoke(Unknown Source) [:1.6.0_37]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [rt.jar:1.6.0_37]
> at java.lang.reflect.Method.invoke(Method.java:597) [rt.jar:1.6.0_37]
> at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90) [arquillian-service:]
> at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88) [arquillian-service:]
> at org.jboss.arquillian.test.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:60) [arquillian-service:]
> at sun.reflect.GeneratedMethodAccessor87.invoke(Unknown Source) [:1.6.0_37]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [rt.jar:1.6.0_37]
> at java.lang.reflect.Method.invoke(Method.java:597) [rt.jar:1.6.0_37]
> at org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90) [arquillian-service:]
> at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88) [arquillian-service:]
> at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:135) [arquillian-service:]
> at org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.test(EventTestRunnerAdaptor.java:111) [arquillian-service:]
> at org.jboss.arquillian.junit.Arquillian$6.evaluate(Arquillian.java:263) [arquillian-service:]
> at org.jboss.arquillian.junit.Arquillian$4.evaluate(Arquillian.java:226) [arquillian-service:]
> at org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java:314) [arquillian-service:]
> at org.jboss.arquillian.junit.Arquillian.access$100(Arquillian.java:46) [arquillian-service:]
> at org.jboss.arquillian.junit.Arquillian$5.evaluate(Arquillian.java:240) [arquillian-service:]
> at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:263) [arquillian-service:]
> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68) [arquillian-service:]
> at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47) [arquillian-service:]
> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:231) [arquillian-service:]
> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:60) [arquillian-service:]
> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:229) [arquillian-service:]
> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:50) [arquillian-service:]
> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:222) [arquillian-service:]
> at org.jboss.arquillian.junit.Arquillian$2.evaluate(Arquillian.java:185) [arquillian-service:]
> at org.jboss.arquillian.junit.Arquillian.multiExecute(Arquillian.java:314) [arquillian-service:]
> at org.jboss.arquillian.junit.Arquillian.access$100(Arquillian.java:46) [arquillian-service:]
> at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:199) [arquillian-service:]
> at org.junit.runners.ParentRunner.run(ParentRunner.java:300) [arquillian-service:]
> at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:147) [arquillian-service:]
> at org.junit.runner.JUnitCore.run(JUnitCore.java:157) [arquillian-service:]
> at org.junit.runner.JUnitCore.run(JUnitCore.java:136) [arquillian-service:]
> at org.jboss.arquillian.junit.container.JUnitTestRunner.execute(JUnitTestRunner.java:65) [arquillian-service:]
> at org.jboss.arquillian.protocol.jmx.JMXTestRunner.runTestMethodInternal(JMXTestRunner.java:128) [arquillian-service:]
> at org.jboss.arquillian.protocol.jmx.JMXTestRunner.runTestMethod(JMXTestRunner.java:107) [arquillian-service:]
> at org.jboss.as.arquillian.service.ArquillianService$ExtendedJMXTestRunner.runTestMethod(ArquillianService.java:214) [arquillian-service:]
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.6.0_37]
> at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) [rt.jar:1.6.0_37]
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) [rt.jar:1.6.0_37]
> at java.lang.reflect.Method.invoke(Method.java:597) [rt.jar:1.6.0_37]
> at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:93) [rt.jar:1.6.0_37]
> at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:27) [rt.jar:1.6.0_37]
> at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:208) [rt.jar:1.6.0_37]
> at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:120) [rt.jar:1.6.0_37]
> at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:262) [rt.jar:1.6.0_37]
> at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836) [rt.jar:1.6.0_37]
> at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761) [rt.jar:1.6.0_37]
> at org.jboss.as.jmx.PluggableMBeanServerImpl$TcclMBeanServer.invoke(PluggableMBeanServerImpl.java:527)
> at org.jboss.as.jmx.PluggableMBeanServerImpl.invoke(PluggableMBeanServerImpl.java:263)
> at org.jboss.remotingjmx.protocol.v2.ServerProxy$InvokeHandler.handle(ServerProxy.java:915)
> at org.jboss.remotingjmx.protocol.v2.ServerCommon$MessageReciever$1.run(ServerCommon.java:152)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_37]
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_37]
> at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_37]
> {code}
> Another errors in the log:
> {code}
> [0m[33m22:26:26,763 WARN [com.arjuna.mw.wstx] (TaskWorker-2) ARJUNA045035: comms timeout attempting to prepare WS-AT participant D0:ffffac118324:4acfdb55:51afacb7:87
> [0m[31m22:26:26,763 ERROR [stderr] (TaskWorker-2) com.arjuna.mw.wsas.exceptions.SystemCommunicationException: com.arjuna.wst.stub.SystemCommunicationException
> [0m[31m22:26:26,763 ERROR [stderr] (TaskWorker-2) at com.arjuna.mwlabs.wst.at.participants.DurableTwoPhaseCommitParticipant.prepare(DurableTwoPhaseCommitParticipant.java:124)
> [0m[31m22:26:26,764 ERROR [stderr] (TaskWorker-2) at com.arjuna.mwlabs.wst.at.participants.DurableTwoPhaseCommitParticipant.confirmOnePhase(DurableTwoPhaseCommitParticipant.java:233)
> [0m[31m22:26:26,764 ERROR [stderr] (TaskWorker-2) at com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord.topLevelOnePhaseCommit(ParticipantRecord.java:429)
> [0m[31m22:26:26,764 ERROR [stderr] (TaskWorker-2) at com.arjuna.ats.arjuna.coordinator.BasicAction.onePhaseCommit(BasicAction.java:2263)
> [0m[31m22:26:26,764 ERROR [stderr] (TaskWorker-2) at com.arjuna.ats.arjuna.coordinator.BasicAction.End(BasicAction.java:1475)
> [0m[31m22:26:26,764 ERROR [stderr] (TaskWorker-2) at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinator.java:98)
> [0m[31m22:26:26,765 ERROR [stderr] (TaskWorker-2) at com.arjuna.mwlabs.wscf.model.twophase.arjunacore.CoordinatorControl.complete(CoordinatorControl.java:137)
> [0m[31m22:26:26,765 ERROR [stderr] (TaskWorker-2) at com.arjuna.mwlabs.wscf11.model.twophase.arjunacore.TwoPhaseHLSImple.complete(TwoPhaseHLSImple.java:130)
> [0m[31m22:26:26,765 ERROR [stderr] (TaskWorker-2) at com.arjuna.mwlabs.wsas.activity.ActivityImple.end(ActivityImple.java:293)
> [0m[31m22:26:26,765 ERROR [stderr] (TaskWorker-2) at com.arjuna.mwlabs.wsas.UserActivityImple.end(UserActivityImple.java:261)
> [0m[31m22:26:26,765 ERROR [stderr] (TaskWorker-2) at com.arjuna.mwlabs.wscf.model.twophase.arjunacore.CoordinatorServiceImple.confirm(CoordinatorServiceImple.java:156)
> [0m[31m22:26:26,766 ERROR [stderr] (TaskWorker-2) at com.arjuna.mwlabs.wst11.at.participants.CompletionCoordinatorImple.commit(CompletionCoordinatorImple.java:41)
> [0m[31m22:26:26,766 ERROR [stderr] (TaskWorker-2) at com.arjuna.wst11.messaging.CompletionCoordinatorProcessorImpl.commit(CompletionCoordinatorProcessorImpl.java:84)
> [0m[31m22:26:26,766 ERROR [stderr] (TaskWorker-2) at com.arjuna.webservices11.wsat.sei.CompletionCoordinatorPortTypeImpl$1.executeTask(CompletionCoordinatorPortTypeImpl.java:58)
> [0m[31m22:26:26,766 ERROR [stderr] (TaskWorker-2) at com.arjuna.services.framework.task.TaskWorker.run(TaskWorker.java:63)
> [0m[31m22:26:26,766 ERROR [stderr] (TaskWorker-2) at java.lang.Thread.run(Thread.java:662)
> {code}
> and:
> {code}
> [0m[33m22:27:03,729 WARN [com.arjuna.mw.wstx] (TaskWorker-2) ARJUNA045035: comms timeout attempting to prepare WS-AT participant D0:ffffac118324:4acfdb55:51afacb7:9c
> [0m[31m22:27:03,730 ERROR [stderr] (TaskWorker-2) com.arjuna.mw.wsas.exceptions.SystemCommunicationException: com.arjuna.wst.stub.SystemCommunicationException
> [0m[31m22:27:03,730 ERROR [stderr] (TaskWorker-2) at com.arjuna.mwlabs.wst.at.participants.DurableTwoPhaseCommitParticipant.prepare(DurableTwoPhaseCommitParticipant.java:124)
> [0m[31m22:27:03,731 ERROR [stderr] (TaskWorker-2) at com.arjuna.mwlabs.wst.at.participants.DurableTwoPhaseCommitParticipant.confirmOnePhase(DurableTwoPhaseCommitParticipant.java:233)
> [0m[31m22:27:03,731 ERROR [stderr] (TaskWorker-2) at com.arjuna.mwlabs.wscf.model.twophase.arjunacore.ParticipantRecord.topLevelOnePhaseCommit(ParticipantRecord.java:429)
> [0m[31m22:27:03,731 ERROR [stderr] (TaskWorker-2) at com.arjuna.ats.arjuna.coordinator.BasicAction.onePhaseCommit(BasicAction.java:2263)
> [0m[31m22:27:03,731 ERROR [stderr] (TaskWorker-2) at com.arjuna.ats.arjuna.coordinator.BasicAction.End(BasicAction.java:1475)
> [0m[31m22:27:03,732 ERROR [stderr] (TaskWorker-2) at com.arjuna.ats.arjuna.coordinator.TwoPhaseCoordinator.end(TwoPhaseCoordinator.java:98)
> [0m[31m22:27:03,732 ERROR [stderr] (TaskWorker-2) at com.arjuna.mwlabs.wscf.model.twophase.arjunacore.CoordinatorControl.complete(CoordinatorControl.java:137)
> [0m[31m22:27:03,732 ERROR [stderr] (TaskWorker-2) at com.arjuna.mwlabs.wscf11.model.twophase.arjunacore.TwoPhaseHLSImple.complete(TwoPhaseHLSImple.java:130)
> [0m[31m22:27:03,732 ERROR [stderr] (TaskWorker-2) at com.arjuna.mwlabs.wsas.activity.ActivityImple.end(ActivityImple.java:293)
> [0m[31m22:27:03,733 ERROR [stderr] (TaskWorker-2) at com.arjuna.mwlabs.wsas.UserActivityImple.end(UserActivityImple.java:261)
> [0m[31m22:27:03,733 ERROR [stderr] (TaskWorker-2) at com.arjuna.mwlabs.wscf.model.twophase.arjunacore.CoordinatorServiceImple.confirm(CoordinatorServiceImple.java:156)
> [0m[31m22:27:03,733 ERROR [stderr] (TaskWorker-2) at com.arjuna.mwlabs.wst11.at.participants.CompletionCoordinatorImple.commit(CompletionCoordinatorImple.java:41)
> [0m[31m22:27:03,733 ERROR [stderr] (TaskWorker-2) at com.arjuna.wst11.messaging.CompletionCoordinatorProcessorImpl.commit(CompletionCoordinatorProcessorImpl.java:84)
> [0m[31m22:27:03,733 ERROR [stderr] (TaskWorker-2) at com.arjuna.webservices11.wsat.sei.CompletionCoordinatorPortTypeImpl$1.executeTask(CompletionCoordinatorPortTypeImpl.java:58)
> [0m[31m22:27:03,734 ERROR [stderr] (TaskWorker-2) at com.arjuna.services.framework.task.TaskWorker.run(TaskWorker.java:63)
> [0m[31m22:27:03,734 ERROR [stderr] (TaskWorker-2) at java.lang.Thread.run(Thread.java:662)
> {code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
10 years, 10 months
[JBoss JIRA] (JBTM-1718) Resolve the ParticipantCompletion race condition
by Paul Robinson (JIRA)
[ https://issues.jboss.org/browse/JBTM-1718?page=com.atlassian.jira.plugin.... ]
Paul Robinson commented on JBTM-1718:
-------------------------------------
After reading TAG-29, I think we are safe, as long as we don't change the WSDL or the BAParticipantManager interface.
As for the annotation i referred to. This is part of our compensations API that is only in WildFly ATM, and will need consideration when that is productized.
> Resolve the ParticipantCompletion race condition
> ------------------------------------------------
>
> Key: JBTM-1718
> URL: https://issues.jboss.org/browse/JBTM-1718
> Project: JBoss Transaction Manager
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: TXFramework
> Reporter: Paul Robinson
> Assignee: Gytis Trikleris
> Fix For: 5.0.0.M4
>
>
> This issue is documented here: JBTM-1429
> In the documentation for JBTM-1429, we state that this issue is unlikely to happen in a distributed environment. This is true, however, the Compensations API is designed to work local-only as well as distributed over WS-BA. Therefore it is much more likely to happen in a production environment.
> Therefore we need to remove this race condition. It can be done in a proprietary mannor as we are not interoperating with another implementation ion local-only mode. When distributing the transaction we fall back to the standard protocol that is susceptible to the race condition. However, as we stated in the docs, this condition is unlikely to manifest in a distributed environment.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
10 years, 10 months
[JBoss JIRA] (JBTM-1867) Confusing error logged after crash recovery on prepare when hornetq object store used
by Mark Little (JIRA)
[ https://issues.jboss.org/browse/JBTM-1867?page=com.atlassian.jira.plugin.... ]
Mark Little commented on JBTM-1867:
-----------------------------------
Yes, LogStore doesn't check whether the state is available in the log at the point where remove_committed is called since all we do is write a "remove state" entry to the log for later processing. If that later processing fails then a warning message should be output as with the other stores.
> Confusing error logged after crash recovery on prepare when hornetq object store used
> -------------------------------------------------------------------------------------
>
> Key: JBTM-1867
> URL: https://issues.jboss.org/browse/JBTM-1867
> Project: JBoss Transaction Manager
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: JTS
> Affects Versions: 4.17.7, 5.0.0.M3
> Reporter: Ondřej Chaloupka
> Assignee: Michael Musgrove
>
> There is logged an confusing error after crash recovery happens when server crashed in prepare phase.
> {code}
> 14:47:59,697 ERROR [stderr] (RequestProcessor-10) com.arjuna.ats.arjuna.exceptions.ObjectStoreException: java.lang.IllegalStateException: Cannot find add info 3
> 14:47:59,698 ERROR [stderr] (RequestProcessor-10) at com.arjuna.ats.internal.arjuna.objectstore.hornetq.HornetqJournalStore.remove_committed(HornetqJournalStore.java:153)
> 14:47:59,698 ERROR [stderr] (RequestProcessor-10) at com.arjuna.ats.internal.arjuna.objectstore.hornetq.HornetqObjectStoreAdaptor.remove_committed(HornetqObjectStoreAdaptor.java:186)
> 14:47:59,698 ERROR [stderr] (RequestProcessor-10) at com.arjuna.ats.internal.jta.resources.jts.orbspecific.XAResourceRecord.destroyState(XAResourceRecord.java:1271)
> 14:47:59,699 INFO [org.jboss.as.test.jbossts.common.TestXAResourceCommon] (Periodic Recovery) TestXAResourceCommon.isSameRM(xaResource=TestXAResourceRecovered(TestXAResourceCommon(0, null)))
> 14:47:59,699 ERROR [stderr] (RequestProcessor-10) at com.arjuna.ats.internal.jta.resources.jts.orbspecific.XAResourceRecord.rollback(XAResourceRecord.java:411)
> 14:47:59,699 ERROR [stderr] (RequestProcessor-10) at com.arjuna.ArjunaOTS.OTSAbstractRecordPOA._invoke(OTSAbstractRecordPOA.java:213)
> 14:47:59,699 ERROR [stderr] (RequestProcessor-10) at org.jacorb.poa.RequestProcessor.invokeOperation(RequestProcessor.java:306)
> 14:47:59,699 ERROR [stderr] (RequestProcessor-10) at org.jacorb.poa.RequestProcessor.process(RequestProcessor.java:626)
> 14:47:59,699 ERROR [stderr] (RequestProcessor-10) at org.jacorb.poa.RequestProcessor.run(RequestProcessor.java:769)
> 14:47:59,700 ERROR [stderr] (RequestProcessor-10) Caused by: java.lang.IllegalStateException: Cannot find add info 3
> 14:47:59,700 ERROR [stderr] (RequestProcessor-10) at org.hornetq.core.journal.impl.JournalImpl.appendDeleteRecord(JournalImpl.java:904)
> 14:47:59,700 ERROR [stderr] (RequestProcessor-10) at org.hornetq.core.journal.impl.JournalBase.appendDeleteRecord(JournalBase.java:163)
> 14:47:59,700 ERROR [stderr] (RequestProcessor-10) at org.hornetq.core.journal.impl.JournalImpl.appendDeleteRecord(JournalImpl.java:82)
> 14:47:59,701 ERROR [stderr] (RequestProcessor-10) at com.arjuna.ats.internal.arjuna.objectstore.hornetq.HornetqJournalStore.remove_committed(HornetqJournalStore.java:151)
> 14:47:59,701 ERROR [stderr] (RequestProcessor-10) ... 7 more
> {code}
> This happens when hornetq object store is used. This is caused because of the rollback is called on resource two times. This is ok - this matches to OTS spec (https://bugzilla.redhat.com/show_bug.cgi?id=988724).
> But after the second call of rollback the TM tries to remove Xid from object store. But as the xid does not exist anymore the hornetq object store implementation throws exception that is logged directly on stderr:
> XAResourceRecord.destroyState does e.printStackTrace()
> I would propose to put this exception to debug or trace as it does not mean error in fact.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
10 years, 10 months
[JBoss JIRA] (JBTM-1718) Resolve the ParticipantCompletion race condition
by Paul Robinson (JIRA)
[ https://issues.jboss.org/browse/JBTM-1718?page=com.atlassian.jira.plugin.... ]
Paul Robinson commented on JBTM-1718:
-------------------------------------
{quote}
We have a defined way of exposing public APIs that we do support. As long as the method and annotation follow these rules then I think we should be fine.
{quote}
See: TAG-29
> Resolve the ParticipantCompletion race condition
> ------------------------------------------------
>
> Key: JBTM-1718
> URL: https://issues.jboss.org/browse/JBTM-1718
> Project: JBoss Transaction Manager
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: TXFramework
> Reporter: Paul Robinson
> Assignee: Gytis Trikleris
> Fix For: 5.0.0.M4
>
>
> This issue is documented here: JBTM-1429
> In the documentation for JBTM-1429, we state that this issue is unlikely to happen in a distributed environment. This is true, however, the Compensations API is designed to work local-only as well as distributed over WS-BA. Therefore it is much more likely to happen in a production environment.
> Therefore we need to remove this race condition. It can be done in a proprietary mannor as we are not interoperating with another implementation ion local-only mode. When distributing the transaction we fall back to the standard protocol that is susceptible to the race condition. However, as we stated in the docs, this condition is unlikely to manifest in a distributed environment.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
10 years, 10 months
[JBoss JIRA] (JBTM-1867) Confusing error logged after crash recovery on prepare when hornetq object store used
by Michael Musgrove (JIRA)
[ https://issues.jboss.org/browse/JBTM-1867?page=com.atlassian.jira.plugin.... ]
Michael Musgrove commented on JBTM-1867:
----------------------------------------
The hornetq store is the only one which throws an exception if we try to remove an entry which isn't in the log so, as Mark suggests, we should change the hornetq store to do likewise (with a warning message).
Note, the different store implementations behave as follows:
* VolatileStore, TwoPhaseVolatileStore, CacheStore and ShadowingStore all return false if the entry isn't in the log
* JDBCStore logs a warning (message id 12255) and then returns false
* LogStore always returns true
> Confusing error logged after crash recovery on prepare when hornetq object store used
> -------------------------------------------------------------------------------------
>
> Key: JBTM-1867
> URL: https://issues.jboss.org/browse/JBTM-1867
> Project: JBoss Transaction Manager
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: JTS
> Affects Versions: 4.17.7, 5.0.0.M3
> Reporter: Ondřej Chaloupka
> Assignee: Michael Musgrove
>
> There is logged an confusing error after crash recovery happens when server crashed in prepare phase.
> {code}
> 14:47:59,697 ERROR [stderr] (RequestProcessor-10) com.arjuna.ats.arjuna.exceptions.ObjectStoreException: java.lang.IllegalStateException: Cannot find add info 3
> 14:47:59,698 ERROR [stderr] (RequestProcessor-10) at com.arjuna.ats.internal.arjuna.objectstore.hornetq.HornetqJournalStore.remove_committed(HornetqJournalStore.java:153)
> 14:47:59,698 ERROR [stderr] (RequestProcessor-10) at com.arjuna.ats.internal.arjuna.objectstore.hornetq.HornetqObjectStoreAdaptor.remove_committed(HornetqObjectStoreAdaptor.java:186)
> 14:47:59,698 ERROR [stderr] (RequestProcessor-10) at com.arjuna.ats.internal.jta.resources.jts.orbspecific.XAResourceRecord.destroyState(XAResourceRecord.java:1271)
> 14:47:59,699 INFO [org.jboss.as.test.jbossts.common.TestXAResourceCommon] (Periodic Recovery) TestXAResourceCommon.isSameRM(xaResource=TestXAResourceRecovered(TestXAResourceCommon(0, null)))
> 14:47:59,699 ERROR [stderr] (RequestProcessor-10) at com.arjuna.ats.internal.jta.resources.jts.orbspecific.XAResourceRecord.rollback(XAResourceRecord.java:411)
> 14:47:59,699 ERROR [stderr] (RequestProcessor-10) at com.arjuna.ArjunaOTS.OTSAbstractRecordPOA._invoke(OTSAbstractRecordPOA.java:213)
> 14:47:59,699 ERROR [stderr] (RequestProcessor-10) at org.jacorb.poa.RequestProcessor.invokeOperation(RequestProcessor.java:306)
> 14:47:59,699 ERROR [stderr] (RequestProcessor-10) at org.jacorb.poa.RequestProcessor.process(RequestProcessor.java:626)
> 14:47:59,699 ERROR [stderr] (RequestProcessor-10) at org.jacorb.poa.RequestProcessor.run(RequestProcessor.java:769)
> 14:47:59,700 ERROR [stderr] (RequestProcessor-10) Caused by: java.lang.IllegalStateException: Cannot find add info 3
> 14:47:59,700 ERROR [stderr] (RequestProcessor-10) at org.hornetq.core.journal.impl.JournalImpl.appendDeleteRecord(JournalImpl.java:904)
> 14:47:59,700 ERROR [stderr] (RequestProcessor-10) at org.hornetq.core.journal.impl.JournalBase.appendDeleteRecord(JournalBase.java:163)
> 14:47:59,700 ERROR [stderr] (RequestProcessor-10) at org.hornetq.core.journal.impl.JournalImpl.appendDeleteRecord(JournalImpl.java:82)
> 14:47:59,701 ERROR [stderr] (RequestProcessor-10) at com.arjuna.ats.internal.arjuna.objectstore.hornetq.HornetqJournalStore.remove_committed(HornetqJournalStore.java:151)
> 14:47:59,701 ERROR [stderr] (RequestProcessor-10) ... 7 more
> {code}
> This happens when hornetq object store is used. This is caused because of the rollback is called on resource two times. This is ok - this matches to OTS spec (https://bugzilla.redhat.com/show_bug.cgi?id=988724).
> But after the second call of rollback the TM tries to remove Xid from object store. But as the xid does not exist anymore the hornetq object store implementation throws exception that is logged directly on stderr:
> XAResourceRecord.destroyState does e.printStackTrace()
> I would propose to put this exception to debug or trace as it does not mean error in fact.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
10 years, 10 months
[JBoss JIRA] (JBTM-1879) JdbcObjectStore is not closing connection
by Stefano Maestri (JIRA)
Stefano Maestri created JBTM-1879:
-------------------------------------
Summary: JdbcObjectStore is not closing connection
Key: JBTM-1879
URL: https://issues.jboss.org/browse/JBTM-1879
Project: JBoss Transaction Manager
Issue Type: Feature Request
Security Level: Public (Everyone can see)
Reporter: Stefano Maestri
Assignee: Tom Jenkinson
maeste: it looks like a bug on our side, can you raise a Jira for us please (maybe with your stack trace)?
<tomjenkinson> maeste: thanks for fixing WFLY-1460 :)
<jbossbot> jira [WFLY-1460] WildFly server fails to start with transactions configured to be run with JDBCObject store [Open (Unresolved) Bug, Major, Stefano Maestri] https://issues.jboss.org/browse/WFLY-1460
<tomjenkinson> maeste: it looks like the same thread is not used more than once?
<tomjenkinson> maeste: the connection was being held on the thread you see
<tomjenkinson> maeste: I assume that new threads are created constantly and not recycled now in WildFly?
<maeste> tomjenkinson: yup should be
<tomjenkinson> maeste: if there was a thread pool you would not have seen this
<maeste> tomjenkinson: hmmm is on shotdown
<maeste> tomjenkinson: on thread pool removing so
<maeste> tomjenkinson: BTW I've just configure jdbcstore No operation executed, and so I suppose no write on DB, and I get this stacktrace when I shutdown WildFly
<tomjenkinson> maeste: we can close the connections more timely it is ok, I don't know what the performance impact of connection.close with each object store update though
<tomjenkinson> maeste: when you say "this stacktrace" you mean the gist you pasted before?
<maeste> tomjenkinson: can't you close connection on shutdown? Well I'm fine to call a new convenient method on service shutdown if it's doable
<maeste> tomjenkinson: yup
<tomjenkinson> maeste: we are allocating one connection per thread
* clebert (~clebert@redhat/jboss/clebert) has joined #jbossts
<tomjenkinson> maeste: would shutdown be called on the transaction manager before LeakConnectionDetecter is triggered?
<tomjenkinson> maeste: if so that sounds like the best idea
<maeste> tomjenkinson: yup
* Jaikiran (~jaikiran@redhat/jboss/Jaikiran) has joined #jbossts
<tomjenkinson> maeste: ok, so we can do that, we can store the references that each thread creates in a global map too, then in shutdown close them all
<tomjenkinson> maeste: then hook that into the transaction subsystem
Stack trace
16:40:23,273 ERROR [org.jboss.jca.core.connectionmanager.pool.mcp.LeakDumperManagedConnectionPool] (MSC service thread 1-2) IJ000616: Leak detected in pool: ExampleDS: java.lang.Throwable: ALLOCATION LEAK
at org.jboss.jca.core.connectionmanager.pool.mcp.LeakDumperManagedConnectionPool.getConnection(LeakDumperManagedConnectionPool.java:90) [ironjacamar-core-impl-1.1.0.Final.jar:1.1.0.Final]
at org.jboss.jca.core.connectionmanager.pool.AbstractPool.getSimpleConnection(AbstractPool.java:452) [ironjacamar-core-impl-1.1.0.Final.jar:1.1.0.Final]
at org.jboss.jca.core.connectionmanager.pool.AbstractPool.getConnection(AbstractPool.java:420) [ironjacamar-core-impl-1.1.0.Final.jar:1.1.0.Final]
at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.getManagedConnection(AbstractConnectionManager.java:379) [ironjacamar-core-impl-1.1.0.Final.jar:1.1.0.Final]
at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.getManagedConnection(AbstractConnectionManager.java:352) [ironjacamar-core-impl-1.1.0.Final.jar:1.1.0.Final]
at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.allocateConnection(AbstractConnectionManager.java:513) [ironjacamar-core-impl-1.1.0.Final.jar:1.1.0.Final]
at org.jboss.jca.adapters.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:142) [ironjacamar-jdbc-1.1.0.Final.jar:1.1.0.Final]
at com.arjuna.ats.internal.arjuna.objectstore.jdbc.accessors.DataSourceJDBCAccess.getConnection(DataSourceJDBCAccess.java:50) [narayana-jts-jacorb-5.0.0.M3.jar:5.0.0.M3 (revision: ${buildNumber})]
at com.arjuna.ats.internal.arjuna.objectstore.jdbc.JDBCImple_driver$1.initialValue(JDBCImple_driver.java:632) [narayana-jts-jacorb-5.0.0.M3.jar:5.0.0.M3 (revision: ${buildNumber})]
at com.arjuna.ats.internal.arjuna.objectstore.jdbc.JDBCImple_driver$1.initialValue(JDBCImple_driver.java:627) [narayana-jts-jacorb-5.0.0.M3.jar:5.0.0.M3 (revision: ${buildNumber})]
at java.lang.ThreadLocal.setInitialValue(ThreadLocal.java:160) [rt.jar:1.7.0_09-icedtea]
at java.lang.ThreadLocal.get(ThreadLocal.java:150) [rt.jar:1.7.0_09-icedtea]
at com.arjuna.ats.internal.arjuna.objectstore.jdbc.JDBCImple_driver.initialise(JDBCImple_driver.java:639) [narayana-jts-jacorb-5.0.0.M3.jar:5.0.0.M3 (revision: ${buildNumber})]
at com.arjuna.ats.internal.arjuna.objectstore.jdbc.JDBCStore.<init>(JDBCStore.java:267) [narayana-jts-jacorb-5.0.0.M3.jar:5.0.0.M3 (revision: ${buildNumber})]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [rt.jar:1.7.0_09-icedtea]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) [rt.jar:1.7.0_09-icedtea]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) [rt.jar:1.7.0_09-icedtea]
at java.lang.reflect.Constructor.newInstance(Constructor.java:525) [rt.jar:1.7.0_09-icedtea]
at com.arjuna.ats.internal.arjuna.common.ClassloadingUtility.loadAndInstantiateClass(ClassloadingUtility.java:131) [narayana-jts-jacorb-5.0.0.M3.jar:5.0.0.M3 (revision: ${buildNumber})]
at com.arjuna.ats.arjuna.objectstore.StoreManager.initStore(StoreManager.java:165) [narayana-jts-jacorb-5.0.0.M3.jar:5.0.0.M3 (revision: ${buildNumber})]
at com.arjuna.ats.arjuna.objectstore.StoreManager.setupStore(StoreManager.java:136) [narayana-jts-jacorb-5.0.0.M3.jar:5.0.0.M3 (revision: ${buildNumber})]
at com.arjuna.ats.arjuna.objectstore.StoreManager.getTxOJStore(StoreManager.java:197) [narayana-jts-jacorb-5.0.0.M3.jar:5.0.0.M3 (revision: ${buildNumber})]
at com.arjuna.ats.internal.txoj.recovery.TORecoveryModule.<init>(TORecoveryModule.java:73) [narayana-jts-jacorb-5.0.0.M3.jar:5.0.0.M3 (revision: ${buildNumber})]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [rt.jar:1.7.0_09-icedtea]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) [rt.jar:1.7.0_09-icedtea]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) [rt.jar:1.7.0_09-icedtea]
at java.lang.reflect.Constructor.newInstance(Constructor.java:525) [rt.jar:1.7.0_09-icedtea]
at java.lang.Class.newInstance0(Class.java:374) [rt.jar:1.7.0_09-icedtea]
at java.lang.Class.newInstance(Class.java:327) [rt.jar:1.7.0_09-icedtea]
at com.arjuna.ats.internal.arjuna.common.ClassloadingUtility.loadAndInstantiateClass(ClassloadingUtility.java:137) [narayana-jts-jacorb-5.0.0.M3.jar:5.0.0.M3 (revision: ${buildNumber})]
at com.arjuna.ats.internal.arjuna.common.ClassloadingUtility.loadAndInstantiateClassesWithInit(ClassloadingUtility.java:194) [narayana-jts-jacorb-5.0.0.M3.jar:5.0.0.M3 (revision: ${buildNumber})]
at com.arjuna.ats.arjuna.common.RecoveryEnvironmentBean.getRecoveryModules(RecoveryEnvironmentBean.java:444) [narayana-jts-jacorb-5.0.0.M3.jar:5.0.0.M3 (revision: ${buildNumber})]
at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.loadModules(PeriodicRecovery.java:861) [narayana-jts-jacorb-5.0.0.M3.jar:5.0.0.M3 (revision: ${buildNumber})]
at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.<init>(PeriodicRecovery.java:121) [narayana-jts-jacorb-5.0.0.M3.jar:5.0.0.M3 (revision: ${buildNumber})]
at com.arjuna.ats.internal.arjuna.recovery.RecoveryManagerImple.<init>(RecoveryManagerImple.java:113) [narayana-jts-jacorb-5.0.0.M3.jar:5.0.0.M3 (revision: ${buildNumber})]
at com.arjuna.ats.arjuna.recovery.RecoveryManager.<init>(RecoveryManager.java:460) [narayana-jts-jacorb-5.0.0.M3.jar:5.0.0.M3 (revision: ${buildNumber})]
at com.arjuna.ats.arjuna.recovery.RecoveryManager.manager(RecoveryManager.java:130) [narayana-jts-jacorb-5.0.0.M3.jar:5.0.0.M3 (revision: ${buildNumber})]
at com.arjuna.ats.arjuna.recovery.RecoveryManager.manager(RecoveryManager.java:110) [narayana-jts-jacorb-5.0.0.M3.jar:5.0.0.M3 (revision: ${buildNumber})]
at com.arjuna.ats.jbossatx.jta.RecoveryManagerService.create(RecoveryManagerService.java:54) [narayana-jts-integration-5.0.0.M3.jar:5.0.0.M3 (revision: ${buildNumber})]
at org.jboss.as.txn.service.ArjunaRecoveryManagerService.start(ArjunaRecoveryManagerService.java:113) [wildfly-transactions-8.0.0.Alpha4-SNAPSHOT.jar:8.0.0.Alpha4-SNAPSHOT]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1944) [jboss-msc-1.2.0.Beta2.jar:1.2.0.Beta2]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1877) [jboss-msc-1.2.0.Beta2.jar:1.2.0.Beta2]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_09-icedtea]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_09-icedtea]
at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_09-icedtea]
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
10 years, 10 months
[JBoss JIRA] (JBTM-1718) Resolve the ParticipantCompletion race condition
by Mark Little (JIRA)
[ https://issues.jboss.org/browse/JBTM-1718?page=com.atlassian.jira.plugin.... ]
Mark Little commented on JBTM-1718:
-----------------------------------
We have a defined way of exposing public APIs that we do support. As long as the method and annotation follow these rules then I think we should be fine.
> Resolve the ParticipantCompletion race condition
> ------------------------------------------------
>
> Key: JBTM-1718
> URL: https://issues.jboss.org/browse/JBTM-1718
> Project: JBoss Transaction Manager
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: TXFramework
> Reporter: Paul Robinson
> Assignee: Gytis Trikleris
> Fix For: 5.0.0.M4
>
>
> This issue is documented here: JBTM-1429
> In the documentation for JBTM-1429, we state that this issue is unlikely to happen in a distributed environment. This is true, however, the Compensations API is designed to work local-only as well as distributed over WS-BA. Therefore it is much more likely to happen in a production environment.
> Therefore we need to remove this race condition. It can be done in a proprietary mannor as we are not interoperating with another implementation ion local-only mode. When distributing the transaction we fall back to the standard protocol that is susceptible to the race condition. However, as we stated in the docs, this condition is unlikely to manifest in a distributed environment.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
10 years, 10 months
[JBoss JIRA] (JBTM-1718) Resolve the ParticipantCompletion race condition
by Paul Robinson (JIRA)
[ https://issues.jboss.org/browse/JBTM-1718?page=com.atlassian.jira.plugin.... ]
Paul Robinson commented on JBTM-1718:
-------------------------------------
{quote}
If this is only for local transactions, then why not add the API but not extend the WSDL?
{quote}
I agree, that sounds like a good approach. Also, I don't think we should add the proprietary method to BAParticipantManager interface. Instead we could add it to the impl of the interface. It's there if you look close enough, but it's obvious you are going "off piste". Of course, we should add a javadoc to the new method that explains why it is there and how it is not standards compliant.
{quote}
I'm not sure what you mean by "not appear in the public API".
{quote}
I meant that we shouldn't put the method on any of the supported XTS interfaces that we offer (like BAParticipantManager for example).
{quote}
if this is added to make a quickstart work then someone will find it and use it anyway
{quote}
The quickstart uses a (proprietary) annotation which causes an interceptor to be fired. The implementation of the interceptor would use this proprietary method. So yes, it is there if they look at the Narayana source, but not if they look at just the quickstart source. I don't think we can protect from this as Narayana (and any middleware for that matter) is going to be full of code that could in practice be callable by the developer, which could at the least break portability and at the worst destroy the integrity of the application and its data.
> Resolve the ParticipantCompletion race condition
> ------------------------------------------------
>
> Key: JBTM-1718
> URL: https://issues.jboss.org/browse/JBTM-1718
> Project: JBoss Transaction Manager
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: TXFramework
> Reporter: Paul Robinson
> Assignee: Gytis Trikleris
> Fix For: 5.0.0.M4
>
>
> This issue is documented here: JBTM-1429
> In the documentation for JBTM-1429, we state that this issue is unlikely to happen in a distributed environment. This is true, however, the Compensations API is designed to work local-only as well as distributed over WS-BA. Therefore it is much more likely to happen in a production environment.
> Therefore we need to remove this race condition. It can be done in a proprietary mannor as we are not interoperating with another implementation ion local-only mode. When distributing the transaction we fall back to the standard protocol that is susceptible to the race condition. However, as we stated in the docs, this condition is unlikely to manifest in a distributed environment.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
10 years, 10 months