[jboss-jira] [JBoss JIRA] (WFLY-13516) Create integration test scenario for transaction recovery failure of ejb remoting JBEAP-19408

Ondrej Chaloupka (Jira) issues at jboss.org
Thu May 28 05:04:56 EDT 2020


     [ https://issues.redhat.com/browse/WFLY-13516?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ondrej Chaloupka updated WFLY-13516:
------------------------------------
    Comment: was deleted

(was: The PR was closed as there is need first to have change of the Narayana filter priority to something else than the {USER} (https://github.com/jbosstm/narayana/blob/5.10.4.Final/rts/at/bridge/src/main/java/org/jboss/narayana/rest/bridge/inbound/InboundBridgeFilter.java#L50).
The issue is tracked at https://issues.redhat.com/browse/JBTM-3321.

There is needed the Narayana codebase to be changed and the component upgrade to be placed in.)


> Create integration test scenario for transaction recovery failure of ejb remoting JBEAP-19408
> ---------------------------------------------------------------------------------------------
>
>                 Key: WFLY-13516
>                 URL: https://issues.redhat.com/browse/WFLY-13516
>             Project: WildFly
>          Issue Type: Task
>          Components: Test Suite, Transactions
>    Affects Versions: 20.0.0.Beta1
>            Reporter: Ondrej Chaloupka
>            Assignee: Ondrej Chaloupka
>            Priority: Major
>
> There was found a transaction recovery failure scenario which caused regression being filled as https://issues.redhat.com/browse/JBEAP-19408.
> The issue JBEAP-19408 causes that in case of WildFly communicating over EJB remoting to other WildFly and when there is a failure then there could be left prepared resources on the other WildFly which are never rolled-back.
> E.g. in case of database it means locked rows which could not be manipulated with until administrator comes and manually unlock them.
> The scenario which was this hit with and which should be simulated in the WildFly testsuite:
> * server A starts the transactions
> * transaction at server A enlists the an XAResource related to a future interation with server B (At server A, WFTC enlists an "ejb client resource" related to a future interaction with B)
> * server A makes the remote EJB call to server B where transaction is propagated
> * server A asks server B to prepare
> * server A creates a "ejb client resource" XAResourceRegistry file system record
> * server B prepares
> * server A crashes before it writes a transaction log
> * server A restarts  (transaction recovery cycle starts)
> * server A can see no record of the transactions in the object store
> * server A uses the standard orphan detection processing
> * server A calls XAResource.recover(TMSTARTRSCAN) on "ejb client resource". It returns prepared XAResources from server B as there is XAResourceRegistry file system record on server A (related to a future interation with server B)
> * server A calls XAResource.recover(TMENDRSCAN), the recovery cycle finishes
> * server A calls another round of recovery wwith XAResource.recover(TMSTARTRSCAN) and there is the XAResourceRegistry and orphan detection rolls-back the subtransaction resources on server B



--
This message was sent by Atlassian Jira
(v7.13.8#713008)


More information about the jboss-jira mailing list