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

Conflicting transactions are not properly aborted on non-transactional caches that use batching (DummyTransaction)

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Minor
    • 5.1.5.FINAL
    • 5.1.4.FINAL
    • Transactions
    • None

    Description

      Transaction manager silently aborts transaction commit due to write skew conflicts with other concurrent TX but does not throw RollbackException from TransactionManager.commit() as mandated by JTA spec. This only happens for a non-transactional cache. Tx for non-transactional caches are supported via DummyTransactionManager/DummyTransaction which seems to behave quite differently than JBoss TM and the JTA spec.

      I've done a simple test. One non-transactional cache with batching, optimistic locking, simple versioning and write skew check. I use explicit manual transaction demarcation. N threads attempt to remove the same key concurrently and I count how many succeeded to remove (ie. remove(key,value) returned true) and also commit the TX successfully. I expect 1 but it turns out there are more successes.

      Attachments

        Activity

          People

            anistor Adrian Nistor (Inactive)
            anistor Adrian Nistor (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: