Geoff Reedy created TINKERPOP-1252:
--------------------------------------
Summary: Failed Neo4j transaction can leave Neo4jTransaction in
inconsistent state
Key: TINKERPOP-1252
URL: https://issues.apache.org/jira/browse/TINKERPOP-1252
Project: TinkerPop
Issue Type: Bug
Components: neo4j
Affects Versions: 3.1.1-incubating, 3.2.0-incubating
Reporter: Geoff Reedy
Priority: Blocker
For some transaction conflicts Neo4j will throw a DeadlockDetectedException
from neo4japi.Neo4jTx#close(). When this happens, the thread that suffered this
problem may experience a NotInTransactionException on any further attempts to
interact with the graph
The problem starts when the abnormal termination of neo4japi.Neo4jTx#close()
prevents tp3.Neo4jTransaction's threadLocalTx.remove() from being called. The
calling thread is now associated with a closed neo4japi.Neo4jTx. Now tinkerpop
believes that the thread already has an open transaction but neo4j considers it
to be closed.
I've marked as blocker since there isn't any way to work around the problem
once it has occurred. I know that a code freeze for 3.2.0 is in effect now or
shortly, but hopefully it can be thawed enough to put this in.
The fix is simple and expect to see a pull request shortly.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)