[ 
https://issues.apache.org/jira/browse/CONNECTORS-114?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12920236#action_12920236
 ] 

Karl Wright commented on CONNECTORS-114:
----------------------------------------

For what it is worth, here is the deadlock I am seeing:

Found one Java-level deadlock:
=============================
"Thread-479":
  waiting for ownable synchronizer 0x297acc98, (a java.util.concurrent.locks.Ree
ntrantReadWriteLock$NonfairSync),
  which is held by "Thread-460"
"Thread-460":
  waiting to lock monitor 0x03c9a634 (object 0x29655170, a org.hsqldb.persist.Lo
bManager),
  which is held by "Thread-466"
"Thread-466":
  waiting for ownable synchronizer 0x297acc98, (a java.util.concurrent.locks.Ree
ntrantReadWriteLock$NonfairSync),
  which is held by "Thread-460"

Java stack information for the threads listed above:
===================================================
"Thread-479":
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x297acc98> (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:747)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(A
bstractQueuedSynchronizer.java:778)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(Abstrac
tQueuedSynchronizer.java:1114)
        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 <0x244900d0> (a org.hsqldb.Session)
        at org.hsqldb.jdbc.JDBCStatement.fetchResult(Unknown Source)
        at org.hsqldb.jdbc.JDBCStatement.execute(Unknown Source)
        - locked <0x24490328> (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-460":
        at org.hsqldb.persist.LobManager.adjustUsageCount(Unknown Source)
        - waiting to lock <0x29655170> (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 <0x299f8680> (a org.hsqldb.Session)
        at org.hsqldb.Session.executeCompiledStatement(Unknown Source)
        at org.hsqldb.Session.execute(Unknown Source)
        - locked <0x299f8680> (a org.hsqldb.Session)
        at org.hsqldb.jdbc.JDBCPreparedStatement.fetchResult(Unknown Source)
        at org.hsqldb.jdbc.JDBCPreparedStatement.executeUpdate(Unknown Source)
        - locked <0x29a65e88> (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-466":
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x297acc98> (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:747)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(A
bstractQueuedSynchronizer.java:778)
        at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(Abstrac
tQueuedSynchronizer.java:1114)
        at java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.lock(Reen
trantReadWriteLock.java:807)
        at org.hsqldb.TransactionManager2PL.commitTransaction(Unknown Source)
        at org.hsqldb.Session.commit(Unknown Source)
        - locked <0x296cf1f0> (a org.hsqldb.Session)
        at org.hsqldb.Session.executeCompiledStatement(Unknown Source)
        at org.hsqldb.persist.LobManager.createBlockAddresses(Unknown Source)
        at org.hsqldb.persist.LobManager.setBytesIS(Unknown Source)
        at org.hsqldb.persist.LobManager.setCharsForNewClob(Unknown Source)
        - locked <0x29655170> (a org.hsqldb.persist.LobManager)
        at org.hsqldb.SessionData.allocateLobForResult(Unknown Source)
        at org.hsqldb.Session.allocateResultLob(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 <0x29a65798> (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.


> Derby seems too unstable in multithreaded situations to be a good database 
> for ManifoldCF, so try to add support for HSQLDB
> ---------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CONNECTORS-114
>                 URL: https://issues.apache.org/jira/browse/CONNECTORS-114
>             Project: ManifoldCF
>          Issue Type: Bug
>          Components: Framework core
>            Reporter: Karl Wright
>
> Derby seems to have multiple problems:
> (1) It has internal deadlocks, which even if caught cause poor performance 
> due to stalling (CONNECTORS-111);
> (2) It has no support for certain SQL constructs (CONNECTORS-109 and 
> CONNECTORS-110);
> (3) It locks up entirely for some people (CONNECTORS-100).
> HSQLDB has been recommended as another potential embedded database that might 
> work better.

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

Reply via email to