[ https://issues.apache.org/jira/browse/GIRAPH-556?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13597463#comment-13597463 ]
Hudson commented on GIRAPH-556: ------------------------------- Integrated in Giraph-trunk-Commit #787 (See [https://builds.apache.org/job/Giraph-trunk-Commit/787/]) GIRAPH-556: Race condition in EdgeStore (apresta) (Revision c14e524b6ac8829fae37eeedcbc78eaa5b9bedcc) Result = SUCCESS alessandro : http://git-wip-us.apache.org/repos/asf?p=giraph.git&a=commit&h=c14e524b6ac8829fae37eeedcbc78eaa5b9bedcc Files : * giraph-core/src/main/java/org/apache/giraph/edge/EdgeStore.java * giraph-core/src/main/java/org/apache/giraph/conf/ImmutableClassesGiraphConfiguration.java * giraph-core/src/main/java/org/apache/giraph/edge/LongNullArrayEdges.java * giraph-core/src/main/java/org/apache/giraph/comm/WorkerClientRequestProcessor.java * giraph-core/src/main/java/org/apache/giraph/edge/LongDoubleHashMapEdges.java * giraph-core/src/main/java/org/apache/giraph/comm/netty/NettyWorkerClientRequestProcessor.java * giraph-core/src/main/java/org/apache/giraph/edge/ArrayListEdges.java * giraph-core/src/main/java/org/apache/giraph/edge/HashMapEdges.java * giraph-core/src/main/java/org/apache/giraph/edge/LongDoubleArrayEdges.java * CHANGELOG * giraph-core/src/main/java/org/apache/giraph/edge/ByteArrayEdges.java * giraph-core/src/main/java/org/apache/giraph/graph/Vertex.java * giraph-core/src/main/java/org/apache/giraph/edge/LongNullHashSetEdges.java > 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