Deadlock with openjpa.Multithreaded=true
----------------------------------------
Key: OPENJPA-1716
URL: https://issues.apache.org/jira/browse/OPENJPA-1716
Project: OpenJPA
Issue Type: Bug
Affects Versions: 2.0.0, 2.0.0-beta3, 2.0.0-beta2, 2.0.0-beta, 2.0.0-M3,
2.0.0-M2, 2.0.0-M1
Reporter: Stefan Wokusch
There is a Deadlock by using Multithreaded=true and work with some Threads on
the same Entitymanager.
After many hours of debugging, i found a solution for that Deadlock: The
Problem could be solved by adding another lock into the lock Method of the
StateManagerImpl:
StateManagerImpl ~line3308
/**
* Lock the state manager if the multithreaded option is set.
*/
protected void lock() {
if (_instanceLock != null){
_broker.lock();//<- This is the new Part to fix the Deadlock
_instanceLock.lock();
}
}
Worked for me without Problems for a long time.
Some other Configurations:
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0">
<persistence-unit name="default" transaction-type="RESOURCE_LOCAL">
<mapping-file>orm.xml</mapping-file>
<class>...</class>
<class>...</class>
<properties>
<property name="openjpa.OrphanedKeyAction"
value="log(Channel=Orphans, Level=TRACE)" />
<property name="openjpa.ConnectionFactoryProperties"
value="PrettyPrint=true, PrettyPrintLineLength=80" />
<property name="openjpa.Multithreaded" value="true" />
<property name="openjpa.InverseManager" value="true" />
<property name="openjpa.LockManager" value="none" />
<property name="openjpa.WriteLockLevel" value="none" />
<property name="openjpa.Compatibility" value="
QuotedNumbersInQueries=true,
CopyOnDetach=true,
cascadeWithDetach=true,
superclassDiscriminatorStrategyByDefault=false
" />
<property name="openjpa.DetachState"
value="fetch-groups" />
<property name="openjpa.jdbc.SynchronizeMappings"
value="buildSchema" />
<!-- Default DataSource -->
<property name="openjpa.ConnectionURL"
value="jdbc:h2:db/test" />
<property name="openjpa.ConnectionDriverName"
value="org.h2.Driver" />
</properties>
</persistence-unit>
</persistence>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.