Uploaded image for project: 'TinkerPop'
  1. TinkerPop
  2. TINKERPOP-1252

Failed Neo4j transaction can leave Neo4jTransaction in inconsistent state

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Blocker
    • Resolution: Fixed
    • 3.1.1-incubating, 3.2.0-incubating
    • neo4j
    • None

    Description

      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.

      Attachments

        Activity

          People

            spmallette Stephen Mallette
            gereedy Geoff Reedy
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: