giraph-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eli Reisman (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (GIRAPH-556) Race condition in EdgeStore
Date Mon, 11 Mar 2013 17:55:13 GMT

    [ 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

Mime
View raw message