[infinispan-dev] Versioned Transactional Cache issues

Galder Zamarreño galder at redhat.com
Fri Sep 14 05:55:13 EDT 2012


Hey Pedro,

Thanks very much for the test cases.

Yes please, create a single JIRA addressing the 3 issues. That should be enough.

I'd suggest you check with Manik on the fixes that you're unsure about since he's the specialist on that area.

Cheers,

On Sep 11, 2012, at 8:14 PM, Pedro Ruivo <pruivo at gsd.inesc-id.pt> wrote:

> Hi all,
> 
> While I was working in Infinispan, I have found some issues with the 
> versioned transactional cache. I have created some tests cases (can be 
> found here [1]) to reproduce the issues and also I have fixed one of 
> them. The issues are the following:
> 
> 1) testPutIfAbsent, testRemoveIfPresent, testReplaceWithOldVal (methods 
> the test cases)
> 
> In this tests, it was updating the cache entry with a null version. This 
> originates later a IllegalStateException when it tries to perform the 
> write skew check and the version is null.
> I have fixed this problem in this way: if the command fails (PutCommand, 
> RemoveCommand, ReplaceCommand), I unset the flag CHANGED in the 
> MvccEntry to avoid to update the entry in the DataContainer.
> 
> 2) testClear in distributed mode
> 
> I have no clear idea how to solve this problem but it looks like the 
> PrepareCommand (with the ClearCommand) is not sent to all the nodes in 
> the cluster. Then, when I do a get, a remote get is performed and the 
> key is still there. I think that it is not the desired behavior.
> 
> 3) testRemoveUnexistingEntry
> 
> In this test, it tries to remove a key that does not exists but it does 
> not success due to a NullPointerException. I have looked deeper and I 
> check that the transaction's lookup entries map has an entry with [key 
> => null] and when it tries to perform the write skew check in that key, 
> a NullPointerException is thrown in here [2] (line 80, WriteSkewHelper)
> 
> Should I open a JIRA with this 3 issues (or 3 JIRAs, one for each issue)?
> If you want, I can issue a pull request too.
> 
> Cheers,
> Pedro Ruivo
> 
> [1] https://github.com/pruivo/infinispan/tree/t_replace_fix
> [2] 
> https://github.com/pruivo/infinispan/blob/t_replace_fix/core/src/main/java/org/infinispan/transaction/WriteSkewHelper.java#L80
> _______________________________________________
> infinispan-dev mailing list
> infinispan-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/infinispan-dev


--
Galder Zamarreño
galder at redhat.com
twitter.com/galderz

Project Lead, Escalante
http://escalante.io

Engineer, Infinispan
http://infinispan.org




More information about the infinispan-dev mailing list