[jbossts-issues] [JBoss JIRA] (JBTM-2767) JCA inflowed JTS transactions can throw NPE

Tom Jenkinson (JIRA) issues at jboss.org
Fri Oct 28 12:14:00 EDT 2016


     [ https://issues.jboss.org/browse/JBTM-2767?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Tom Jenkinson updated JBTM-2767:
--------------------------------
    Steps to Reproduce:   (was: Crashrecovery testsuite could be used for reproducing the issue
{{mvn clean verify -am -pl jbossts -DfailIfNoTests=false -fn -Djbossts.noJTA -Dtest=JcaInflowTransactionTestCase#rmerrWithRecovery}})


> JCA inflowed JTS transactions can throw NPE
> -------------------------------------------
>
>                 Key: JBTM-2767
>                 URL: https://issues.jboss.org/browse/JBTM-2767
>             Project: JBoss Transaction Manager
>          Issue Type: Bug
>          Components: JTS
>    Affects Versions: 5.3.5.Final
>            Reporter: Ondra Chaloupka
>            Assignee: Tom Jenkinson
>            Priority: Minor
>
> I hit a trouble similar to JBEAP-5638 but in this case for {{JTS}}. I'm not able to recover heuristic transaction for scenario
> {quote}
> * test client sends prepare command
> * test client sends commit command
> * first XAResource commits, secondXAResource throws {{XAException#XAER_RMERR}} on commit start
> * test client gets error code {{XAException#XA_HEURMIX}}
> * now the transaction participant is in heuristic state
> * tried to commit the created txn -> fails as in heuristic and can't be operated
> * using {{:recover}} command for the transaction participant
> * tried to commit the txn -> expecting the commit succeed and txn is committed
> {quote}
> There are two troubles. First is {{NullPointerException}} is thrown during a try to commit transaction in heuristic state [1].
> Second is not possible to read transaction participant from object store via {{jboss-cli}} commands (even when {{expose-all-logs}} is used) and that way it's not possible to call {{recover}} the participant in heuristic state.
> [1]
> {code}
> 2016-10-05 16:19:23,537 ERROR [stderr] (default-threads - 1) java.lang.NullPointerException2016-10-05 16:19:23,537 ERROR [stderr] (default-threads - 1)  
>  at com.arjuna.ats.internal.jta.transaction.jts.subordinate.jca.SubordinateAtomicTransaction.getXid(SubordinateAtomicTransaction.java:80)2016-10-05 16:19:23,537 ERROR [stderr] (default-threads - 1)
>   at com.arjuna.ats.internal.jta.transaction.jts.subordinate.jca.TransactionImple.baseXid(TransactionImple.java:126)2016-10-05 16:19:23,537 ERROR [stderr] (default-threads - 1)  at com.arjuna.ats.internal.jta.transaction.jts.jca.TransactionImporterImple.getImportedTransaction(TransactionImporterImple.java:135)2016-10-05 16:19:23,537 ERROR [stderr] (default-threads - 1)
>   at com.arjuna.ats.internal.jta.transaction.jts.jca.XATerminatorImple.commit(XATerminatorImple.java:83)2016-10-05 16:19:23,537 ERROR [stderr] (default-threads - 1)
>   at org.jboss.as.test.jbossts.crashrec.jca.rar.TestResourceTxnWorkUnit.run(Unknown Source)2016-10-05 16:19:23,537 ERROR [stderr] (default-threads - 1)
>   at org.jboss.jca.core.workmanager.WorkWrapper.run(WorkWrapper.java:223)2016-10-05 16:19:23,537 ERROR [stderr] (default-threads - 1)
>   at org.jboss.threads.SimpleDirectExecutor.execute(SimpleDirectExecutor.java:33)2016-10-05 16:19:23,537 ERROR [stderr] (default-threads - 1)
>   at org.jboss.threads.QueueExecutor.runTask(QueueExecutor.java:808)2016-10-05 16:19:23,537 ERROR [stderr] (default-threads - 1)
>   at org.jboss.threads.QueueExecutor.access$100(QueueExecutor.java:45)2016-10-05 16:19:23,537 ERROR [stderr] (default-threads - 1)
>   at org.jboss.threads.QueueExecutor$Worker.run(QueueExecutor.java:828)2016-10-05 16:19:23,537 ERROR [stderr] (default-threads - 1)
>   at java.lang.Thread.run(Thread.java:745)2016-10-05 16:19:23,537 ERROR [stderr] (default-threads - 1)
>   at org.jboss.threads.JBossThread.run(JBossThread.java:320)
> 2016-10-05 16:19:23,538 ERROR [org.jboss.as.test.jbossts.crashrec.jca.rar.TestResourceTxnWorkUnit] (default-threads - 1) Unspecified sever exception: java.lang.NullPointerException at com.arjuna.ats.internal.jta.transaction.jts.subordinate.jca.TransactionImple.recover(TransactionImple.java:135)
>  at com.arjuna.ats.internal.jta.transaction.jts.jca.TransactionImporterImple.getImportedTransaction(TransactionImporterImple.java:141)
>  at com.arjuna.ats.internal.jta.transaction.jts.jca.XATerminatorImple.commit(XATerminatorImple.java:83) at org.jboss.as.test.jbossts.crashrec.jca.rar.TestResourceTxnWorkUnit.run(Unknown Source) at org.jboss.jca.core.workmanager.WorkWrapper.run(WorkWrapper.java:223)
>  at org.jboss.threads.SimpleDirectExecutor.execute(SimpleDirectExecutor.java:33) at org.jboss.threads.QueueExecutor.runTask(QueueExecutor.java:808)
>  at org.jboss.threads.QueueExecutor.access$100(QueueExecutor.java:45)
>  at org.jboss.threads.QueueExecutor$Worker.run(QueueExecutor.java:828)
>  at java.lang.Thread.run(Thread.java:745)
>  at org.jboss.threads.JBossThread.run(JBossThread.java:320)
> {code}
> [2]
> {code}
> [standalone at localhost:42042 /] /subsystem=transactions/log-store=log-store:read-resource(recursive=true, include-runtime=true)
> {
>     "outcome" => "success",
>     "result" => {
>         "expose-all-logs" => false,
>         "type" => "default",
>         "transactions" => undefined
>     }
> }
> [standalone at localhost:42042 /] /subsystem=transactions/log-store=log-store:write-attribute(name=expose-all-logs, value=true)
> {
>     "outcome" => "success",
>     "result" => undefined
> }
> [standalone at localhost:42042 /] /subsystem=transactions/log-store=log-store:probe()
> {"outcome" => "success"}
> [standalone at localhost:42042 /] /subsystem=transactions/log-store=log-store:read-resource(recursive=true, include-runtime=true)
> {
>     "outcome" => "success",
>     "result" => {
>         "expose-all-logs" => true,
>         "type" => "default",
>         "transactions" => {
>             "0:ffff7f000001:3716dcba:57f50b7d:14" => {
>                 "age-in-seconds" => undefined,
>                 "id" => "0:ffff7f000001:3716dcba:57f50b7d:14",
>                 "jmx-name" => undefined,
>                 "type" => "Recovery/FactoryContact",
>                 "participants" => undefined
>             },
>             "0:ffff7f000001:3716dcba:57f50b7d:28" => {
>                 "age-in-seconds" => undefined,
>                 "id" => "0:ffff7f000001:3716dcba:57f50b7d:28",
>                 "jmx-name" => undefined,
>                 "type" => "StateManager/BasicAction/TwoPhaseCoordinator/ArjunaTransactionImple/ServerTransaction/JCA",
>                 "participants" => undefined
>             },
>             "0:ffff52e38d0c:c91:4140398c:0" => {
>                 "age-in-seconds" => undefined,
>                 "id" => "0:ffff52e38d0c:c91:4140398c:0",
>                 "jmx-name" => undefined,
>                 "type" => "RecoveryCoordinator",
>                 "participants" => undefined
>             }
>         }
>     }
> }
> {code}



--
This message was sent by Atlassian JIRA
(v7.2.2#72004)



More information about the jbossts-issues mailing list