[infinispan-issues] [JBoss JIRA] (ISPN-2813) DummyTransaction do not commit is last resource transaction is read-only

Vitalii Tymchyshyn (JIRA) jira-events at lists.jboss.org
Mon Feb 11 12:52:56 EST 2013


Vitalii Tymchyshyn created ISPN-2813:
----------------------------------------

             Summary: DummyTransaction do not commit is last resource transaction is read-only
                 Key: ISPN-2813
                 URL: https://issues.jboss.org/browse/ISPN-2813
             Project: Infinispan
          Issue Type: Bug
          Components: Transactions
    Affects Versions: 5.1.6.FINAL
            Reporter: Vitalii Tymchyshyn
            Assignee: Mircea Markus
            Priority: Critical


Currently HEAD DummyTransaction.java has this code:
...
      for (XAResource res : resources) {
         try {
            int prepareStatus = res.prepare(xid);
            transaction.setPrepareStatus(prepareStatus);
...
This means that transaction gets prepare status of the last resource (cache in case of infinispan) enlisted.
Also it has next code:
...
         if (transaction.getPrepareStatus() == XAResource.XA_RDONLY) {
            log.debug("This is a read-only tx");
         } else {
            ... Do commit ...
...
This means that if last resource returned XA_RDONLY (e.g. when on last cache only get was performed) all other resources are not committed.

For me this results in locks held indefinitely and transaction leak.

Correct would be to remember prepare status per-resource and act accordinly.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the infinispan-issues mailing list