tinkerpop-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Geoff Reedy (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (TINKERPOP-1252) Failed Neo4j transaction can leave Neo4jTransaction in inconsistent state
Date Thu, 07 Apr 2016 04:25:25 GMT

    [ https://issues.apache.org/jira/browse/TINKERPOP-1252?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15229668#comment-15229668
] 

Geoff Reedy commented on TINKERPOP-1252:
----------------------------------------

I should mention that I haven't actually reproduced the problem on 3.2.0-SNAPSHOT, but by
inspecting the code determined that it should have the same problem. I finally tracked down
this as the root cause for some problems I'd been having on a work project which is using
3.1.1-incubating and had to head home just afterward. Unfortunately since it has to do with
transaction conflicts it's hard to reliably reproduce but so far there's one particular workload
that is triggering it fairly regularly on our setup. I'll do what I can to verify this fix
once I'm back in the office.

> 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)

Mime
View raw message