In previous releases of JBoss EAP 6, the tooling for reading transaction logs did not expose CMR records.
THis issue has been addressed in this release.
Created attachment 912173 [details]
Description of problem:
After crashing on exit of CommitMarkableResourceRecord.commit method, there is not participants in TX log.
Please find attached server trace log, "tree" result of "tx-object-store" and "standalone-full.xml".
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. In a transaction there is 1 CMR and 1 test XA resources.
2. Crash the server on the exit of CommitMarkableResourceRecord.commit method.
3. Pause Periodic Recovery during the reboot of server.
4. Check that there is 1 TX in a logs, but this does not have participants.
there are no participants in TX log
where should be 2 of them (for CMR and test XA)
Created attachment 912175 [details]
This could be connected (or being the same issue) as https://bugzilla.redhat.com/show_bug.cgi?id=1086297
*** Bug 1086297 has been marked as a duplicate of this bug. ***
I have tried the workaround in ER7, it shows "EISNAME" transaction as well together with "StateManager/BasicAction/TwoPhaseCoordinator/AtomicAction" transaction, but still transaction participants are empty for both of them.
However the problem is fixed in EAP 6.3.0 ER10.
This issue was bound to testcase of recovery testsuite:
This testcase started to pass in EAP 6.3.0.ER10.
But this issue was left open as there was trouble described in bug:
and as that bug was defined as duplicate of this one. So this one represents the core issue.
The problem in bz#1086297 was seen when tested manually.
It's needed to check whether bz#1086297 is problem or not for 6.3.1.
I fixed the underlying issue of the probe operation not seeing the CMR participants.
However the test still fails when it tries to remove a particular transaction from the log. The intent of the test is to:
- remove the tx from log (the test only creates 1 log), the test fails here
- validate that the logs are empty.
I modified the test to clear the log instead of just removing a particular entry and the test passes (which I believe more accurately implements the intention behind the test case). I did not debug why the tx remove operation is failing.
Does it mean that in 6.3.1 logs are deleted automatically after recovery is finished?
I would just try to sum up the case here
- there was fixed test ToolingCMRTestCase#haltCMRCommit to run with EAP 6.3.1 (if the recover operation completes the transaction then the log will be deleted)
- Mike created a fix for bz#1086297 which will be part of Narayana 4.17.23 release
fixed in community project, awaiting release
Verified on version EAP 6.4.0 DR8.
Now the TX log shows participants correctly after crash.
Tom Jenkinson <email@example.com> updated the status of jira JBTM-2238 to Closed