Details
-
Bug
-
Resolution: Done
-
Major
-
None
-
None
Description
In TP.handleMyMessage(), we have this code:
if(loopback && multicast && msg.isFlagSet(Message.LOOPBACK))
Because LOOPBACK is never set in Message, a multicast message sent by A will always (1) get looped back to A and (2) get received but not discarded to to the above code.
The correct code should check whether the sender and receiver are identical, e.g.
if(loopback && multicast) {
if(!isSingleton())
}
The added twist is that we need to handle the case where the shared transport doesn't have a local_addr. In this case, TP.ProtocolAdapter.up() needs to run the same check and discard the message if needed.