[
https://issues.apache.org/jira/browse/GIRAPH-556?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13599048#comment-13599048
]
Eli Reisman commented on GIRAPH-556:
------------------------------------
I have only been following this peripherally, but I have a small question: does
everyone feel comfortable that with the new API and the distinction getting
more complex about when to call initialize and when not to...is all this hidden
from application writers? Seems like a detail we should be managing if possible?
Other than that, all of this work is looking great!
> Race condition in EdgeStore
> ---------------------------
>
> Key: GIRAPH-556
> URL: https://issues.apache.org/jira/browse/GIRAPH-556
> Project: Giraph
> Issue Type: Bug
> Reporter: Alessandro Presta
> Assignee: Alessandro Presta
> Priority: Critical
> Attachments: GIRAPH-556.patch, GIRAPH-556.patch
>
>
> In EdgeStore#addPartitionEdges(), when there is no VertexEdges data structure
> for a vertex, we try to insert a newly-created one. If the insertion is
> successful, we initialize it and later insert an edge in the synchronized
> block.
> It can happen that, between creation and initialization, another thread
> acquires the lock and tries to add an edge, leading to a NullPointerException
> for many implementations of VertexEdges.
> The fix is to create and initialize the structure before we try to insert it.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira