Uploaded image for project: 'Infinispan'
  1. Infinispan
  2. ISPN-2300

Versioned Transactional Cache issues




      Description from http://lists.jboss.org/pipermail/infinispan-dev/2012-September/011205.html

      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)

      [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


        Issue Links

          There are no Sub-Tasks for this issue.



              gzamarre Galder ZamarreƱo
              pruivo@redhat.com Pedro Ruivo
              0 Vote for this issue
              4 Start watching this issue