[jboss-jira] [JBoss JIRA] (WFLY-13632) If a CMR resource is deployed concurrently then it will overwrite the list of resources that are expected to behave as CMR

Brian Stansberry (Jira) issues at jboss.org
Mon Jul 6 20:58:20 EDT 2020


    [ https://issues.redhat.com/browse/WFLY-13632?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14202326#comment-14202326 ] 

Brian Stansberry commented on WFLY-13632:
-----------------------------------------

[~mmusgrov] [~tomjenkinson]

 

There can be more than one /subsystem=transactions/commit-markable-resource=* resource and the CMResourceAdd handler will install an instance of CMResourceService for each. Those *install* calls will happen in series (e.g. during boot) from a single thread, and no other management op can come in and add resource another commit-markable-resource=* resource at the same time. But installing an MSC Service is not the same as starting the service – MSC invokes the start method on services concurrently using its thread pool. So you can definitely get concurrent calls to CMResourceService.start(StartContext).

 

> If a CMR resource is deployed concurrently then it will overwrite the list of resources that are expected to behave as CMR
> --------------------------------------------------------------------------------------------------------------------------
>
>                 Key: WFLY-13632
>                 URL: https://issues.redhat.com/browse/WFLY-13632
>             Project: WildFly
>          Issue Type: Bug
>          Components: Transactions
>            Reporter: Thomas Jenkinson
>            Assignee: Michael Musgrove
>            Priority: Blocker
>
> Inspecting https://github.com/wildfly/wildfly/blob/master/transactions/src/main/java/org/jboss/as/txn/service/CMResourceService.java#L73 we can see that it will overwrite the map in https://github.com/jbosstm/narayana/blob/48818111d12d2e51b52082a00bcb606040c36546/ArjunaJTA/jta/classes/com/arjuna/ats/jta/common/JTAEnvironmentBean.java#L1111 because it first get's a copy of a map (https://github.com/wildfly/wildfly/blob/master/transactions/src/main/java/org/jboss/as/txn/service/CMResourceService.java#L63 -> https://github.com/jbosstm/narayana/blob/48818111d12d2e51b52082a00bcb606040c36546/ArjunaJTA/jta/classes/com/arjuna/ats/jta/common/JTAEnvironmentBean.java#L1089) so the maps won't be equal.
> This will result in WildFly overwriting the list of resources that Narayana will treat as CMR.



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



More information about the jboss-jira mailing list