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

Failed Neo4j transaction can leave Neo4jTransaction in inconsistent state

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Blocker
    • Resolution: Fixed
    • Affects Version/s: 3.1.1-incubating, 3.2.0-incubating
    • Component/s: neo4j
    • Labels:
      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

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

              Dates

              • Created:
                Updated:
                Resolved: