[jbossts-issues] [JBoss JIRA] (JBTM-3147) WS-AT participant which timeouts on prepare is not aborted but put to heuristic state

Ondrej Chaloupka (Jira) issues at jboss.org
Tue May 28 05:14:00 EDT 2019


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

Ondrej Chaloupka updated JBTM-3147:
-----------------------------------
    Description: 
When {{prepare}} on WS-AT participant timeouts (e.g. because of a communication error) such participant is marked as heuristic. That's not correct as timeouted communication during prepare is expected to be aborted.

This behaviour is confirmed by comments in the source code and tests expect such behaviour.

Unfortunately the returned error code makes opposite (marking participant as heuristic). The return code should do what the comment asks
https://github.com/jbosstm/narayana/blob/5.9.5.Final/XTS/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/ParticipantRecord.java#L362

{quote}
// if prepare timed out then we return error so it goes back on the
// prepare list and is rolled back
{quote}

The same is correct for the {{cancel}} call on communication error. When cancel is called then it's expected to be retried and correct return code is needed to be returned.
See comment on the durable 2PC participant at https://github.com/jbosstm/narayana/blob/5.9.5.Final/XTS/WSTX/classes/com/arjuna/mwlabs/wst/at/participants/DurableTwoPhaseCommitParticipant.java#L232

  was:
When {{prepare}} on WS-AT participant timeouts (e.g. because of a communication error) such participant is marked as heuristic. That's not correct as timeouted communication during prepare is expected to be aborted.

This behaviour is confirmed by comments in the source code and tests expect such behaviour.

Unfortunately the returned error code makes opposite (marking participant as heuristic). The return code should do what the comment asks
https://github.com/jbosstm/narayana/blob/5.9.5.Final/XTS/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/ParticipantRecord.java#L362

{quote}
// if prepare timed out then we return error so it goes back on the
// prepare list and is rolled back
{quote}



> WS-AT participant which timeouts on prepare is not aborted but put to heuristic state
> -------------------------------------------------------------------------------------
>
>                 Key: JBTM-3147
>                 URL: https://issues.jboss.org/browse/JBTM-3147
>             Project: JBoss Transaction Manager
>          Issue Type: Bug
>          Components: XTS
>            Reporter: Ondrej Chaloupka
>            Assignee: Ondrej Chaloupka
>            Priority: Major
>             Fix For: 5.9.5.Final
>
>
> When {{prepare}} on WS-AT participant timeouts (e.g. because of a communication error) such participant is marked as heuristic. That's not correct as timeouted communication during prepare is expected to be aborted.
> This behaviour is confirmed by comments in the source code and tests expect such behaviour.
> Unfortunately the returned error code makes opposite (marking participant as heuristic). The return code should do what the comment asks
> https://github.com/jbosstm/narayana/blob/5.9.5.Final/XTS/WSCF/classes/com/arjuna/mwlabs/wscf/model/twophase/arjunacore/ParticipantRecord.java#L362
> {quote}
> // if prepare timed out then we return error so it goes back on the
> // prepare list and is rolled back
> {quote}
> The same is correct for the {{cancel}} call on communication error. When cancel is called then it's expected to be retried and correct return code is needed to be returned.
> See comment on the durable 2PC participant at https://github.com/jbosstm/narayana/blob/5.9.5.Final/XTS/WSTX/classes/com/arjuna/mwlabs/wst/at/participants/DurableTwoPhaseCommitParticipant.java#L232



--
This message was sent by Atlassian Jira
(v7.12.1#712002)


More information about the jbossts-issues mailing list