Hi,
I am getting the below deadlock exception occasionally and so far only
on relationship operations. The code base is trunk. The system this is
running on is Linux and the Java app integrates Neo with Spring
transaction manager. Multiple threads are actively updating the Neo
storage in different ways. The only way for us to currently mitigate
this problem is to retry the entire transaction call around this, but
this only succeeds to 99%. I am using the LuceneIndexer to store a
simple Long ID value representing a node in case that helps based on the
exception message.
I am currently thinking how to best extract this problem into a little
unit test but based on how often this happens, I haven't been able to
reproduce it in a self-contained test suite.
Any suggestions on how to get this under control?
Thanks for any help,
-Andreas
org.neo4j.impl.transaction.DeadlockDetectedException:
Transaction[Status=STATUS_ACTIVE,ResourceList=Xid[GlobalId[NEOKERNL|1257104121765|6930039],
BranchId[
49 54 50 51 55 51 ]]
xaresource[org.neo4j.util.index.lucenexaconnection$lucenexaresou...@cd66f1]
Status[ENLISTED],Xid[GlobalId[NEOKERNL|1257104121765|6930
039], BranchId[ 52 49 52 49 52 49 ]]
xaresource[org.neo4j.impl.nioneo.xa.neostorexaconnection$neostorexaresou...@12161db]
Status[ENLISTED] can't wait on re
source RWLock[NodeImpl#429819] since =>
Transaction[Status=STATUS_ACTIVE,ResourceList=Xid[GlobalId[NEOKERNL|1257104121765|6930039],
BranchId[ 49 54 50 51 5
5 51 ]]
xaresource[org.neo4j.util.index.lucenexaconnection$lucenexaresou...@cd66f1]
Status[ENLISTED],Xid[GlobalId[NEOKERNL|1257104121765|6930039], BranchId
[ 52 49 52 49 52 49 ]]
xaresource[org.neo4j.impl.nioneo.xa.neostorexaconnection$neostorexaresou...@12161db]
Status[ENLISTED] <- RWLock[NodeImpl#269645] <-
Transaction[Status=STATUS_ACTIVE,ResourceList=Xid[GlobalId[NEOKERNL|1257104121765|6930039],
BranchId[ 49 54 50 51 55 51 ]] XAResource[org.neo4j.util.index.
lucenexaconnection$lucenexaresou...@cd66f1]
Status[ENLISTED],Xid[GlobalId[NEOKERNL|1257104121765|6930039], BranchId[
52 49 52 49 52 49 ]] XAResource[org.ne
o4j.impl.nioneo.xa.neostorexaconnection$neostorexaresou...@12161db]
Status[ENLISTED] <- RWLock[NodeImpl#429819]
at
org.neo4j.impl.transaction.RagManager.checkWaitOnRecursive(RagManager.java:208)
at
org.neo4j.impl.transaction.RagManager.checkWaitOnRecursive(RagManager.java:236)
at
org.neo4j.impl.transaction.RagManager.checkWaitOn(RagManager.java:176)
at
org.neo4j.impl.transaction.RWLock.acquireWriteLock(RWLock.java:298)
at
org.neo4j.impl.transaction.LockManager.getWriteLock(LockManager.java:122)
at org.neo4j.impl.core.NodeManager.acquireLock(NodeManager.java:682)
at
org.neo4j.impl.core.NodeManager.createRelationship(NodeManager.java:303)
at
org.neo4j.impl.core.NodeImpl.createRelationshipTo(NodeImpl.java:357)
at
org.neo4j.impl.core.NodeProxy.createRelationshipTo(NodeProxy.java:177)
org.neo4j.impl.transaction.DeadlockDetectedException:
Transaction[Status=STATUS_ACTIVE,ResourceList=Xid[GlobalId[NEOKERNL|1256778708568|13441],
BranchId[ 49
54 50 51 55 51 ]]
xaresource[org.neo4j.util.index.lucenexaconnection$lucenexaresou...@467cb704]
Status[ENLISTED],Xid[GlobalId[NEOKERNL|1256778708568|13441],
BranchId[ 52 49 52 49 52 49 ]]
xaresource[org.neo4j.impl.nioneo.xa.neostorexaconnection$neostorexaresou...@25d38bc3]
Status[ENLISTED] can't wait on resource
RWLock[RelationshipImpl #22 of type CUSTOM_TYPE between Node[1] and Node[14]]
since => Transaction[Status=STATUS_ACTIVE,ResourceList=Xid[GlobalId[NEOKERNL|125
6778708568|13441], BranchId[ 49 54 50 51 55 51 ]]
xaresource[org.neo4j.util.index.lucenexaconnection$lucenexaresou...@467cb704]
Status[ENLISTED],Xid[GlobalId
[NEOKERNL|1256778708568|13441], BranchId[ 52 49 52 49 52 49 ]]
xaresource[org.neo4j.impl.nioneo.xa.neostorexaconnection$neostorexaresou...@25d38bc3]
Status[E
NLISTED] <- RWLock[NodeImpl#1] <-
Transaction[Status=STATUS_ACTIVE,ResourceList=Xid[GlobalId[NEOKERNL|1256778708568|13441],
BranchId[ 49 54 50 51 55 51 ]] XA
resource[org.neo4j.util.index.lucenexaconnection$lucenexaresou...@467cb704]
Status[ENLISTED],Xid[GlobalId[NEOKERNL|1256778708568|13441], BranchId[ 52 49 52
4
9 52 49 ]]
xaresource[org.neo4j.impl.nioneo.xa.neostorexaconnection$neostorexaresou...@25d38bc3]
Status[ENLISTED] <- RWLock[RelationshipImpl #22 of type
CUSTOM_TYPE between Node[1] and Node[14]]
at
org.neo4j.impl.transaction.RagManager.checkWaitOnRecursive(RagManager.java:208)
at
org.neo4j.impl.transaction.RagManager.checkWaitOnRecursive(RagManager.java:236)
at
org.neo4j.impl.transaction.RagManager.checkWaitOn(RagManager.java:176)
at org.neo4j.impl.transaction.RWLock.acquireWriteLock(RWLock.java:298)
at
org.neo4j.impl.transaction.LockManager.getWriteLock(LockManager.java:122)
at
org.neo4j.impl.nioneo.xa.NeoTransaction.getWriteLock(NeoTransaction.java:664)
at
org.neo4j.impl.nioneo.xa.NeoTransaction.disconnectRelationship(NeoTransaction.java:557)
at
org.neo4j.impl.nioneo.xa.NeoTransaction.relDelete(NeoTransaction.java:545)
at
org.neo4j.impl.nioneo.xa.NeoStoreXaConnection$RelationshipEventConsumerImpl.deleteRelationship(NeoStoreXaConnection.java:257)
at
org.neo4j.impl.nioneo.xa.NioNeoDbPersistenceSource$NioNeoDbResourceConnection.relDelete(NioNeoDbPersistenceSource.java:161)
at
org.neo4j.impl.persistence.PersistenceManager.relDelete(PersistenceManager.java:135)
at
org.neo4j.impl.core.NodeManager.deleteRelationship(NodeManager.java:832)
at
org.neo4j.impl.core.RelationshipImpl.delete(RelationshipImpl.java:168)
at
org.neo4j.impl.core.RelationshipProxy.delete(RelationshipProxy.java:44)
_______________________________________________
Neo mailing list
[email protected]
https://lists.neo4j.org/mailman/listinfo/user