You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Ronald Tschalaer (JIRA)" <ji...@apache.org> on 2009/03/22 22:55:50 UTC

[jira] Created: (DERBY-4109) Java-level deadlock in XATransactionState

Java-level deadlock in XATransactionState
-----------------------------------------

                 Key: DERBY-4109
                 URL: https://issues.apache.org/jira/browse/DERBY-4109
             Project: Derby
          Issue Type: Bug
          Components: JDBC
    Affects Versions: 10.4.2.0
         Environment: Linux, Sun jdk 1.6.0_12 (64-bit)
            Reporter: Ronald Tschalaer


Due to some other issue in derby (a hang in ActiveLock.waitForGrant
while executing a prepared-statement), the transaction times out at
which point Derby hits the following java-level deadlock (from the
jvm thread-dump):


Found one Java-level deadlock:
=============================
"Thread-6":
  waiting to lock monitor 0x00002aaaf43d2ec8 (object 0x00002aaadcce9070, a org.apache.derby.jdbc.XATransactionState),
  which is held by "Timer-0"
"Timer-0":
  waiting to lock monitor 0x00002aaaf43d75a8 (object 0x00002aaadcce2e60, a org.apache.derby.impl.jdbc.EmbedConnection40),
  which is held by "Thread-6"

Java stack information for the threads listed above:
===================================================
"Thread-6":
        at org.apache.derby.jdbc.XATransactionState.cleanupOnError(Unknown Source)
        - waiting to lock <0x00002aaadcce9070> (a org.apache.derby.jdbc.XATransactionState)
        at org.apache.derby.iapi.services.context.ContextManager.cleanupOnError(Unknown Source)
        at org.apache.derby.impl.jdbc.TransactionResourceImpl.cleanupOnError(Unknown Source)
        at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source)
        at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)
        at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source)
        at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown Source)
        - locked <0x00002aaadcce2e60> (a org.apache.derby.impl.jdbc.EmbedConnection40)
        at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
        - locked <0x00002aaadcce2e60> (a org.apache.derby.impl.jdbc.EmbedConnection40)
        at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
        at org.apache.derby.iapi.jdbc.BrokeredStatement.execute(Unknown Source)
        at org.fedoracommons.akubra.txn.derby.TransactionalConnection.beforeCompletion(TransactionalConnection.java:293)
        at bitronix.tm.BitronixTransaction.fireBeforeCompletionEvent(BitronixTransaction.java:366)
        at bitronix.tm.BitronixTransaction.commit(BitronixTransaction.java:142)
        at bitronix.tm.BitronixTransactionManager.commit(BitronixTransactionManager.java:96)
        at org.fedoracommons.akubra.txn.derby.TestTransactionalStore.doInTxn(TestTransactionalStore.java:759)
        at org.fedoracommons.akubra.txn.derby.TestTransactionalStore.access$900(TestTransactionalStore.java:60)
        at org.fedoracommons.akubra.txn.derby.TestTransactionalStore$4.erun(TestTransactionalStore.java:586)
        at org.fedoracommons.akubra.txn.derby.TestTransactionalStore$ERunnable.run(TestTransactionalStore.java:803)
        at java.lang.Thread.run(Thread.java:619)
"Timer-0":
        at org.apache.derby.impl.jdbc.EmbedConnection.xa_rollback(Unknown Source)
        - waiting to lock <0x00002aaadcce2e60> (a org.apache.derby.impl.jdbc.EmbedConnection40)
        at org.apache.derby.jdbc.XATransactionState.cancel(Unknown Source)
        - locked <0x00002aaadcce9070> (a org.apache.derby.jdbc.XATransactionState)
        at org.apache.derby.jdbc.XATransactionState.access$000(Unknown Source)
        at org.apache.derby.jdbc.XATransactionState$CancelXATransactionTask.run(Unknown Source)
        at java.util.TimerThread.mainLoop(Timer.java:512)
        at java.util.TimerThread.run(Timer.java:462)

Found 1 deadlock.



-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (DERBY-4109) Java-level deadlock in XATransactionState

Posted by "Kathey Marsden (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/DERBY-4109?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12706652#action_12706652 ] 

Kathey Marsden commented on DERBY-4109:
---------------------------------------

Do you have a reproduction for this issue?


> Java-level deadlock in XATransactionState
> -----------------------------------------
>
>                 Key: DERBY-4109
>                 URL: https://issues.apache.org/jira/browse/DERBY-4109
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC
>    Affects Versions: 10.4.2.0
>         Environment: Linux, Sun jdk 1.6.0_12 (64-bit)
>            Reporter: Ronald Tschalaer
>            Priority: Critical
>
> Due to some other issue in derby (a hang in ActiveLock.waitForGrant
> while executing a prepared-statement), the transaction times out at
> which point Derby hits the following java-level deadlock (from the
> jvm thread-dump):
> Found one Java-level deadlock:
> =============================
> "Thread-6":
>   waiting to lock monitor 0x00002aaaf43d2ec8 (object 0x00002aaadcce9070, a org.apache.derby.jdbc.XATransactionState),
>   which is held by "Timer-0"
> "Timer-0":
>   waiting to lock monitor 0x00002aaaf43d75a8 (object 0x00002aaadcce2e60, a org.apache.derby.impl.jdbc.EmbedConnection40),
>   which is held by "Thread-6"
> Java stack information for the threads listed above:
> ===================================================
> "Thread-6":
>         at org.apache.derby.jdbc.XATransactionState.cleanupOnError(Unknown Source)
>         - waiting to lock <0x00002aaadcce9070> (a org.apache.derby.jdbc.XATransactionState)
>         at org.apache.derby.iapi.services.context.ContextManager.cleanupOnError(Unknown Source)
>         at org.apache.derby.impl.jdbc.TransactionResourceImpl.cleanupOnError(Unknown Source)
>         at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source)
>         at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)
>         at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source)
>         at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown Source)
>         - locked <0x00002aaadcce2e60> (a org.apache.derby.impl.jdbc.EmbedConnection40)
>         at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
>         - locked <0x00002aaadcce2e60> (a org.apache.derby.impl.jdbc.EmbedConnection40)
>         at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
>         at org.apache.derby.iapi.jdbc.BrokeredStatement.execute(Unknown Source)
>         at org.fedoracommons.akubra.txn.derby.TransactionalConnection.beforeCompletion(TransactionalConnection.java:293)
>         at bitronix.tm.BitronixTransaction.fireBeforeCompletionEvent(BitronixTransaction.java:366)
>         at bitronix.tm.BitronixTransaction.commit(BitronixTransaction.java:142)
>         at bitronix.tm.BitronixTransactionManager.commit(BitronixTransactionManager.java:96)
>         at org.fedoracommons.akubra.txn.derby.TestTransactionalStore.doInTxn(TestTransactionalStore.java:759)
>         at org.fedoracommons.akubra.txn.derby.TestTransactionalStore.access$900(TestTransactionalStore.java:60)
>         at org.fedoracommons.akubra.txn.derby.TestTransactionalStore$4.erun(TestTransactionalStore.java:586)
>         at org.fedoracommons.akubra.txn.derby.TestTransactionalStore$ERunnable.run(TestTransactionalStore.java:803)
>         at java.lang.Thread.run(Thread.java:619)
> "Timer-0":
>         at org.apache.derby.impl.jdbc.EmbedConnection.xa_rollback(Unknown Source)
>         - waiting to lock <0x00002aaadcce2e60> (a org.apache.derby.impl.jdbc.EmbedConnection40)
>         at org.apache.derby.jdbc.XATransactionState.cancel(Unknown Source)
>         - locked <0x00002aaadcce9070> (a org.apache.derby.jdbc.XATransactionState)
>         at org.apache.derby.jdbc.XATransactionState.access$000(Unknown Source)
>         at org.apache.derby.jdbc.XATransactionState$CancelXATransactionTask.run(Unknown Source)
>         at java.util.TimerThread.mainLoop(Timer.java:512)
>         at java.util.TimerThread.run(Timer.java:462)
> Found 1 deadlock.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (DERBY-4109) Java-level deadlock in XATransactionState

Posted by "Rick Hillegas (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DERBY-4109?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Rick Hillegas updated DERBY-4109:
---------------------------------

               Urgency: Normal
    Bug behavior facts: [Crash, Seen in production]  (was: [Crash])

Triaged July 2, 2009: Noted that this is seen in production.

> Java-level deadlock in XATransactionState
> -----------------------------------------
>
>                 Key: DERBY-4109
>                 URL: https://issues.apache.org/jira/browse/DERBY-4109
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC
>    Affects Versions: 10.4.2.0
>         Environment: Linux, Sun jdk 1.6.0_12 (64-bit)
>            Reporter: Ronald Tschalaer
>            Priority: Critical
>
> Due to some other issue in derby (a hang in ActiveLock.waitForGrant
> while executing a prepared-statement), the transaction times out at
> which point Derby hits the following java-level deadlock (from the
> jvm thread-dump):
> Found one Java-level deadlock:
> =============================
> "Thread-6":
>   waiting to lock monitor 0x00002aaaf43d2ec8 (object 0x00002aaadcce9070, a org.apache.derby.jdbc.XATransactionState),
>   which is held by "Timer-0"
> "Timer-0":
>   waiting to lock monitor 0x00002aaaf43d75a8 (object 0x00002aaadcce2e60, a org.apache.derby.impl.jdbc.EmbedConnection40),
>   which is held by "Thread-6"
> Java stack information for the threads listed above:
> ===================================================
> "Thread-6":
>         at org.apache.derby.jdbc.XATransactionState.cleanupOnError(Unknown Source)
>         - waiting to lock <0x00002aaadcce9070> (a org.apache.derby.jdbc.XATransactionState)
>         at org.apache.derby.iapi.services.context.ContextManager.cleanupOnError(Unknown Source)
>         at org.apache.derby.impl.jdbc.TransactionResourceImpl.cleanupOnError(Unknown Source)
>         at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source)
>         at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)
>         at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source)
>         at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown Source)
>         - locked <0x00002aaadcce2e60> (a org.apache.derby.impl.jdbc.EmbedConnection40)
>         at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
>         - locked <0x00002aaadcce2e60> (a org.apache.derby.impl.jdbc.EmbedConnection40)
>         at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
>         at org.apache.derby.iapi.jdbc.BrokeredStatement.execute(Unknown Source)
>         at org.fedoracommons.akubra.txn.derby.TransactionalConnection.beforeCompletion(TransactionalConnection.java:293)
>         at bitronix.tm.BitronixTransaction.fireBeforeCompletionEvent(BitronixTransaction.java:366)
>         at bitronix.tm.BitronixTransaction.commit(BitronixTransaction.java:142)
>         at bitronix.tm.BitronixTransactionManager.commit(BitronixTransactionManager.java:96)
>         at org.fedoracommons.akubra.txn.derby.TestTransactionalStore.doInTxn(TestTransactionalStore.java:759)
>         at org.fedoracommons.akubra.txn.derby.TestTransactionalStore.access$900(TestTransactionalStore.java:60)
>         at org.fedoracommons.akubra.txn.derby.TestTransactionalStore$4.erun(TestTransactionalStore.java:586)
>         at org.fedoracommons.akubra.txn.derby.TestTransactionalStore$ERunnable.run(TestTransactionalStore.java:803)
>         at java.lang.Thread.run(Thread.java:619)
> "Timer-0":
>         at org.apache.derby.impl.jdbc.EmbedConnection.xa_rollback(Unknown Source)
>         - waiting to lock <0x00002aaadcce2e60> (a org.apache.derby.impl.jdbc.EmbedConnection40)
>         at org.apache.derby.jdbc.XATransactionState.cancel(Unknown Source)
>         - locked <0x00002aaadcce9070> (a org.apache.derby.jdbc.XATransactionState)
>         at org.apache.derby.jdbc.XATransactionState.access$000(Unknown Source)
>         at org.apache.derby.jdbc.XATransactionState$CancelXATransactionTask.run(Unknown Source)
>         at java.util.TimerThread.mainLoop(Timer.java:512)
>         at java.util.TimerThread.run(Timer.java:462)
> Found 1 deadlock.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (DERBY-4109) Java-level deadlock in XATransactionState

Posted by "Ronald Tschalaer (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DERBY-4109?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Ronald Tschalaer updated DERBY-4109:
------------------------------------

    Priority: Critical  (was: Major)

Bumping the severity because I've been getting this quite often, and a java-level deadlock
really prevents this from being used in a production environment.

> Java-level deadlock in XATransactionState
> -----------------------------------------
>
>                 Key: DERBY-4109
>                 URL: https://issues.apache.org/jira/browse/DERBY-4109
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC
>    Affects Versions: 10.4.2.0
>         Environment: Linux, Sun jdk 1.6.0_12 (64-bit)
>            Reporter: Ronald Tschalaer
>            Priority: Critical
>
> Due to some other issue in derby (a hang in ActiveLock.waitForGrant
> while executing a prepared-statement), the transaction times out at
> which point Derby hits the following java-level deadlock (from the
> jvm thread-dump):
> Found one Java-level deadlock:
> =============================
> "Thread-6":
>   waiting to lock monitor 0x00002aaaf43d2ec8 (object 0x00002aaadcce9070, a org.apache.derby.jdbc.XATransactionState),
>   which is held by "Timer-0"
> "Timer-0":
>   waiting to lock monitor 0x00002aaaf43d75a8 (object 0x00002aaadcce2e60, a org.apache.derby.impl.jdbc.EmbedConnection40),
>   which is held by "Thread-6"
> Java stack information for the threads listed above:
> ===================================================
> "Thread-6":
>         at org.apache.derby.jdbc.XATransactionState.cleanupOnError(Unknown Source)
>         - waiting to lock <0x00002aaadcce9070> (a org.apache.derby.jdbc.XATransactionState)
>         at org.apache.derby.iapi.services.context.ContextManager.cleanupOnError(Unknown Source)
>         at org.apache.derby.impl.jdbc.TransactionResourceImpl.cleanupOnError(Unknown Source)
>         at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source)
>         at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source)
>         at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source)
>         at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown Source)
>         - locked <0x00002aaadcce2e60> (a org.apache.derby.impl.jdbc.EmbedConnection40)
>         at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
>         - locked <0x00002aaadcce2e60> (a org.apache.derby.impl.jdbc.EmbedConnection40)
>         at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source)
>         at org.apache.derby.iapi.jdbc.BrokeredStatement.execute(Unknown Source)
>         at org.fedoracommons.akubra.txn.derby.TransactionalConnection.beforeCompletion(TransactionalConnection.java:293)
>         at bitronix.tm.BitronixTransaction.fireBeforeCompletionEvent(BitronixTransaction.java:366)
>         at bitronix.tm.BitronixTransaction.commit(BitronixTransaction.java:142)
>         at bitronix.tm.BitronixTransactionManager.commit(BitronixTransactionManager.java:96)
>         at org.fedoracommons.akubra.txn.derby.TestTransactionalStore.doInTxn(TestTransactionalStore.java:759)
>         at org.fedoracommons.akubra.txn.derby.TestTransactionalStore.access$900(TestTransactionalStore.java:60)
>         at org.fedoracommons.akubra.txn.derby.TestTransactionalStore$4.erun(TestTransactionalStore.java:586)
>         at org.fedoracommons.akubra.txn.derby.TestTransactionalStore$ERunnable.run(TestTransactionalStore.java:803)
>         at java.lang.Thread.run(Thread.java:619)
> "Timer-0":
>         at org.apache.derby.impl.jdbc.EmbedConnection.xa_rollback(Unknown Source)
>         - waiting to lock <0x00002aaadcce2e60> (a org.apache.derby.impl.jdbc.EmbedConnection40)
>         at org.apache.derby.jdbc.XATransactionState.cancel(Unknown Source)
>         - locked <0x00002aaadcce9070> (a org.apache.derby.jdbc.XATransactionState)
>         at org.apache.derby.jdbc.XATransactionState.access$000(Unknown Source)
>         at org.apache.derby.jdbc.XATransactionState$CancelXATransactionTask.run(Unknown Source)
>         at java.util.TimerThread.mainLoop(Timer.java:512)
>         at java.util.TimerThread.run(Timer.java:462)
> Found 1 deadlock.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.