Wow, that's not nice.
JBCACHE-1353. Thx for spotting this.
Setting higher timeout values in the sequence does not help. Also synchronous commit and rollbacks only brought other exceptions.
What I fail to understand is where the lock contention comes from. Given that each thread access separate nodes and mutate only attributes, why is there a contention on state transfer?
Ie. given thread T1 accessing node N1, state transfer for N1 should not commence unless T1 accesses the data on cache2 in which case no thread is accessing N1 on cache1.
You say this is still a problem with higher timeout values? I'm guessing you have edited the sources to set this to the same value as LockAcquisitionTimeout ?
And what probs do you see when you use sync commit and rollback?