[JBoss JIRA] (JBTM-1700) Server startup is delayed if recovery starts before all resource plugins register
by Tom Jenkinson (JIRA)
[ https://issues.jboss.org/browse/JBTM-1700?page=com.atlassian.jira.plugin.... ]
Tom Jenkinson updated JBTM-1700:
--------------------------------
Status: Resolved (was: Pull Request Sent)
Resolution: Done
> Server startup is delayed if recovery starts before all resource plugins register
> ---------------------------------------------------------------------------------
>
> Key: JBTM-1700
> URL: https://issues.jboss.org/browse/JBTM-1700
> Project: JBoss Transaction Manager
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: JTA, Recovery
> Reporter: James Livingston
> Assignee: Tom Jenkinson
> Fix For: 4.17.11, 5.0.0.M5
>
>
> If the startup of JBoss is sufficiently slow, it is possible for a recovery run to already be in progress when a resource plugin is added. When this occurs, the startup will block until the recovery run has finished.
> It would be much better if starting a recovery run did not block AS startup.
> An example of this occurring on EAP 5 is:
> "main" prio=10 tid=0x00002aac680cc000 nid=0x5e67 waiting for monitor entry [0x00000000412cb000]
> java.lang.Thread.State: BLOCKED (on object monitor)
> at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.addXAResourceRecoveryHelper(XARecoveryModule.java:85)
> - waiting to lock <0x00002aab3e8b9d68> (a java.util.LinkedList)
> at com.arjuna.ats.jbossatx.jta.TransactionManagerService.addXAResourceRecovery(TransactionManagerService.java:695)
> at org.jboss.resource.connectionmanager.ManagedConnectionFactoryDeployment.startService(ManagedConnectionFactoryDeployment.java:500)
> at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:376)
> at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:322)
> at org.jboss.system.ServiceDynamicMBeanSupport.invoke(ServiceDynamicMBeanSupport.java:124)
> at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164)
> at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)
> at org.jboss.system.server.jmx.LazyMBeanServer.invoke(LazyMBeanServer.java:283)
> at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:189)
> at $Proxy43.start(Unknown Source)
> at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:42)
> at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:37)
> ...
> "Thread-21" prio=10 tid=0x00002aacdd1f7000 nid=0x5ee3 runnable [0x000000004416a000]
> java.lang.Thread.State: RUNNABLE
> ...
> at org.jboss.resource.adapter.jdbc.xa.XAManagedConnection.recover(XAManagedConnection.java:294)
> at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.xaRecovery(XARecoveryModule.java:773)
> at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.resourceInitiatedRecoveryForRecoveryHelpers(XARecoveryModule.java:712)
> - locked <0x00002aab3e8b9d68> (a java.util.LinkedList)
> at com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule.periodicWorkSecondPass(XARecoveryModule.java:201)
> at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.doWorkInternal(PeriodicRecovery.java:799)
> at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.run(PeriodicRecovery.java:412)
--
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
11 years, 2 months
[JBoss JIRA] (JBTM-1943) Allow the safety interval for RecoveryXids to be configurable
by Tom Jenkinson (JIRA)
[ https://issues.jboss.org/browse/JBTM-1943?page=com.atlassian.jira.plugin.... ]
Tom Jenkinson updated JBTM-1943:
--------------------------------
Status: Resolved (was: Pull Request Sent)
Resolution: Done
> Allow the safety interval for RecoveryXids to be configurable
> -------------------------------------------------------------
>
> Key: JBTM-1943
> URL: https://issues.jboss.org/browse/JBTM-1943
> Project: JBoss Transaction Manager
> Issue Type: Enhancement
> Security Level: Public(Everyone can see)
> Components: JTA
> Reporter: Tom Jenkinson
> Assignee: Tom Jenkinson
> Fix For: 4.17.11, 5.0.0.M5
>
>
> Currently it is hard coded to 10 seconds. It is possible that under load this could be possible to breach. Allow the setting to be configurable.
> Breaching the threshold does not pose data integrity issues as the scenario where it becomes an issue is when the transaction has completed during a recovery scan. It will result in calling rollback(xid1) on the RM but as that RM is guaranteed to have had commit(xid1) (or rollback) on it already during transaction completion the only impact is an unsightly stack trace.
--
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
11 years, 2 months
[JBoss JIRA] (JBTM-1945) Test failed: test_215(org.jboss.narayana.blacktie.jatmibroker.xatmi.CSTest)
by Tom Jenkinson (JIRA)
[ https://issues.jboss.org/browse/JBTM-1945?page=com.atlassian.jira.plugin.... ]
Tom Jenkinson updated JBTM-1945:
--------------------------------
Description:
Test failed: test_215(org.jboss.narayana.blacktie.jatmibroker.xatmi.CSTest)
Intermittent failure seems to have been triggered by: https://github.com/jbosstm/narayana/commit/e0e5d7ab58e377ad6eb43e1737baa7...
Nothing obvious in the commit so setting up a repeating job
It seems that calling receive on a JMS session while the connection is stopped, then in a different thread call start a few seconds later means that hornetq may not restart delivery of messages. If you have a timed receive at the end of the wait period the message is available for delivery.
I will raise a HQ issue but for ourselves I am changing the algorithm so that we do not call connection.start after the receive.
was:
Intermittent failure seems to have been triggered by: https://github.com/jbosstm/narayana/commit/e0e5d7ab58e377ad6eb43e1737baa7...
Nothing obvious in the commit so setting up a repeating job
> Test failed: test_215(org.jboss.narayana.blacktie.jatmibroker.xatmi.CSTest)
> ---------------------------------------------------------------------------
>
> Key: JBTM-1945
> URL: https://issues.jboss.org/browse/JBTM-1945
> Project: JBoss Transaction Manager
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: BlackTie
> Reporter: Tom Jenkinson
> Assignee: Tom Jenkinson
> Fix For: 5.0.0.M5
>
>
> Test failed: test_215(org.jboss.narayana.blacktie.jatmibroker.xatmi.CSTest)
> Intermittent failure seems to have been triggered by: https://github.com/jbosstm/narayana/commit/e0e5d7ab58e377ad6eb43e1737baa7...
> Nothing obvious in the commit so setting up a repeating job
> It seems that calling receive on a JMS session while the connection is stopped, then in a different thread call start a few seconds later means that hornetq may not restart delivery of messages. If you have a timed receive at the end of the wait period the message is available for delivery.
> I will raise a HQ issue but for ourselves I am changing the algorithm so that we do not call connection.start after the receive.
--
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
11 years, 2 months
[JBoss JIRA] (JBTM-1945) BlackTie can drop a message when multiple threads send a tpcall at the same time
by Tom Jenkinson (JIRA)
[ https://issues.jboss.org/browse/JBTM-1945?page=com.atlassian.jira.plugin.... ]
Tom Jenkinson updated JBTM-1945:
--------------------------------
Summary: BlackTie can drop a message when multiple threads send a tpcall at the same time (was: Test failed: test_215(org.jboss.narayana.blacktie.jatmibroker.xatmi.CSTest))
> BlackTie can drop a message when multiple threads send a tpcall at the same time
> --------------------------------------------------------------------------------
>
> Key: JBTM-1945
> URL: https://issues.jboss.org/browse/JBTM-1945
> Project: JBoss Transaction Manager
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: BlackTie
> Reporter: Tom Jenkinson
> Assignee: Tom Jenkinson
> Fix For: 5.0.0.M5
>
>
> Test failed: test_215(org.jboss.narayana.blacktie.jatmibroker.xatmi.CSTest)
> Intermittent failure seems to have been triggered by: https://github.com/jbosstm/narayana/commit/e0e5d7ab58e377ad6eb43e1737baa7...
> Nothing obvious in the commit so setting up a repeating job
> It seems that calling receive on a JMS session while the connection is stopped, then in a different thread call start a few seconds later means that hornetq may not restart delivery of messages. If you have a timed receive at the end of the wait period the message is available for delivery.
> I will raise a HQ issue but for ourselves I am changing the algorithm so that we do not call connection.start after the receive.
--
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
11 years, 2 months