Does anybody have experience with hsqldb?  I'm getting a java thread deadlock 
within about 10 seconds of running a job.  I want to know if anyone has seen 
this before, or has used hsqldb in a massively multithreaded environment.

Found one Java-level deadlock:
=============================
"Thread-745":
  waiting for ownable synchronizer 0x293b0b70, (a java.util.concurrent.locks.Ree
ntrantReadWriteLock$NonfairSync),
  which is held by "Thread-725"
"Thread-725":
  waiting to lock monitor 0x04614284 (object 0x2927b550, a org.hsqldb.persist.Lo
bManager),
  which is held by "Thread-732"
"Thread-732":
  waiting for ownable synchronizer 0x293b0b70, (a java.util.concurrent.locks.Ree
ntrantReadWriteLock$NonfairSync),
  which is held by "Thread-725"

Java stack information for the threads listed above:
===================================================
"Thread-745":
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x293b0b70> (a java.util.concurrent.locks.Reentr
antReadWriteLock$NonfairSync)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInt
errupt(AbstractQueuedSynchronizer.java:811)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(A
bstractQueuedSynchronizer.java:842)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(Abstrac
tQueuedSynchronizer.java:1178)
        at java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock(Reen
trantReadWriteLock.java:807)
        at org.hsqldb.TransactionManager2PL.beginAction(Unknown Source)
        at org.hsqldb.Session.executeCompiledStatement(Unknown Source)
        at org.hsqldb.Session.executeDirectStatement(Unknown Source)
        at org.hsqldb.Session.execute(Unknown Source)
        - locked <0x23dc38d0> (a org.hsqldb.Session)
        at org.hsqldb.jdbc.JDBCStatement.fetchResult(Unknown Source)
        at org.hsqldb.jdbc.JDBCStatement.execute(Unknown Source)
        - locked <0x23dc6fc0> (a org.hsqldb.jdbc.JDBCStatement)
        at org.apache.manifoldcf.core.database.Database.execute(Database.java:52
6)
        at org.apache.manifoldcf.core.database.Database$ExecuteQueryThread.run(D
atabase.java:381)
"Thread-725":
        at org.hsqldb.persist.LobManager.adjustUsageCount(Unknown Source)
        - waiting to lock <0x2927b550> (a org.hsqldb.persist.LobManager)
        at org.hsqldb.SessionData.adjustLobUsageCount(Unknown Source)
        at org.hsqldb.TransactionManagerCommon.persistCommit(Unknown Source)
        at org.hsqldb.TransactionManager2PL.commitTransaction(Unknown Source)
        at org.hsqldb.Session.commit(Unknown Source)
        - locked <0x23ca46f0> (a org.hsqldb.Session)
        at org.hsqldb.Session.executeCompiledStatement(Unknown Source)
        at org.hsqldb.Session.execute(Unknown Source)
        - locked <0x23ca46f0> (a org.hsqldb.Session)
        at org.hsqldb.jdbc.JDBCPreparedStatement.fetchResult(Unknown Source)
        at org.hsqldb.jdbc.JDBCPreparedStatement.executeUpdate(Unknown Source)
        - locked <0x23ca8038> (a org.hsqldb.jdbc.JDBCPreparedStatement)
        at org.apache.manifoldcf.core.database.Database.execute(Database.java:56
6)
        at org.apache.manifoldcf.core.database.Database$ExecuteQueryThread.run(D
atabase.java:381)
"Thread-732":
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x293b0b70> (a java.util.concurrent.locks.Reentr
antReadWriteLock$NonfairSync)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInt
errupt(AbstractQueuedSynchronizer.java:811)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(A
bstractQueuedSynchronizer.java:842)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(Abstrac
tQueuedSynchronizer.java:1178)
        at java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock(Reen
trantReadWriteLock.java:807)
        at org.hsqldb.TransactionManager2PL.beginAction(Unknown Source)
        at org.hsqldb.Session.executeCompiledStatement(Unknown Source)
        at org.hsqldb.persist.LobManager.createClob(Unknown Source)
        - locked <0x2927b550> (a org.hsqldb.persist.LobManager)
        at org.hsqldb.Session.createClob(Unknown Source)
        at org.hsqldb.jdbc.JDBCPreparedStatement.performPreExecute(Unknown Sourc
e)
        at org.hsqldb.jdbc.JDBCPreparedStatement.fetchResult(Unknown Source)
        at org.hsqldb.jdbc.JDBCPreparedStatement.executeUpdate(Unknown Source)
        - locked <0x23d0d570> (a org.hsqldb.jdbc.JDBCPreparedStatement)
        at org.apache.manifoldcf.core.database.Database.execute(Database.java:56
6)
        at org.apache.manifoldcf.core.database.Database$ExecuteQueryThread.run(D
atabase.java:381)

Found 1 deadlock.

Karl

Reply via email to