Created attachment 901466 [details]
I'm getting the following exception in one of the crash recovery scenario when running on PostgreSQL Plus.
ERROR [stderr] (Periodic Recovery) Exception in thread "Periodic Recovery" java.util.ConcurrentModificationException
ERROR [stderr] (Periodic Recovery) at java.util.HashMap$HashIterator.nextEntry(HashMap.java:922)
ERROR [stderr] (Periodic Recovery) at java.util.HashMap$KeyIterator.next(HashMap.java:956)
ERROR [stderr] (Periodic Recovery) at com.arjuna.ats.internal.jta.recovery.arjunacore.CommitMarkableResourceRecordRecoveryModule.periodicWorkFirstPass(CommitMarkableResourceRecordRecoveryModule.java:167)
ERROR [stderr] (Periodic Recovery) at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.doWorkInternal(PeriodicRecovery.java:743)
ERROR [stderr] (Periodic Recovery) at com.arjuna.ats.internal.arjuna.recovery.PeriodicRecovery.run(PeriodicRecovery.java:371)
The scenario works with 3 db accounts on one DB machine.
1. 3 CMR resources + testXA resource
2. wait after prepare
3. crash server
5. check that CMRs are committed
The test works fine - meaning the functionality part - but the server log contains this strange exception.
I am having trouble lining up the stack trace with the version of Narayana I have on my machine.
Please can you confirm the version?
I tried to reproduce this and as running on 6.3.0.GA I'm free from the problematic exception as well.
I'm sorry for promoting this to 6.4.0 as it seems that this issue disappeared, probably as some side effect, at GA and Narayana 4.17.21.Final.
If you don't mind I will close this as not a bug. In case that I will hit it again I would create new bz with better description how to reproduce.
Thanks Ondra, the code is synchronized but the lines don't tally up so it may be I added it later or something but before GA.