[JBoss JIRA] (JBTM-3148) Remote JTA EJB transaction context propagation fails to correctly run 1PC
by Ondrej Chaloupka (Jira)
[ https://issues.jboss.org/browse/JBTM-3148?page=com.atlassian.jira.plugin.... ]
Ondrej Chaloupka updated JBTM-3148:
-----------------------------------
Fix Version/s: 5.9.6.Final
> Remote JTA EJB transaction context propagation fails to correctly run 1PC
> -------------------------------------------------------------------------
>
> Key: JBTM-3148
> URL: https://issues.jboss.org/browse/JBTM-3148
> Project: JBoss Transaction Manager
> Issue Type: Bug
> Components: JTA
> Affects Versions: 5.9.5.Final
> Reporter: Ondrej Chaloupka
> Assignee: Ondrej Chaloupka
> Priority: Major
> Fix For: 5.9.6.Final
>
>
> Remote JTA EJB transaction propagation works with the remote EJB XAResource as with any other resource which is JVM-local. As the first server uses only on participant (the remoting EJB XAResource) then the 1PC. When a failure happens at the remote side during the commit {{EJB remote XAResource.commit}} we can't define outcome.
> Consider:
> # first server calls a second server
> # the first server uses as the resource only the remote call to the second server
> # transaction context is propagated and used at the second server
> # the second server makes some changes in database and sends data to JMS broker (2 {{XAResource}}s)
> # 1PC is used to run commit on the only XAResource at the first server which is EJB remote {{XAResource}}
> # the second server is called with one phase commit
> # the calls is transformed to {{SubordinateAtomicAction#doOnePhaseCommit}} which runs {{AtomicAction#End}} to call 2PC on resources
> # prepare on database resource and JMS resource is run
> # commit runs on the database resource, then...
> # JVM crashes before JMS broker is committed
> # (or JMS broker is not accessible because because of a networking issue and exception on RA commit is thrown)
> In case of the JVM crash heuristic outcome is saved to the object store at the first server. Administrator is expected to check what happened as the global transaction outcome is unknown. The 1PC doesn't save anything to Narayana object store. The database on the second server was committed while JMS delivery failed to commit.
> The picture at the [forum discussion|https://developer.jboss.org/thread/279243] depicts the situation
> https://developer.jboss.org/servlet/JiveServlet/showImage/2-989167-320301...
> Heuristic outcome for remote JTA subordinate 1PC by https://issues.jboss.org/browse/JBTM-2443
> In case of the RA connection failure and in case the RA throws {{XAException.XAER_RMFAIL}} (or RETRY) - which is expected outcome when 2PC should be retried with recovery - the remote side obtains error information but 1PC only informs about error but has no record saved in the object store. Thus the transaction record is forgotten.
> That's not right as the JMS RA is held in prepared state. As it's part of the subordinate transaction (at the second server) it will be never finished (responsibility of finishing subordinate transaction is for the parent transaction). As the first server (the parent one) did not save any data there is nobody to finish transaction to commit.
> One option is to force the commit to return heuristic for administrator to finish the doubtful resource. Make it working the same way as the JVM crash scenario works (see above JBTM-2443).
> The other option could be not permitting the 1PC for remote JTA subordinate XAResources at all.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
4 years, 8 months
[JBoss JIRA] (JBTM-3149) LRA proxy test module failing with maven >=3.6.0
by Ondrej Chaloupka (Jira)
[ https://issues.jboss.org/browse/JBTM-3149?page=com.atlassian.jira.plugin.... ]
Ondrej Chaloupka updated JBTM-3149:
-----------------------------------
Fix Version/s: 5.9.6.Final
> LRA proxy test module failing with maven >=3.6.0
> ------------------------------------------------
>
> Key: JBTM-3149
> URL: https://issues.jboss.org/browse/JBTM-3149
> Project: JBoss Transaction Manager
> Issue Type: Bug
> Components: LRA
> Affects Versions: 5.9.5.Final
> Reporter: Martin Stefanko
> Assignee: Michael Musgrove
> Priority: Major
> Fix For: 5.9.6.Final
>
>
> Maven 3.6.0 is causing wildfly-swarm-plugin in lra proxy test module to fail with
> {code:java}
> [ERROR] Failed to execute goal org.wildfly.swarm:wildfly-swarm-plugin:2018.5.0:package (default) on project lra-proxy-test: Execution default of goal org.wildfly.swarm:wildfly-swarm-plugin:2018.5.0:package failed: An API incompatibility was encountered while executing org.wildfly.swarm:wildfly-swarm-plugin:2018.5.0:package: java.lang.AbstractMethodError: null
> [ERROR] -----------------------------------------------------
> [ERROR] realm = plugin>org.wildfly.swarm:wildfly-swarm-plugin:2018.5.0
> [ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
> [ERROR] urls[0] = file:/home/mstefank/.m2/repository/org/wildfly/swarm/wildfly-swarm-plugin/2018.5.0/wildfly-swarm-plugin-2018.5.0.jar
> [ERROR] urls[1] = file:/home/mstefank/.m2/repository/org/wildfly/swarm/fraction-metadata/2018.5.0/fraction-metadata-2018.5.0.jar
> [ERROR] urls[2] = file:/home/mstefank/.m2/repository/org/wildfly/swarm/meta-spi/2018.5.0/meta-spi-2018.5.0.jar
> [ERROR] urls[3] = file:/home/mstefank/.m2/repository/org/jboss/shrinkwrap/descriptors/shrinkwrap-descriptors-impl-javaee/2.0.0/shrinkwrap-descriptors-impl-javaee-2.0.0.jar
> [ERROR] urls[4] = file:/home/mstefank/.m2/repository/org/jboss/shrinkwrap/descriptors/shrinkwrap-descriptors-impl-base/2.0.0/shrinkwrap-descriptors-impl-base-2.0.0.jar
> [ERROR] urls[5] = file:/home/mstefank/.m2/repository/org/jboss/shrinkwrap/descriptors/shrinkwrap-descriptors-spi/2.0.0/shrinkwrap-descriptors-spi-2.0.0.jar
> [ERROR] urls[6] = file:/home/mstefank/.m2/repository/org/ow2/asm/asm/6.0/asm-6.0.jar
> [ERROR] urls[7] = file:/home/mstefank/.m2/repository/com/eclipsesource/minimal-json/minimal-json/0.9.4/minimal-json-0.9.4.jar
> [ERROR] urls[8] = file:/home/mstefank/.m2/repository/org/wildfly/swarm/tools/2018.5.0/tools-2018.5.0.jar
> [ERROR] urls[9] = file:/home/mstefank/.m2/repository/org/wildfly/swarm/bootstrap/2018.5.0/bootstrap-2018.5.0.jar
> [ERROR] urls[10] = file:/home/mstefank/.m2/repository/org/jboss/modules/jboss-modules/1.6.1.Final/jboss-modules-1.6.1.Final.jar
> [ERROR] urls[11] = file:/home/mstefank/.m2/repository/org/yaml/snakeyaml/1.17/snakeyaml-1.17.jar
> [ERROR] urls[12] = file:/home/mstefank/.m2/repository/org/jboss/shrinkwrap/shrinkwrap-api/1.2.6/shrinkwrap-api-1.2.6.jar
> [ERROR] urls[13] = file:/home/mstefank/.m2/repository/org/jboss/shrinkwrap/shrinkwrap-spi/1.2.6/shrinkwrap-spi-1.2.6.jar
> [ERROR] urls[14] = file:/home/mstefank/.m2/repository/org/jboss/shrinkwrap/shrinkwrap-impl-base/1.2.6/shrinkwrap-impl-base-1.2.6.jar
> [ERROR] urls[15] = file:/home/mstefank/.m2/repository/org/jboss/shrinkwrap/descriptors/shrinkwrap-descriptors-api-jboss/2.0.0/shrinkwrap-descriptors-api-jboss-2.0.0.jar
> [ERROR] urls[16] = file:/home/mstefank/.m2/repository/org/jboss/shrinkwrap/descriptors/shrinkwrap-descriptors-api-javaee/2.0.0/shrinkwrap-descriptors-api-javaee-2.0.0.jar
> [ERROR] urls[17] = file:/home/mstefank/.m2/repository/org/jboss/shrinkwrap/descriptors/shrinkwrap-descriptors-api-base/2.0.0/shrinkwrap-descriptors-api-base-2.0.0.jar
> [ERROR] urls[18] = file:/home/mstefank/.m2/repository/org/jboss/shrinkwrap/descriptors/shrinkwrap-descriptors-impl-jboss/2.0.0/shrinkwrap-descriptors-impl-jboss-2.0.0.jar
> [ERROR] urls[19] = file:/home/mstefank/.m2/repository/net/lingala/zip4j/zip4j/1.3.2/zip4j-1.3.2.jar
> [ERROR] urls[20] = file:/home/mstefank/.m2/repository/org/wildfly/swarm/spi/2018.5.0/spi-2018.5.0.jar
> [ERROR] urls[21] = file:/home/mstefank/.m2/repository/org/jboss/jandex/2.0.3.Final/jandex-2.0.3.Final.jar
> [ERROR] urls[22] = file:/home/mstefank/.m2/repository/org/codehaus/plexus/plexus-utils/3.0.20/plexus-utils-3.0.20.jar
> [ERROR] urls[23] = file:/home/mstefank/.m2/repository/org/eclipse/aether/aether-util/1.0.0.v20140518/aether-util-1.0.0.v20140518.jar
> [ERROR] Number of foreign imports: 1
> {code}
> {{~/apps/apache-maven-3.6.1/bin/mvn verify -Parq}} -- ERROR
> {{~/apps/apache-maven-3.6.0/bin/mvn verify -Parq}} -- ERROR
> {{~/apps/apache-maven-3.5.4/bin/mvn verify -Parq}} -- PASS
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
4 years, 8 months
[JBoss JIRA] (JBTM-3148) Remote JTA EJB transaction context propagation fails to correctly run 1PC
by Ondrej Chaloupka (Jira)
[ https://issues.jboss.org/browse/JBTM-3148?page=com.atlassian.jira.plugin.... ]
Ondrej Chaloupka closed JBTM-3148.
----------------------------------
> Remote JTA EJB transaction context propagation fails to correctly run 1PC
> -------------------------------------------------------------------------
>
> Key: JBTM-3148
> URL: https://issues.jboss.org/browse/JBTM-3148
> Project: JBoss Transaction Manager
> Issue Type: Bug
> Components: JTA
> Affects Versions: 5.9.5.Final
> Reporter: Ondrej Chaloupka
> Assignee: Ondrej Chaloupka
> Priority: Major
> Fix For: 5.9.6.Final
>
>
> Remote JTA EJB transaction propagation works with the remote EJB XAResource as with any other resource which is JVM-local. As the first server uses only on participant (the remoting EJB XAResource) then the 1PC. When a failure happens at the remote side during the commit {{EJB remote XAResource.commit}} we can't define outcome.
> Consider:
> # first server calls a second server
> # the first server uses as the resource only the remote call to the second server
> # transaction context is propagated and used at the second server
> # the second server makes some changes in database and sends data to JMS broker (2 {{XAResource}}s)
> # 1PC is used to run commit on the only XAResource at the first server which is EJB remote {{XAResource}}
> # the second server is called with one phase commit
> # the calls is transformed to {{SubordinateAtomicAction#doOnePhaseCommit}} which runs {{AtomicAction#End}} to call 2PC on resources
> # prepare on database resource and JMS resource is run
> # commit runs on the database resource, then...
> # JVM crashes before JMS broker is committed
> # (or JMS broker is not accessible because because of a networking issue and exception on RA commit is thrown)
> In case of the JVM crash heuristic outcome is saved to the object store at the first server. Administrator is expected to check what happened as the global transaction outcome is unknown. The 1PC doesn't save anything to Narayana object store. The database on the second server was committed while JMS delivery failed to commit.
> The picture at the [forum discussion|https://developer.jboss.org/thread/279243] depicts the situation
> https://developer.jboss.org/servlet/JiveServlet/showImage/2-989167-320301...
> Heuristic outcome for remote JTA subordinate 1PC by https://issues.jboss.org/browse/JBTM-2443
> In case of the RA connection failure and in case the RA throws {{XAException.XAER_RMFAIL}} (or RETRY) - which is expected outcome when 2PC should be retried with recovery - the remote side obtains error information but 1PC only informs about error but has no record saved in the object store. Thus the transaction record is forgotten.
> That's not right as the JMS RA is held in prepared state. As it's part of the subordinate transaction (at the second server) it will be never finished (responsibility of finishing subordinate transaction is for the parent transaction). As the first server (the parent one) did not save any data there is nobody to finish transaction to commit.
> One option is to force the commit to return heuristic for administrator to finish the doubtful resource. Make it working the same way as the JVM crash scenario works (see above JBTM-2443).
> The other option could be not permitting the 1PC for remote JTA subordinate XAResources at all.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
4 years, 8 months
[JBoss JIRA] (JBTM-3149) LRA proxy test module failing with maven >=3.6.0
by Ondrej Chaloupka (Jira)
[ https://issues.jboss.org/browse/JBTM-3149?page=com.atlassian.jira.plugin.... ]
Ondrej Chaloupka closed JBTM-3149.
----------------------------------
> LRA proxy test module failing with maven >=3.6.0
> ------------------------------------------------
>
> Key: JBTM-3149
> URL: https://issues.jboss.org/browse/JBTM-3149
> Project: JBoss Transaction Manager
> Issue Type: Bug
> Components: LRA
> Affects Versions: 5.9.5.Final
> Reporter: Martin Stefanko
> Assignee: Michael Musgrove
> Priority: Major
> Fix For: 5.9.6.Final
>
>
> Maven 3.6.0 is causing wildfly-swarm-plugin in lra proxy test module to fail with
> {code:java}
> [ERROR] Failed to execute goal org.wildfly.swarm:wildfly-swarm-plugin:2018.5.0:package (default) on project lra-proxy-test: Execution default of goal org.wildfly.swarm:wildfly-swarm-plugin:2018.5.0:package failed: An API incompatibility was encountered while executing org.wildfly.swarm:wildfly-swarm-plugin:2018.5.0:package: java.lang.AbstractMethodError: null
> [ERROR] -----------------------------------------------------
> [ERROR] realm = plugin>org.wildfly.swarm:wildfly-swarm-plugin:2018.5.0
> [ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
> [ERROR] urls[0] = file:/home/mstefank/.m2/repository/org/wildfly/swarm/wildfly-swarm-plugin/2018.5.0/wildfly-swarm-plugin-2018.5.0.jar
> [ERROR] urls[1] = file:/home/mstefank/.m2/repository/org/wildfly/swarm/fraction-metadata/2018.5.0/fraction-metadata-2018.5.0.jar
> [ERROR] urls[2] = file:/home/mstefank/.m2/repository/org/wildfly/swarm/meta-spi/2018.5.0/meta-spi-2018.5.0.jar
> [ERROR] urls[3] = file:/home/mstefank/.m2/repository/org/jboss/shrinkwrap/descriptors/shrinkwrap-descriptors-impl-javaee/2.0.0/shrinkwrap-descriptors-impl-javaee-2.0.0.jar
> [ERROR] urls[4] = file:/home/mstefank/.m2/repository/org/jboss/shrinkwrap/descriptors/shrinkwrap-descriptors-impl-base/2.0.0/shrinkwrap-descriptors-impl-base-2.0.0.jar
> [ERROR] urls[5] = file:/home/mstefank/.m2/repository/org/jboss/shrinkwrap/descriptors/shrinkwrap-descriptors-spi/2.0.0/shrinkwrap-descriptors-spi-2.0.0.jar
> [ERROR] urls[6] = file:/home/mstefank/.m2/repository/org/ow2/asm/asm/6.0/asm-6.0.jar
> [ERROR] urls[7] = file:/home/mstefank/.m2/repository/com/eclipsesource/minimal-json/minimal-json/0.9.4/minimal-json-0.9.4.jar
> [ERROR] urls[8] = file:/home/mstefank/.m2/repository/org/wildfly/swarm/tools/2018.5.0/tools-2018.5.0.jar
> [ERROR] urls[9] = file:/home/mstefank/.m2/repository/org/wildfly/swarm/bootstrap/2018.5.0/bootstrap-2018.5.0.jar
> [ERROR] urls[10] = file:/home/mstefank/.m2/repository/org/jboss/modules/jboss-modules/1.6.1.Final/jboss-modules-1.6.1.Final.jar
> [ERROR] urls[11] = file:/home/mstefank/.m2/repository/org/yaml/snakeyaml/1.17/snakeyaml-1.17.jar
> [ERROR] urls[12] = file:/home/mstefank/.m2/repository/org/jboss/shrinkwrap/shrinkwrap-api/1.2.6/shrinkwrap-api-1.2.6.jar
> [ERROR] urls[13] = file:/home/mstefank/.m2/repository/org/jboss/shrinkwrap/shrinkwrap-spi/1.2.6/shrinkwrap-spi-1.2.6.jar
> [ERROR] urls[14] = file:/home/mstefank/.m2/repository/org/jboss/shrinkwrap/shrinkwrap-impl-base/1.2.6/shrinkwrap-impl-base-1.2.6.jar
> [ERROR] urls[15] = file:/home/mstefank/.m2/repository/org/jboss/shrinkwrap/descriptors/shrinkwrap-descriptors-api-jboss/2.0.0/shrinkwrap-descriptors-api-jboss-2.0.0.jar
> [ERROR] urls[16] = file:/home/mstefank/.m2/repository/org/jboss/shrinkwrap/descriptors/shrinkwrap-descriptors-api-javaee/2.0.0/shrinkwrap-descriptors-api-javaee-2.0.0.jar
> [ERROR] urls[17] = file:/home/mstefank/.m2/repository/org/jboss/shrinkwrap/descriptors/shrinkwrap-descriptors-api-base/2.0.0/shrinkwrap-descriptors-api-base-2.0.0.jar
> [ERROR] urls[18] = file:/home/mstefank/.m2/repository/org/jboss/shrinkwrap/descriptors/shrinkwrap-descriptors-impl-jboss/2.0.0/shrinkwrap-descriptors-impl-jboss-2.0.0.jar
> [ERROR] urls[19] = file:/home/mstefank/.m2/repository/net/lingala/zip4j/zip4j/1.3.2/zip4j-1.3.2.jar
> [ERROR] urls[20] = file:/home/mstefank/.m2/repository/org/wildfly/swarm/spi/2018.5.0/spi-2018.5.0.jar
> [ERROR] urls[21] = file:/home/mstefank/.m2/repository/org/jboss/jandex/2.0.3.Final/jandex-2.0.3.Final.jar
> [ERROR] urls[22] = file:/home/mstefank/.m2/repository/org/codehaus/plexus/plexus-utils/3.0.20/plexus-utils-3.0.20.jar
> [ERROR] urls[23] = file:/home/mstefank/.m2/repository/org/eclipse/aether/aether-util/1.0.0.v20140518/aether-util-1.0.0.v20140518.jar
> [ERROR] Number of foreign imports: 1
> {code}
> {{~/apps/apache-maven-3.6.1/bin/mvn verify -Parq}} -- ERROR
> {{~/apps/apache-maven-3.6.0/bin/mvn verify -Parq}} -- ERROR
> {{~/apps/apache-maven-3.5.4/bin/mvn verify -Parq}} -- PASS
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
4 years, 8 months
[JBoss JIRA] (JBTM-3164) RTS SRA uses too more dependencies than needed and causes the thorntail jar being bigger than necessary
by Ondrej Chaloupka (Jira)
[ https://issues.jboss.org/browse/JBTM-3164?page=com.atlassian.jira.plugin.... ]
Ondrej Chaloupka updated JBTM-3164:
-----------------------------------
Fix Version/s: 5.9.6.Final
> RTS SRA uses too more dependencies than needed and causes the thorntail jar being bigger than necessary
> -------------------------------------------------------------------------------------------------------
>
> Key: JBTM-3164
> URL: https://issues.jboss.org/browse/JBTM-3164
> Project: JBoss Transaction Manager
> Issue Type: Bug
> Components: REST
> Affects Versions: 5.9.5.Final
> Reporter: Ondrej Chaloupka
> Assignee: Ondrej Chaloupka
> Priority: Minor
> Fix For: 5.9.6.Final
>
>
> The current definition of {{pom.xml}} for {{rts/sra}} project defines the dependency on all microprofile fractions from Thorntail. It depends on fractions which are not used in the project. This makes the result jar bigger than necessary (it's 81MB big).
> The definition should consider only fractions which are about to be used in the project and thus the result jar could be around 60MB.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
4 years, 8 months
[JBoss JIRA] (JBTM-3164) RTS SRA uses too more dependencies than needed and causes the thorntail jar being bigger than necessary
by Ondrej Chaloupka (Jira)
[ https://issues.jboss.org/browse/JBTM-3164?page=com.atlassian.jira.plugin.... ]
Ondrej Chaloupka closed JBTM-3164.
----------------------------------
> RTS SRA uses too more dependencies than needed and causes the thorntail jar being bigger than necessary
> -------------------------------------------------------------------------------------------------------
>
> Key: JBTM-3164
> URL: https://issues.jboss.org/browse/JBTM-3164
> Project: JBoss Transaction Manager
> Issue Type: Bug
> Components: REST
> Affects Versions: 5.9.5.Final
> Reporter: Ondrej Chaloupka
> Assignee: Ondrej Chaloupka
> Priority: Minor
> Fix For: 5.9.6.Final
>
>
> The current definition of {{pom.xml}} for {{rts/sra}} project defines the dependency on all microprofile fractions from Thorntail. It depends on fractions which are not used in the project. This makes the result jar bigger than necessary (it's 81MB big).
> The definition should consider only fractions which are about to be used in the project and thus the result jar could be around 60MB.
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
4 years, 8 months
[JBoss JIRA] (JBTM-3167) ArjunaJTS integration test suite failures
by Ondrej Chaloupka (Jira)
[ https://issues.jboss.org/browse/JBTM-3167?page=com.atlassian.jira.plugin.... ]
Ondrej Chaloupka updated JBTM-3167:
-----------------------------------
Fix Version/s: 5.9.6.Final
> ArjunaJTS integration test suite failures
> -----------------------------------------
>
> Key: JBTM-3167
> URL: https://issues.jboss.org/browse/JBTM-3167
> Project: JBoss Transaction Manager
> Issue Type: Bug
> Affects Versions: 5.9.5.Final
> Reporter: Martin Stefanko
> Assignee: Ondrej Chaloupka
> Priority: Major
> Labels: downstream_dependency
> Fix For: 5.9.6.Final
>
>
> Latest merges on the master branch introduced test failures in ArjunaJTS integration module.
> {code:java}
> [INFO]
> [INFO] Results:
> [INFO]
> [ERROR] Errors:
> [ERROR] TransactionListenerRegistryTest.test:137 ? NotSupported BaseTransaction.checkT...
> [ERROR] TransactionListenerRegistryTest.testIllegalCommit:96->runTxn:86 ? IllegalState
> [ERROR] TransactionListenerRegistryTest.testIllegalRollback:109->runTxn:86 ? IllegalState
> [ERROR] TransactionListenerRegistryTest.testLifecycle:121->runTxn:86 ? IllegalState Tr...
> [ERROR] SPIUnitTest.testListener:154 Runtime TransactionListenerRegistry test failure:...
> {code}
> CI job: http://narayanaci1.eng.hst.ams2.redhat.com/job/narayana/PROFILE=MAIN,jdk=...
--
This message was sent by Atlassian Jira
(v7.12.1#712002)
4 years, 8 months