On 10-11-23 7:34 AM, Manik Surtani wrote:
So the issue is that a reader has locked the entry in memory because
it is in L1, and this is why the transactional write from elsewhere cannot be applied?
Readers don't block writers...
There are no readers here - I believe. Again cluster is {A,B,C,D} , E is
a joiner. Command put on key K is prepared across the cluster from
originating node, say B. As prepare is executed write locks on K are
obtained at A, C, and D. Now, E joins, issues invalidate on K across
cluster. Invalidate command tries to obtain a write lock on key K but it
can not since it is already locked by command command.
Give it a go. Add a 2 sec sleep to RehashTestBase.java line 96 just
before tx is started. This will ensure that E always rehashes before tx
from B is started. Test never fails in this case.
Cheers