incubator-giraph-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jake Mannix (JIRA)" <>
Subject [jira] [Commented] (GIRAPH-34) Failure of Vertex reflection for putVertexList from GIRAPH-27
Date Fri, 16 Sep 2011 19:38:09 GMT


Jake Mannix commented on GIRAPH-34:

I'll definitely open another JIRA for the Vertex subclasses, and dig into that a bit.

But on this current topic, I see how users could possibly do something like sendMsg(destVertex,
getVertexValue()), yes.  But isn't this analogous to in regular Hadoop-land, that you simply
cannot expect to hang onto your Writable instances and use them later.  If you're in
key, SomethingWritable value, Context c), you should *never* just buffer up the key and value
instances, as this is practically guaranteed to break - Hadoop will be re-using the key and
value as container objects to read new bytes off of disk for the next invocation to map(),
so that java objects are rarely created, instead you're just constantly doing simple bit/byte
operations on the disk stream, and setting values inside of Writable containers.  

It seems like one of the basic contracts of Writables (at least in Hadoop-land) is that they
are always to be considered containers: call get() or getSomeKindOfThing() on them as soon
as you have a handle on one, and use whatever *that* is, assuming that the framework can and
will reuse your original Writable.

> Failure of Vertex reflection for putVertexList from GIRAPH-27 
> --------------------------------------------------------------
>                 Key: GIRAPH-34
>                 URL:
>             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: Call to returnwhose-lm/
failed on local exception:
> 	at org.apache.giraph.comm.BasicRPCCommunications.sendVertexListReq(
> 	at org.apache.giraph.graph.BspServiceWorker.exchangeVertexRanges(
> 	at
> 	at
> 	at org.apache.hadoop.mapred.MapTask.runNewMapper(
> 	at
> 	at org.apache.hadoop.mapred.Child$
> 	at Method)
> 	at
> 	at
> 	at org.apache.hadoop.mapred.Child.main(
> Caused by: Call to returnwhose-lm/ failed on
local exception:
> 	at org.apache.hadoop.ipc.Client.wrapException(
> 	at
> 	at org.apache.hadoop.ipc.RPC$Invoker.invoke(
> 	at $Proxy3.putVertexList(Unknown Source)
> 	at org.apache.giraph.comm.BasicRPCCommunications.sendVertexListReq(
> 	... 10 more
> Caused by:
> 	at
> 	at org.apache.hadoop.ipc.Client$Connection.receiveResponse(
> 	at org.apache.hadoop.ipc.Client$
> 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:


View raw message