Can you give more context?
What are the types of messages, patch of your compute method, etc.
You will not receive messages that are not sent, but one thing that can happen is
-- message can have multiple parameters.
suppose message objects can have 2 parameters
m - a,b
say in m's write(out) you do not handle the case of b = null
m1 sets b
m2 has b=null
then because of incorrect code for m's write() m2 can show b = m1.b
that is because message objects will be re-used when receiving. This is a Giraph gotcha, because of
object reuse in most iterators.


> From:
> Date: Tue, 23 Sep 2014 10:10:48 -0400
> Subject: receiving messages that I didn't send
> To:
> Hi Folks. I am refactoring my compute() to use a set of ids as its
> message type, and in my tests it is receiving a message that it
> absolutely did not send. I've debugged it and am at a loss.
> Interestingly, I encountered this once before and solved it by
> creating a copy of a Writeable instead of re-using it, but I haven't
> been able to solve it this time. In general, does this anomalous
> behavior indicate a Giraph/Hadoop gotcha'? It's really confounding!
> Thank very much -- matt
> --
> Matthew Cornell | | 413-626-3621 | 34
> Dickinson Street, Amherst MA 01002 |