[jbossts-issues] [JBoss JIRA] (JBTM-1135) TestATSubordinateCrashDuringPrepare fails: Resend to rollback participant not handled correctly

Paul Robinson (JIRA) jira-events at lists.jboss.org
Mon Apr 23 04:11:20 EDT 2012


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

Paul Robinson updated JBTM-1135:
--------------------------------

        Summary: TestATSubordinateCrashDuringPrepare fails: Resend to rollback participant not handled correctly  (was: TestATSubordinateCrashDuringPrepare fails: jboss-as not killed)
    Description: 
See failed job here: http://172.17.131.2/view/XTS%20recovery/job/jbossts-branch416-xts-recovery-java6/61

After looking at the trace output here:

http://172.17.131.2/view/XTS%20recovery/job/jbossts-branch416-xts-recovery-java6/61/artifact/XTS/sar/crash-recovery-tests/target/log/ATSubordinateCrashDuringPrepare.subordinate.MultiParticipantPrepareAndCommitTest/*view*/

You will see a message re-send:

{code}
rollback received for Participant org.jboss.jbossts.xts.servicetests.DurableTestParticipant.1
rollback received for Participant org.jboss.jbossts.xts.servicetests.DurableTestParticipant.1
{code}

This seems to cause the rule "trace delete participant and exit JVM" to be invoked twice:

{code}
21:17:52,893 INFO  [stdout] (TaskWorker-1) rule.debug{trace receive Participant rollback} : rollback received for Participant org.jboss.jbossts.xts.servicetests.DurableTestParticipant.1
21:17:52,896 INFO  [stdout] (TaskWorker-1) Rule.execute called for trace delete participant and exit JVM_10
21:17:52,897 INFO  [stdout] (TaskWorker-1) HelperManager.install for helper classorg.jboss.byteman.rule.helper.Helper
21:17:52,899 INFO  [stdout] (TaskWorker-1) calling installed(trace delete participant and exit JVM) for helper classorg.jboss.byteman.rule.helper.Helper
21:17:52,901 INFO  [stdout] (TaskWorker-1) Installed rule using default helper : trace delete participant and exit JVM
21:17:52,903 INFO  [stdout] (TaskWorker-1) trace delete participant and exit JVM execute
21:17:52,904 INFO  [stdout] (TaskWorker-1) Rule.execute called for trace send Participant aborted_21
21:17:52,906 INFO  [stdout] (TaskWorker-1) HelperManager.install for helper classorg.jboss.byteman.rule.helper.Helper
21:17:52,907 INFO  [stdout] (TaskWorker-1) calling installed(trace send Participant aborted) for helper classorg.jboss.byteman.rule.helper.Helper
21:17:52,909 INFO  [stdout] (TaskWorker-1) Installed rule using default helper : trace send Participant aborted
21:17:52,911 INFO  [stdout] (TaskWorker-1) trace send Participant aborted execute
21:17:52,912 INFO  [stdout] (TaskWorker-1) rule.debug{trace send Participant aborted} : aborted sent for Participant org.jboss.jbossts.xts.servicetests.DurableTestParticipant.1
21:17:52,915 INFO  [stdout] (TaskWorker-3) Rule.execute called for trace delete participant and exit JVM_10
21:17:52,918 INFO  [stdout] (TaskWorker-3) trace delete participant and exit JVM execute
{code}

This is because "XTSATRecoveryManagerImple.deleteParticipantRecoveryRecord" is invoked for both rollback messages.

Is this valid behaviour for XTS when dealing with message replays? If so, this Byteman script and any other susceptible to this issue need updating to only check for individual participant record removals. 

We could complete the test when three or more participant records are removed, however, that would produce a false positive in the case where one participant record is not deleted and another is attempted for a second time.

  was:
See: http://172.17.131.2/view/XTS%20recovery/job/jbossts-branch416-xts-recovery-java6/61

No more info yet.


    
> TestATSubordinateCrashDuringPrepare fails: Resend to rollback participant not handled correctly
> -----------------------------------------------------------------------------------------------
>
>                 Key: JBTM-1135
>                 URL: https://issues.jboss.org/browse/JBTM-1135
>             Project: JBoss Transaction Manager
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>    Affects Versions: 4.16.3
>            Reporter: Paul Robinson
>            Assignee: Paul Robinson
>             Fix For: 4.16.4, 5.0.0.M2
>
>
> See failed job here: http://172.17.131.2/view/XTS%20recovery/job/jbossts-branch416-xts-recovery-java6/61
> After looking at the trace output here:
> http://172.17.131.2/view/XTS%20recovery/job/jbossts-branch416-xts-recovery-java6/61/artifact/XTS/sar/crash-recovery-tests/target/log/ATSubordinateCrashDuringPrepare.subordinate.MultiParticipantPrepareAndCommitTest/*view*/
> You will see a message re-send:
> {code}
> rollback received for Participant org.jboss.jbossts.xts.servicetests.DurableTestParticipant.1
> rollback received for Participant org.jboss.jbossts.xts.servicetests.DurableTestParticipant.1
> {code}
> This seems to cause the rule "trace delete participant and exit JVM" to be invoked twice:
> {code}
> 21:17:52,893 INFO  [stdout] (TaskWorker-1) rule.debug{trace receive Participant rollback} : rollback received for Participant org.jboss.jbossts.xts.servicetests.DurableTestParticipant.1
> 21:17:52,896 INFO  [stdout] (TaskWorker-1) Rule.execute called for trace delete participant and exit JVM_10
> 21:17:52,897 INFO  [stdout] (TaskWorker-1) HelperManager.install for helper classorg.jboss.byteman.rule.helper.Helper
> 21:17:52,899 INFO  [stdout] (TaskWorker-1) calling installed(trace delete participant and exit JVM) for helper classorg.jboss.byteman.rule.helper.Helper
> 21:17:52,901 INFO  [stdout] (TaskWorker-1) Installed rule using default helper : trace delete participant and exit JVM
> 21:17:52,903 INFO  [stdout] (TaskWorker-1) trace delete participant and exit JVM execute
> 21:17:52,904 INFO  [stdout] (TaskWorker-1) Rule.execute called for trace send Participant aborted_21
> 21:17:52,906 INFO  [stdout] (TaskWorker-1) HelperManager.install for helper classorg.jboss.byteman.rule.helper.Helper
> 21:17:52,907 INFO  [stdout] (TaskWorker-1) calling installed(trace send Participant aborted) for helper classorg.jboss.byteman.rule.helper.Helper
> 21:17:52,909 INFO  [stdout] (TaskWorker-1) Installed rule using default helper : trace send Participant aborted
> 21:17:52,911 INFO  [stdout] (TaskWorker-1) trace send Participant aborted execute
> 21:17:52,912 INFO  [stdout] (TaskWorker-1) rule.debug{trace send Participant aborted} : aborted sent for Participant org.jboss.jbossts.xts.servicetests.DurableTestParticipant.1
> 21:17:52,915 INFO  [stdout] (TaskWorker-3) Rule.execute called for trace delete participant and exit JVM_10
> 21:17:52,918 INFO  [stdout] (TaskWorker-3) trace delete participant and exit JVM execute
> {code}
> This is because "XTSATRecoveryManagerImple.deleteParticipantRecoveryRecord" is invoked for both rollback messages.
> Is this valid behaviour for XTS when dealing with message replays? If so, this Byteman script and any other susceptible to this issue need updating to only check for individual participant record removals. 
> We could complete the test when three or more participant records are removed, however, that would produce a false positive in the case where one participant record is not deleted and another is attempted for a second time.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jbossts-issues mailing list