I'm running into an error when I have multiple sessions running the same
benchmark in both 2.2.0-M01 and M02 using the transactional endpoint with
Neo4j.rb and Neo4j-core gems. I'm having trouble pinning down whether this
is is a bug in the driver, something I should expect and workaround, or
something else, but I'm very concerned.
The benchark is simple. It creates two nodes, creates a relationship
between them, follows the relationship to return one of the nodes, then
deletes both nodes. It goes through a few iterations: one where each
individual action is in its own transaction, another where the entire
process is wrapped in a transaction. On occasion -- and I can't reproduce
this consistently, not do I know why that is -- if I am doing this
simultaneously in two entirely independent terminals on the same system,
one will error and reference the ID of a node being used in the other
session.
In one window, I will receive this message:
CYPHER 2ms MATCH (start:`Student`), (end:`Lesson`) WHERE ID(start) =
> {start_id} AND ID(end) = {end_id} CREATE UNIQUE
> start-[rel0:`ENROLLED_IN`]->end | {:start_id=>18722, :end_id=>18725}
>
The failing session will be doing this:
Student#lessons 11ms MATCH (student18726:`Student`),
> (result_lessons:`Lesson`),
> student18726-[rel0:`ENROLLED_IN`]->(result_lessons:`Lesson`) WHERE
> ID(student18726) = {ID_student18726} RETURN result_lessons ORDER BY
> ID(result_lessons) LIMIT {limit_1} | {:ID_student18726=>18726, "limit_1"=>1}
It will immediately try committing against
http://localhost:7474/db/data/transaction/17601/commit but I will receive
an error that reports:
> Node with id 18725, Neo.ClientError.Statement.EntityNotFound
First part of that is my output, the second is obviously from Neo. As we
can see, it's referencing the ID used in the other session, which is part
of a separate transaction.
Any help is appreciated.
--
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.