[jbossts-issues] [JBoss JIRA] (JBTM-2973) Direct recoverable connection is not serialized in object store to be "directly" recoverable

Ondra Chaloupka (JIRA) issues at jboss.org
Tue Jan 2 02:21:00 EST 2018


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

Ondra Chaloupka updated JBTM-2973:
----------------------------------
        Status: Resolved  (was: Pull Request Sent)
    Resolution: Done


> Direct recoverable connection is not serialized in object store to be "directly" recoverable
> --------------------------------------------------------------------------------------------
>
>                 Key: JBTM-2973
>                 URL: https://issues.jboss.org/browse/JBTM-2973
>             Project: JBoss Transaction Manager
>          Issue Type: Bug
>          Components: JTA
>    Affects Versions: 5.7.1.Final
>            Reporter: Ondra Chaloupka
>            Assignee: Ondra Chaloupka
>
> On working with {{com.arjuna.ats.internal.jdbc.DirectRecoverableConnection}} I found out that state is not saved correctly for the connection could be restored from the object store and recovered.
> The issue happens to be in case the direct recoverable {{XAResource}} throws {{XAException.XAER_RMFAIL}} on commit. That means the resource is not ready to commit but recovery should retry. In case of the {{DirectRecoverableConnection}} the state should be serialized and then restored from object store and used for recovery.
> {{XAResourceRecord#prepare}} causes the connection ({{_recoveryObject}}) is saved under object store but then if fails on commit happens the {{XAResourceRecord#removeConnection}} is called where {{_recoveryObject}} is set to null and now the {{BasicAction#phase2Commit}} on call of {{updateState}} (call {{if (!save_state(state, ObjectType.ANDPERSISTENT))}}) tries to update  state but the recovery object is already null and the old {{prepare}} version is overriden by {{commit}} one which has already removed information that the object is directly recoverable.



--
This message was sent by Atlassian JIRA
(v7.5.0#75005)


More information about the jbossts-issues mailing list