[ 
https://issues.apache.org/jira/browse/GIRAPH-34?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13106771#comment-13106771
 ] 

jirapos...@reviews.apache.org commented on GIRAPH-34:
-----------------------------------------------------


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/1932/
-----------------------------------------------------------

(Updated 2011-09-16 20:09:21.003725)


Review request for giraph.


Changes
-------

Instead of copying the user messages, simply rely on Javadoc to inform users of 
the contract with sent message values.

Passed the failing unittest with local Hadoop instance and local unittests.


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 (updated)
-----

  
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/examples/SimpleCheckpointVertex.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

        

Reply via email to