Jake Mannix commented on GIRAPH-34:

+1 from me - although I haven't run it on an actual cluster, so I'm going by my 
reading of the code.

Although we should think further about ways we can be safe:  it's possible that 
the right and efficient thing to do is analogous to your context.write() 
example: we take the Writable message, and we serialize the Writable to a 
byte[], and pass that byte[] to the local recipient if there is one.  That 
recipient should be able to inexpensively deserialize and rehydrate the 
messages on the fly when running the VertexCombiner (only using one container 
Writable at a time, doing the same thing that Hadoop does, essentially) and 
just before the call to compute().

> 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/ 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/ 
> 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


Reply via email to