[
https://issues.apache.org/jira/browse/TINKERPOP-3298?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Stephen Mallette closed TINKERPOP-3298.
---------------------------------------
Fix Version/s: 4.0.0
3.7.8
3.8.3
Resolution: Fixed
> TinkerTransactionGraph writes through an indexed lookup or a kept reference
> bypass transaction isolation
> --------------------------------------------------------------------------------------------------------
>
> Key: TINKERPOP-3298
> URL: https://issues.apache.org/jira/browse/TINKERPOP-3298
> Project: TinkerPop
> Issue Type: Bug
> Components: tinkergraph
> Affects Versions: 3.7.7
> Reporter: Stephen Mallette
> Assignee: Stephen Mallette
> Priority: Critical
> Fix For: 4.0.0, 3.7.8, 3.8.3
>
>
> An element found through an index, or a reference kept across a commit, was
> the committed element itself, not a transaction copy. A write through it
> changed committed state directly:
> - it was visible to other transactions before commit;
> - rollback did not undo it;
> - concurrent writers could fail with ArrayIndexOutOfBoundsException.
> {code}
> graph.createIndex('name', Vertex.class)
> g.addV().property('name','a').property('weight',1).iterate(); g.tx().commit()
> g.V().has('name','a').property('weight',2).iterate(); g.tx().rollback()
> g.V().has('name','a').values('weight') // 2, expected 1
> v = g.addV().property('weight',1).next(); g.tx().commit()
> v.property('weight',2); g.tx().rollback()
> g.V(v.id()).values('weight') // 2, expected 1
> {code}
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)