[ https://issues.apache.org/jira/browse/GIRAPH-34?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13106685#comment-13106685 ]
jirapos...@reviews.apache.org commented on GIRAPH-34: ----------------------------------------------------- ----------------------------------------------------------- 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 > Failure of Vertex reflection for putVertexList from GIRAPH-27 > -------------------------------------------------------------- > > Key: GIRAPH-34 > URL: https://issues.apache.org/jira/browse/GIRAPH-34 > Project: Giraph > Issue Type: Bug > Reporter: Christian Kunz > Assignee: Avery Ching > Attachments: GIRAPH-34.patch > > > Christian actually found this bug. I am filing the JIRA on his behalf. > Here's my error when running TestVertexRangeBalancer. > java.lang.RuntimeException: java.io.IOException: Call to > returnwhose-lm/10.72.107.231:30002 failed on local exception: > java.io.EOFException > at > org.apache.giraph.comm.BasicRPCCommunications.sendVertexListReq(BasicRPCCommunications.java:768) > at > org.apache.giraph.graph.BspServiceWorker.exchangeVertexRanges(BspServiceWorker.java:1282) > at org.apache.giraph.graph.GraphMapper.map(GraphMapper.java:589) > at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:144) > at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:763) > at org.apache.hadoop.mapred.MapTask.run(MapTask.java:369) > at org.apache.hadoop.mapred.Child$4.run(Child.java:259) > at java.security.AccessController.doPrivileged(Native Method) > at javax.security.auth.Subject.doAs(Subject.java:396) > at > org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1059) > at org.apache.hadoop.mapred.Child.main(Child.java:253) > Caused by: java.io.IOException: Call to returnwhose-lm/10.72.107.231:30002 > failed on local exception: java.io.EOFException > at org.apache.hadoop.ipc.Client.wrapException(Client.java:1065) > at org.apache.hadoop.ipc.Client.call(Client.java:1033) > at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:224) > at $Proxy3.putVertexList(Unknown Source) > at > org.apache.giraph.comm.BasicRPCCommunications.sendVertexListReq(BasicRPCCommunications.java:766) > ... 10 more > Caused by: java.io.EOFException > at java.io.DataInputStream.readInt(DataInputStream.java:375) > at > org.apache.hadoop.ipc.Client$Connection.receiveResponse(Client.java:767) > at org.apache.hadoop.ipc.Client$Connection.run(Client.java:712) > I identified and fixed the issue by making BasicVertex implement Configurable > and making the graph state set in BasicRPCCommunications. There is one more > error though that I'll try and solve before putting up a reviewboard. -- This message is automatically generated by JIRA. For more information on JIRA, see: http://www.atlassian.com/software/jira