----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/1932/ -----------------------------------------------------------
Review request for giraph. Summary ------- The problem shows up when messages are sent locally, and therefore not reflected. Hence, after the message has been delivered to the other local vertex, in the next superstep, if the vertex who sent the message modifies the object, it will modify the message before the receiving vertex has a chance to access it. Also, combiners maybe operate on the (shared) message simultaneously with the compute() method, therefore potential issues could also occur with messages eventually sent to remote workers. The solution I am proposing is that all messages should be copied to prevent this error from occuring as it is pretty tough to debug. An alternative would just be to tell users to create copies themselves, but it's less convenient and not intuitive in my opinion. This addresses bug GIRAPH-34. https://issues.apache.org/jira /browse/GIRAPH-34 Diffs ----- http://svn.apache.org/repos/asf/incubator/giraph/trunk/src/main/java/org/apache/giraph/comm/BasicRPCCommunications.java 1171389 http://svn.apache.org/repos/asf/incubator/giraph/trunk/src/main/java/org/apache/giraph/graph/BasicVertex.java 1171389 http://svn.apache.org/repos/asf/incubator/giraph/trunk/src/main/java/org/apache/giraph/graph/Vertex.java 1171389 http://svn.apache.org/repos/asf/incubator/giraph/trunk/src/test/java/org/apache/giraph/TestVertexRangeBalancer.java 1171389 Diff: https://reviews.apache.org/r/1932/diff Testing ------- I passed local unittests (mvn package) and unittests on my local machine's Hadop instance (mvn package -Dprop.mapred.job.tracker=localhost:50300). Thanks, Avery