A bug in LongDoubleFloatDoubleVertex.write(DataOutput out) ----------------------------------------------------------
Key: GIRAPH-112 URL: https://issues.apache.org/jira/browse/GIRAPH-112 Project: Giraph Issue Type: Bug Components: graph Affects Versions: 0.70.0 Environment: Any Reporter: Yuanyuan Tian Fix For: 0.70.0 I found a bug in LongDoubleFloatDoubleVertex.write(DataOutput out) when running a small graph algorithm. The symptom is that a vertex read from a different worker becomes junk after the RPC communication. And the source of the problem is the writing of the messages in LongDoubleFloatDoubleVertex.write(DataOutput out): for(double msg : messageList.elements()) { out.writeDouble(msg); } Here messageList.elements() will returns all the elements currently stored in the mahout DoubleArrayList, even including invalid elements between size and capacity. Therefore, the write() function will write a bunch of invalid messages, which will cause error when reading them back in readfields(). The following is a simple solution: double[] elements=messageList.elements(); for(int i=0; i<messageList.size(); i++) { out.writeDouble(elements[i]); } -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira