giraph-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alessandro Presta (JIRA)" <>
Subject [jira] [Updated] (GIRAPH-556) Race condition in EdgeStore
Date Fri, 08 Mar 2013 07:12:13 GMT


Alessandro Presta updated GIRAPH-556:

    Attachment: GIRAPH-556.patch

Fixes the bug by always initializing a newly-created VertexEdges before inserting it.

At the same time, I also remove some leftover checks for null pointer in VertexEdges#initialize()
implementations: we never (and should never) call initialize with a null Iterable (what I
originally thought was the cause of this bug).
> Race condition in EdgeStore
> ---------------------------
>                 Key: GIRAPH-556
>                 URL:
>             Project: Giraph
>          Issue Type: Bug
>            Reporter: Alessandro Presta
>            Priority: Critical
>         Attachments: 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:

View raw message