[JBoss JIRA] Created: (JBTM-817) Automate execution of XTS crash recovery tests
by Andrew Dinn (JIRA)
Automate execution of XTS crash recovery tests
----------------------------------------------
Key: JBTM-817
URL: https://jira.jboss.org/browse/JBTM-817
Project: JBoss Transaction Manager
Issue Type: Task
Security Level: Public (Everyone can see)
Components: XTS
Affects Versions: 4.13.0
Reporter: Andrew Dinn
Fix For: 4.15.0
The XTS codebase includes crash recovery tests in the sar/tests subtree which currently need to be executed manually. This needs to be changed so that the current tests can be run automatically via Hudson. After this has been completed it should then be possible to extend the test suite to exercise scenarios not yet covered by the current range of tests.
The tests themselves employ a web service client and several web services which are deployed to the app server with the test code. The behaviour of the client and web services can be scripted so this single deployment is capable of exercising all the scenarios which are required in order to lead up to a crash. However, automation is not straightforward for several reasons:
Execution of the tests requires starting up an app server twice, the first time so that it can be crashed at a specific point during execution then a second time so that recovery processing can be checked. The JBossTS codebase includes some utilities which can be used to help manage startup and shutdown of the JBoss AS instance.
Crashing of the app server and tracing of execution during the first and second runs requires the use of the Byteman agent and Byteman rules. Suitable Byteman rule scripts exist for all the current tests, However, trace output is currently written to a file and the output is verified by eyeball. Timing variations mean that this output does not always have a fixed format. Also, validation requires checking that identifiers printed during the first and second run match up. It would be worth investigating an alternative way of collecting and validating this trace information e.g. using the dtest package contributed to Byteman by Jonathan Halliday. dtest has been used to test similar scenarios in the JBossTS JTA - XTS bridge code (the latter is in the txbridge source tree).
Timing variations also mean that execution of recovery code may needs to be manipulated using Byteman rules in order to ensure that the circumstances specified in the test scenario are actually met. This can involve introducing delays or dropping messages to ensure that events are handled in a specific order. The existing Bbyteman scripts include rules to achieve this where needed by the current tests. However, once again, this complicates automation of the trace validation process since it requires some of the traced operations to be discounted until an occurrence which has been engineered is identified.
In the longer run the tests will need to be extended in two dimensions.
Firstly, the current test locates the client, web services and transaction coordinator in one application server. The client, web services and transaction coordinator need to be tested when they are deployed in different app servers in various possible combinations and the correct handling of a crash by one or more of these app servers needs to be validated.
Secondly, the current tests only test normal recovery situations. It will also be necessary to simulate failures in the recovery process, either by scripting the web service behaviour or by injecting faults using Byteman rules.
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 1 month
[JBoss JIRA] (JBTM-1179) TXBridge demo test fails due to: IllegalArgumentException: nodeName is empty, or just whitespace
by Paul Robinson (JIRA)
Paul Robinson created JBTM-1179:
-----------------------------------
Summary: TXBridge demo test fails due to: IllegalArgumentException: nodeName is empty, or just whitespace
Key: JBTM-1179
URL: https://issues.jboss.org/browse/JBTM-1179
Project: JBoss Transaction Manager
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: TxBridge
Reporter: Paul Robinson
Assignee: Amos Feng
Fix For: 5.0.0.M2
To reproduce:
Checkout the Narayana quickstarts prject.
{code}
cd XTS
mvn install
cd ../TXBridge
mvn install
{code}
Observe:
{code}
16:33:00,202 ERROR [org.apache.catalina.core.StandardContext] (MSC service thread 1-1) Context [/../service/target/txbridge-demo-service] startup failed due to previous errors: java.lang.Ille
galArgumentException: nodeName is empty, or just whitespace
at org.jboss.logmanager.LoggerNode.<init>(LoggerNode.java:127) [jboss-logmanager-1.3.1.Final.jar:1.3.1.Final]
at org.jboss.logmanager.LoggerNode.getOrCreate(LoggerNode.java:154) [jboss-logmanager-1.3.1.Final.jar:1.3.1.Final]
at org.jboss.logmanager.LoggerNode.getOrCreate(LoggerNode.java:163) [jboss-logmanager-1.3.1.Final.jar:1.3.1.Final]
at org.jboss.logmanager.LoggerNode.getOrCreate(LoggerNode.java:163) [jboss-logmanager-1.3.1.Final.jar:1.3.1.Final]
at org.jboss.logmanager.LoggerNode.getOrCreate(LoggerNode.java:163) [jboss-logmanager-1.3.1.Final.jar:1.3.1.Final]
at org.jboss.logmanager.LoggerNode.getOrCreate(LoggerNode.java:163) [jboss-logmanager-1.3.1.Final.jar:1.3.1.Final]
at org.jboss.logmanager.LoggerNode.getOrCreate(LoggerNode.java:163) [jboss-logmanager-1.3.1.Final.jar:1.3.1.Final]
at org.jboss.logmanager.LoggerNode.getOrCreate(LoggerNode.java:163) [jboss-logmanager-1.3.1.Final.jar:1.3.1.Final]
at org.jboss.logmanager.LoggerNode.getOrCreate(LoggerNode.java:163) [jboss-logmanager-1.3.1.Final.jar:1.3.1.Final]
at org.jboss.logmanager.LoggerNode.getOrCreate(LoggerNode.java:163) [jboss-logmanager-1.3.1.Final.jar:1.3.1.Final]
at org.jboss.logmanager.LoggerNode.getOrCreate(LoggerNode.java:163) [jboss-logmanager-1.3.1.Final.jar:1.3.1.Final]
at org.jboss.logmanager.LogContext.getLogger(LogContext.java:126) [jboss-logmanager-1.3.1.Final.jar:1.3.1.Final]
at org.jboss.logmanager.LogManager.getLogger(LogManager.java:401) [jboss-logmanager-1.3.1.Final.jar:1.3.1.Final]
at org.jboss.logmanager.LogManager.getLogger(LogManager.java:45) [jboss-logmanager-1.3.1.Final.jar:1.3.1.Final]
at java.util.logging.LogManager.demandLogger(LogManager.java:389) [rt.jar:1.6.0_30]
at java.util.logging.Logger.getLogger(Logger.java:288) [rt.jar:1.6.0_30]
at org.jboss.logmanager.Logger.getLogger(Logger.java:59) [jboss-logmanager-1.3.1.Final.jar:1.3.1.Final]
at org.jboss.logging.JBossLogManagerProvider.doGetLogger(JBossLogManagerProvider.java:56) [jboss-logging-3.1.1.GA.jar:3.1.1.GA]
at org.jboss.logging.JBossLogManagerProvider.getLogger(JBossLogManagerProvider.java:47) [jboss-logging-3.1.1.GA.jar:3.1.1.GA]
at org.jboss.logging.Logger.getLogger(Logger.java:2163) [jboss-logging-3.1.1.GA.jar:3.1.1.GA]
at org.apache.catalina.core.ContainerBase.getLogger(ContainerBase.java:409)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3765)
at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:90)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_30]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_30]
at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_30]
{code
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 1 month
[JBoss JIRA] (JBTM-1057) Port TXBridge demo tests to quickstarts/txbridge/demo
by Paul Robinson (JIRA)
Paul Robinson created JBTM-1057:
-----------------------------------
Summary: Port TXBridge demo tests to quickstarts/txbridge/demo
Key: JBTM-1057
URL: https://issues.jboss.org/browse/JBTM-1057
Project: JBoss Transaction Manager
Issue Type: Task
Security Level: Public (Everyone can see)
Components: TxBridge
Affects Versions: 5.0.0.M1
Reporter: Paul Robinson
Assignee: Paul Robinson
Fix For: 5.0.0.M2, 5.0.0.M3
Currently the TXBridge demo tests are only in the 4.16 branch. Here they live in the JBossTS project and pull in built artefacts for, txbridge-demo-service.jar, txbridge-demo-client.war and xts-demo.ear.
see here: https://svn.jboss.org/repos/labs/labs/jbosstm/branches/JBOSSTS_4_16/txbri...
The TXBridge demo has been moved, in trunk, to the quickstarts project. Therefore the built artefact of the XTS demo will not be available. We need to figure out a way of pulling this in. Maybe we could pull in the XTS demo as a maven artefact? Alternately, we could remove the dependency on the XTS demo by re-creating the Restaurant service in the TXBridge demo.
Also, it doesn't seem right, that built txbridge-demo artefacts are required. Wouldn't it be better for shrinkwrap to create these?
The reason why these artefacts where used in 4.16, was to fit in with the existing layout and build system. In trunk we are using maven throughout and can make more disruptive changes, so we should try and get this test right.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 1 month
[JBoss JIRA] Created: (JBTM-901) Classloading exceptions during the periodic recovery process
by Ivo Studensky (JIRA)
Classloading exceptions during the periodic recovery process
------------------------------------------------------------
Key: JBTM-901
URL: https://issues.jboss.org/browse/JBTM-901
Project: JBoss Transaction Manager
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: TxBridge
Affects Versions: 4.15.3
Reporter: Ivo Studensky
Assignee: Paul Robinson
Some classloading exceptions happen during the periodic recovery process if AS7 started with standalone-xts.xml configuration, see the log snippets bellow.
It seems like some missing deps to javax.resource.api and javax.transaction.api in xts module descriptor. But it could also be that the standalone-xts.xml configuration file in AS7 is out of date.
Could you check this pls? Note: it was tested on the latest AS7 master.
{code}
13:08:17,500 ERROR [stderr] (Periodic Recovery) Exception in thread "Periodic Recovery" java.lang.NoClassDefFoundError: javax/transaction/SystemException
13:08:17,500 ERROR [stderr] (Periodic Recovery) at org.jboss.jbossts.txbridge.outbound.OutboundBridgeRecoveryManager.periodicWorkSecondPass(OutboundBridgeRecoveryManager.java:87)
13:08:17,501 ERROR [stderr] (Periodic Recovery) at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.doWorkInternal(PeriodicRecovery.java:789)
13:08:17,501 ERROR [stderr] (Periodic Recovery) at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.run(PeriodicRecovery.java:371)
13:08:17,501 ERROR [stderr] (Periodic Recovery) Caused by: java.lang.ClassNotFoundException: javax.transaction.SystemException from [Module "org.jboss.xts:main" from local module loader @2ca6d51e (roots: /home/studensky/job/git/jboss-as/build/target/jboss-as-7.1.0.Alpha1-SNAPSHOT/modules)]
13:08:17,501 ERROR [stderr] (Periodic Recovery) at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:191)
13:08:17,501 ERROR [stderr] (Periodic Recovery) at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:361)
13:08:17,501 ERROR [stderr] (Periodic Recovery) at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:333)
13:08:17,502 ERROR [stderr] (Periodic Recovery) at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:310)
13:08:17,502 ERROR [stderr] (Periodic Recovery) at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:103)
13:08:17,502 ERROR [stderr] (Periodic Recovery) ... 3 more
{code}
{code}
Exception in thread "Periodic Recovery" java.lang.NoClassDefFoundError: javax/resource/spi/XATerminator
13:18:56,834 ERROR [stderr] (Periodic Recovery) at org.jboss.jbossts.txbridge.inbound.InboundBridgeRecoveryManager.getIndoubtSubordinates(InboundBridgeRecoveryManager.java:227)
13:18:56,834 ERROR [stderr] (Periodic Recovery) at org.jboss.jbossts.txbridge.inbound.InboundBridgeRecoveryManager.periodicWorkSecondPass(InboundBridgeRecoveryManager.java:196)
13:18:56,834 ERROR [stderr] (Periodic Recovery) at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.doWorkInternal(PeriodicRecovery.java:789)
13:18:56,835 ERROR [stderr] (Periodic Recovery) at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.run(PeriodicRecovery.java:371)
{code}
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 1 month