Hi Chris, i) I do create more than 1 relationship per transaction. ii) As you suggest, the nodes b, c are involved in creating other relationships but not between each other.
This is a real bummer. So in my case, creating locks on the nodes when creating relationships and the locks only being released at the end of the transaction is the source of the problem. This seems quite heavy to me and I am guessing that this has the potential for effecting the unmanaged extensions and even the REST API based transactions pretty badly in a multiprocessing environment. Is it worth raising on the github? Thanks a lot for your help! On Thursday, 3 July 2014 22:14:02 UTC+1, Chris Vest wrote: > > Do you create more than one relationship per transaction? Both the start > and the end node have to be lock to create a relationship between them, and > locks are not released until the transaction commits. It could also be that > you have some other transaction that happens to work with the start and end > nodes. > > > -- > Chris Vest > System Engineer, Neo Technology > [ skype: mr.chrisvest, twitter: chvest ] > > > On 03 Jul 2014, at 18:13, ducky <[email protected] <javascript:>> > wrote: > > Hi, > I am using Neo4j 2.1.2 and I have an unmanaged extension in which I am > trying to create the following relationships in separate concurrent > transactions: > > 1) (b)-[:REL]->(a) > 2) (c)-[:REL]->(a) > > I am never deleting any relationship and I am getting this error: > > org.neo4j.kernel.DeadlockDetectedException: LockClient[118] can't wait on > resource RWLock[NODE(429288), hash=1375407138] since => LockClient[118] > <-[:HELD_BY]- RWLock[NODE(429304), hash=1035143818] <-[:WAITING_FOR]- > LockClient[119] <-[:HELD_BY]- RWLock[NODE(429288), hash=1375407138] > at > org.neo4j.kernel.impl.locking.community.RagManager.checkWaitOnRecursive(RagManager.java:211) > at > org.neo4j.kernel.impl.locking.community.RagManager.checkWaitOnRecursive(RagManager.java:238) > at > org.neo4j.kernel.impl.locking.community.RagManager.checkWaitOn(RagManager.java:178) > at > org.neo4j.kernel.impl.locking.community.RWLock.deadlockGuardedWait(RWLock.java:547) > at > org.neo4j.kernel.impl.locking.community.RWLock.acquireWriteLock(RWLock.java:319) > at > org.neo4j.kernel.impl.locking.community.LockManagerImpl.getWriteLock(LockManagerImpl.java:68) > at > org.neo4j.kernel.impl.locking.community.CommunityLockClient.acquireExclusive(CommunityLockClient.java:73) > at > org.neo4j.kernel.impl.api.LockingStatementOperations.relationshipCreate(LockingStatementOperations.java:215) > at > org.neo4j.kernel.impl.api.OperationsFacade.relationshipCreate(OperationsFacade.java:515) > at > org.neo4j.kernel.impl.core.NodeProxy.createRelationshipTo(NodeProxy.java:455) > .......(snipped)....... > > I've read the section called Deadlocks > <http://docs.neo4j.org/chunked/milestone/transactions-deadlocks.html> in > the documentation but I don't think what I am doing should lead to the > deadlock. > > Any help would be appreciated. > > Thanks! > > -- > You received this message because you are subscribed to the Google Groups > "Neo4j" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected] <javascript:>. > For more options, visit https://groups.google.com/d/optout. > > > -- You received this message because you are subscribed to the Google Groups "Neo4j" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
