[JBoss JIRA] (JBTM-2862) Check places where trace logs are not conditional, especially see xts bridge
by Ondra Chaloupka (JIRA)
Ondra Chaloupka created JBTM-2862:
-------------------------------------
Summary: Check places where trace logs are not conditional, especially see xts bridge
Key: JBTM-2862
URL: https://issues.jboss.org/browse/JBTM-2862
Project: JBoss Transaction Manager
Issue Type: Enhancement
Components: XTS
Affects Versions: 5.5.3.Final
Reporter: Ondra Chaloupka
Assignee: Ondra Chaloupka
Priority: Minor
During an investigation on JBTM-2853 and JBTM-2858 was discovered there are places where {{txbridgeLogger.logger.trace}} is used without conditional check if trace logging is enabled or not as it's good practice in other parts of the code.
It should be checked where the conditional trace logging misses and fix those places. A hot candidate is XTS but there could be other places in code base too.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 9 months
[JBoss JIRA] (JBTM-2831) Fix RTS inbound bridge participant deserialiser registration
by Tom Jenkinson (JIRA)
[ https://issues.jboss.org/browse/JBTM-2831?page=com.atlassian.jira.plugin.... ]
Tom Jenkinson updated JBTM-2831:
--------------------------------
Fix Version/s: 5.next
(was: 5.5.3.Final)
> Fix RTS inbound bridge participant deserialiser registration
> ------------------------------------------------------------
>
> Key: JBTM-2831
> URL: https://issues.jboss.org/browse/JBTM-2831
> Project: JBoss Transaction Manager
> Issue Type: Bug
> Components: REST
> Reporter: Gytis Trikleris
> Assignee: Tom Jenkinson
> Fix For: 5.next
>
>
> Inbound bridge participant deserialiser is registered when InboundBridgeManager is created [1]. That deserialiser is immediately used to recreate participants and update REST-AT coordinator via its HTTP resource.
> In WildFly deserialiser registration used to be triggered by creating InboundBridgeManager instance in InboundBridgeService#start method.
> However, Undertow subsystem update was introduced which collected and held all HTTP requests until application server completed boot-up. This caused a lock because HTTP call to REST-AT coordinator was being held and InboundBridgeService was waiting for the response. As a result server never completed boot.
> Tom has removed that initialisation as a workaround [2]. Everything still works, because inbound bridge recovery manager initialises InboundBridgeManager too. However, only in the second pass. This causes warnings messages during the first cycle of the recovery by REST-AT recovery module.
> I'm suggesting to remove deserialiser registration from InboundBridgeManager constructor to keep it as simple as possible and move it to other place were it could be invoked safely and on time e.g. start of first pass of InboundBridgeRecoveryModule.
> [1] https://github.com/jbosstm/narayana/blob/5.5.0.Final/rts/at/bridge/src/ma...
> [2] https://github.com/wildfly/wildfly/commit/6bc2e6a20b665201505f12c1c22fda9...
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 9 months
[JBoss JIRA] (JBTM-2542) Migrate performance tests to the performance repo
by Tom Jenkinson (JIRA)
[ https://issues.jboss.org/browse/JBTM-2542?page=com.atlassian.jira.plugin.... ]
Tom Jenkinson updated JBTM-2542:
--------------------------------
Fix Version/s: 5.next
(was: 5.5.3.Final)
> Migrate performance tests to the performance repo
> -------------------------------------------------
>
> Key: JBTM-2542
> URL: https://issues.jboss.org/browse/JBTM-2542
> Project: JBoss Transaction Manager
> Issue Type: Task
> Reporter: Michael Musgrove
> Assignee: Michael Musgrove
> Priority: Minor
> Fix For: 5.next
>
> Attachments: config.xml, eap-cmp-config.xml
>
>
> We still have lots of performance related unit tests that need migrating:
> rts/at/tx/src/test/java/org/jboss/jbossts/star/test/PerformanceTest.java
> ArjunaJTA/jta/tests/classes/com/arjuna/ats/jta/xa/performance/OnePhasePerformanceDefaultUnitTest.java
> ArjunaJTA/jta/tests/classes/com/arjuna/ats/jta/xa/performance/OnePhasePerformanceVolatileUnitTest.java
> ArjunaJTA/jta/tests/classes/com/arjuna/ats/jta/xa/performance/OnePhase2PCPerformanceVolatileUnitTest.java
> ArjunaJTA/jta/tests/classes/com/arjuna/ats/jta/xa/performance/OnePhase2PCPerformanceDefaultUnitTest.java
> ArjunaJTA/jta/tests/classes/com/hp/mwtests/ts/jta/commitmarkable/PerformanceTestCommitMarkableResource.java
> ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/performance/Performance1.java
> ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/performance/Performance2.java
> ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/performance/Performance4.java
> ArjunaCore/arjuna/tests/classes/com/hp/mwtests/ts/arjuna/performance/Performance3.java
> ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/orbspecific/local/performance/Performance1.java
> ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/orbspecific/local/performance/Performance2.java
> ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/orbspecific/local/performance/Performance3.java
> ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/remote/hammer/PerfHammer.java
> ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/remote/hammer/GridWorker.java
> ArjunaJTS/jts/tests/classes/com/hp/mwtests/ts/jts/local/synchronizations/Performance.java
> ArjunaJTA/jta/tests/classes/io/narayana/perf/product/Product.java
> ArjunaJTA/jta/tests/classes/io/narayana/perf/product/ProductWorker.java
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 9 months
[JBoss JIRA] (JBTM-2846) Thread-safety problem in BasicAction
by Tom Jenkinson (JIRA)
[ https://issues.jboss.org/browse/JBTM-2846?page=com.atlassian.jira.plugin.... ]
Tom Jenkinson closed JBTM-2846.
-------------------------------
> Thread-safety problem in BasicAction
> ------------------------------------
>
> Key: JBTM-2846
> URL: https://issues.jboss.org/browse/JBTM-2846
> Project: JBoss Transaction Manager
> Issue Type: Bug
> Components: Transaction Core
> Affects Versions: 5.4.0.Final
> Reporter: David Lloyd
> Assignee: Michael Musgrove
> Priority: Critical
> Fix For: 5.5.3.Final
>
>
> It is possible for multiple threads to have a given transaction association at the same time ({{com.arjuna.ats.arjuna.coordinator.BasicAction#_childThreads}}). However, only inconsistent protection is provided for {{com.arjuna.ats.arjuna.coordinator.BasicAction#actionStatus}}. In particular, the {{com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple#setRollbackOnly}} method directly calls {{com.arjuna.ats.arjuna.coordinator.BasicAction#preventCommit}}, which, without lock or atomicity, both reads and modifies {{actionStatus}}. This will result in a poorly-defined outcome when threads concurrently call {{setRollbackOnly()}} and, say, {{rollback()}}.
> Other methods access {{actionStatus}} without regard to concurrently protection, including:
> * {{com.arjuna.ats.arjuna.coordinator.BasicAction#save_state}}
> * {{com.arjuna.ats.arjuna.coordinator.BasicAction#toString}}
> * {{com.arjuna.ats.arjuna.coordinator.BasicAction#restore_state}}
> Some methods appear to be assuming that other methods will acquire the instance monitor before calling them; as a matter of best practice, such methods should have {{assert Thread.holdsLock(this);}} at their beginning point.
> Other fields in the class should also be analyzed for unsafe access.
--
This message was sent by Atlassian JIRA
(v7.2.3#72005)
7 years, 9 months