[ https://issues.apache.org/jira/browse/GIRAPH-34?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13106761#comment-13106761 ]
Avery Ching commented on GIRAPH-34: ----------------------------------- I think the analogy in Hadoop land would be closer to context.write(Writable key, Writable value). And after digging in the Hadoop code, I don't see them doing any copying, but the slight difference is that the destination is always remote, so it's not an issue for them. Hmmm. Okay, I guess I'll submit another patch that simply augments the Javadoc of sendMsg() to emphasize that a message value must be not be modified by the user after it is used in sendMsg(). I do agree that the object instantiation can be expensive, so perhaps the safety isn't as valuable as the performance. > 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