[ https://issues.apache.org/jira/browse/TINKERPOP-1830?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16246860#comment-16246860 ]
ASF GitHub Bot commented on TINKERPOP-1830: ------------------------------------------- GitHub user mpollmeier opened a pull request: https://github.com/apache/tinkerpop/pull/745 TINKERPOP-1830: fix race condition in TinkerIndex My colleage @fabsx00 discovered a race condition in tinkergraph's index creation. He fixed it by simply replacing `parallelStream` with `stream`. Quoting his analysis: > So, reading the code, you see that this.put is called in parallel, but that method seems to contain a race as get is called on the index, checked for null, and a subsequent write is performed. It still seems like using stream here fixes the problem we've been seeing, and the performance hit is not significant. Ticket: https://issues.apache.org/jira/browse/TINKERPOP-1830 After initial feedback I can backport this onto tp32. You can merge this pull request into a Git repository by running: $ git pull https://github.com/mpollmeier/tinkerpop mp/1830-tinkergraph-index-race-condition Alternatively you can review and apply these changes as the patch at: https://github.com/apache/tinkerpop/pull/745.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #745 ---- commit ca5aa798093b58833bf54d7a495a0928bca41555 Author: Fabian Yamaguchi <f...@shiftleft.io> Date: 2017-10-27T16:43:15Z patch for TinkerIndex ---- > Race condition in Tinkergraph index creation > --------------------------------------------- > > Key: TINKERPOP-1830 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1830 > Project: TinkerPop > Issue Type: Bug > Components: tinkergraph > Affects Versions: 3.3.0, 3.2.6 > Reporter: Michael Pollmeier > Priority: Minor > Fix For: 3.2.7, 3.3.1 > > > My colleage Fabian Yamaguchi <f...@shiftleft.io> discovered a race condition > in tinkergraph's index creation. He fixed it by simply replacing > `parallelStream` with `stream`. Quoting his analysis: > > So, reading the code, you see that this.put is called in parallel, but that > > method seems to contain a race as get is called on the index, checked for > > null, and a subsequent write is performed. It still seems like using stream > > here fixes the problem we've been seeing, and the performance hit is not > > significant. -- This message was sent by Atlassian JIRA (v6.4.14#64029)