Rick,

Yes, the patch I provided for you has been included in the milestone
releases since M04.

-Johan

On Fri, Dec 17, 2010 at 5:53 PM,  <[email protected]> wrote:
>   Hi, Johan.
>
>   Is this related to the patch you provided me for a similar issue?  I
>   had thought it made it into the milestone release(s).
>
>   Thanks,
>
>   Rick
>
>   -------- Original Message --------
>   Subject: Re: [Neo4j] InvalidRecordException exception
>   From: Johan Svensson <[1][email protected]>
>   Date: Wed, December 15, 2010 8:32 am
>   To: Neo4j user discussions <[2][email protected]>
>   This will still happen in the 1.2.M05 release. I just wanted to make
>   sure I linked the stacktrace's line numbers to the right part of the
>   code since that exception being thrown at a different place in the
>   delete method could mean there are other problems.
>   -Johan
>   On Wed, Dec 15, 2010 at 1:42 PM, George Ciubotaru
>   <[3][email protected]> wrote:
>   > Yes, the version I'm currently using is 1.1. Shall I understand that
>   this kind of issue shouldn't occur in 1.2.M05?
>   >
>   > For the moment I'll take the pessimistic approach by guarding against
>   (as in the example you gave) to assure that this is the reason and then
>   I'll just accept the exception.
>   >
>   > Thank you for your quick and detailed response.
>   >
>   > Best regards,
>   > George
>   >
>   >
>   > -----Original Message-----
>   > From: [4][email protected]
>   [[5]mailto:[email protected]] On Behalf Of Johan Svensson
>   > Sent: 15 December 2010 12:23
>   > To: Neo4j user discussions
>   > Subject: Re: [Neo4j] InvalidRecordException exception
>   >
>   > Sorry, should also have asked what Neo4j version you use but guessing
>   it is 1.1 or early milestone release?
>   >
>   > If so I think the problem is caused by two or more concurrent
>   transactions running delete on the same relationship. If two
>   transactions get a reference to the same relationship and concurrently
>   delete that relationship it is possible for a InvalidRecordException to
>   be thrown instead of a NotFoundException since the write lock is
>   grabbed after the relationship has been verified to exist.
>   >
>   > Solution is either to accept the exception or to guard against it by
>   first acquiring a read lock on the relationship before invoking
>   relationship.delete(). Code example how to do this:
>   >
>   >    GraphDatabaseService gdb; // the graph db
>   >    Relationship relationship; // the relationship to delete
>   >
>   >    LockManager lockManager = ((EmbeddedGraphDatabase)
>   gdb).getConfig().getLockManager();
>   >    lockManager.getReadLock( relationship );
>   >    try
>   >    {
>   >        relationship.delete();
>   >    }
>   >    finally
>   >    {
>   >        lockManager.releaseReadLock( relationship );
>   >    }
>   >
>   > Regards,
>   > Johan
>   >
_______________________________________________
Neo4j mailing list
[email protected]
https://lists.neo4j.org/mailman/listinfo/user

Reply via email to