Uploaded image for project: 'IronJacamar'
  1. IronJacamar
  2. JBJCA-1368

JDBC XAManagedConnection.end could loop endlessly when broadcasting error

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • Major
    • None
    • None
    • JDBC
    • None

    Description

      If a connection.end operation broadcasts an error for a XA JDBC connection, it could loop endlessly:
      09/01/2018 14:43:16,805 WARN [com.arjuna.ats.jta] (http task-73) ARJUNA016056: TransactionImple.delistResource - caught exception during delist : XAException.XAER_RMFAIL: oracle.jdbc.xa.OracleXAException
      at oracle.jdbc.xa.OracleXAResource.checkError(OracleXAResource.java:1110)
      at oracle.jdbc.xa.client.OracleXAResource.end(OracleXAResource.java:436)
      at org.jboss.jca.adapters.jdbc.xa.XAManagedConnection.end(XAManagedConnection.java:295)
      at org.jboss.jca.core.tx.jbossts.XAResourceWrapperImpl.end(XAResourceWrapperImpl.java:118)
      at org.jboss.jca.core.tx.jbossts.XAResourceWrapperStatImpl.end(XAResourceWrapperStatImpl.java:96)
      at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.delistResource(TransactionImple.java:914)
      at org.jboss.jca.core.connectionmanager.listener.TxConnectionListener.haltCatchFire(TxConnectionListener.java:768)
      at org.jboss.jca.core.connectionmanager.listener.AbstractConnectionListener.connectionErrorOccurred(AbstractConnectionListener.java:468)
      at org.jboss.jca.adapters.jdbc.BaseWrapperManagedConnection.broadcastConnectionError(BaseWrapperManagedConnection.java:673)
      at org.jboss.jca.adapters.jdbc.xa.XAManagedConnection.end(XAManagedConnection.java:301)
      at org.jboss.jca.core.tx.jbossts.XAResourceWrapperImpl.end(XAResourceWrapperImpl.java:118)
      at org.jboss.jca.core.tx.jbossts.XAResourceWrapperStatImpl.end(XAResourceWrapperStatImpl.java:96)
      at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.delistResource(TransactionImple.java:914)
      at org.jboss.jca.core.connectionmanager.listener.TxConnectionListener.haltCatchFire(TxConnectionListener.java:768)
      at org.jboss.jca.core.connectionmanager.listener.AbstractConnectionListener.connectionErrorOccurred(AbstractConnectionListener.java:468)
      at org.jboss.jca.adapters.jdbc.BaseWrapperManagedConnection.broadcastConnectionError(BaseWrapperManagedConnection.java:673)
      ....
      REPEAT ENDLESSLY
      ....
      at org.jboss.jca.adapters.jdbc.xa.XAManagedConnection.end(XAManagedConnection.java:301)
      at org.jboss.jca.core.tx.jbossts.XAResourceWrapperImpl.end(XAResourceWrapperImpl.java:118)
      at org.jboss.jca.core.tx.jbossts.XAResourceWrapperStatImpl.end(XAResourceWrapperStatImpl.java:96)
      at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.delistResource(TransactionImple.java:914)
      at org.jboss.jca.core.connectionmanager.listener.TxConnectionListener.haltCatchFire(TxConnectionListener.java:768)
      at org.jboss.jca.core.connectionmanager.listener.AbstractConnectionListener.connectionErrorOccurred(AbstractConnectionListener.java:468)
      at org.jboss.jca.adapters.jdbc.BaseWrapperManagedConnection.broadcastConnectionError(BaseWrapperManagedConnection.java:673)
      at org.jboss.jca.adapters.jdbc.xa.XAManagedConnection.end(XAManagedConnection.java:301)
      at org.jboss.jca.core.tx.jbossts.XAResourceWrapperImpl.end(XAResourceWrapperImpl.java:118)
      at org.jboss.jca.core.tx.jbossts.XAResourceWrapperStatImpl.end(XAResourceWrapperStatImpl.java:96)
      at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.delistResource(TransactionImple.java:914)
      at org.jboss.jca.core.connectionmanager.listener.TxConnectionListener.haltCatchFire(TxConnectionListener.java:768)
      at org.jboss.jca.core.connectionmanager.listener.AbstractConnectionListener.connectionErrorOccurred(AbstractConnectionListener.java:468)
      at org.jboss.jca.adapters.jdbc.BaseWrapperManagedConnection.broadcastConnectionError(BaseWrapperManagedConnection.java:673)
      at org.jboss.jca.adapters.jdbc.xa.XAManagedConnection.end(XAManagedConnection.java:301)
      at org.jboss.jca.core.tx.jbossts.XAResourceWrapperImpl.end(XAResourceWrapperImpl.java:118)
      at org.jboss.jca.core.tx.jbossts.XAResourceWrapperStatImpl.end(XAResourceWrapperStatImpl.java:96)
      at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.delistResource(TransactionImple.java:914)
      at org.jboss.jca.core.connectionmanager.listener.TxConnectionListener.haltCatchFire(TxConnectionListener.java:768)
      at org.jboss.jca.core.connectionmanager.listener.AbstractConnectionListener.connectionErrorOccurred(AbstractConnectionListener.java:468)
      at org.jboss.jca.adapters.jdbc.BaseWrapperManagedConnection.broadcastConnectionError(BaseWrapperManagedConnection.java:673)
      at org.jboss.jca.adapters.jdbc.xa.XAManagedConnection.end(XAManagedConnection.java:301)
      at org.jboss.jca.core.tx.jbossts.XAResourceWrapperImpl.end(XAResourceWrapperImpl.java:118)
      at org.jboss.jca.core.tx.jbossts.XAResourceWrapperStatImpl.end(XAResourceWrapperStatImpl.java:96)
      at com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.delistResource(TransactionImple.java:914)
      at org.jboss.jca.core.connectionmanager.listener.TxConnectionListener.haltCatchFire(TxConnectionListener.java:768)
      at org.jboss.jca.core.connectionmanager.listener.AbstractConnectionListener.connectionErrorOccurred(AbstractConnectionListener.java:468)
      at org.jboss.jca.adapters.jdbc.BaseWrapperManagedConnection.broadcastConnectionError(BaseWrapperManagedConnection.java:673)

      As a result, the reentrant lock/unlock system gets out of hand the lock in the connection is not entirely unlocked.

      Attachments

        Issue Links

          Activity

            People

              flaviarnn Flavia Rainone
              flaviarnn Flavia Rainone
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: