-
Bug
-
Resolution: Done
-
Major
-
None
-
None
-
False
-
False
-
MaxOneThreadPerSender has a table of senders and Entries. Each Entry maintains the sender as a field. The sender is always the local member which received the message or message batch.
The problem is that an Entry can have a stale sender field. This can happen when a message is received after a disconnect of X (e.g. a LEAVE-RSP) and a subsequent reconnect under address X'. As the entry exists (with sender==X, no new entry with sender==X' will be created. This causes unicastMismatch() to drop the new message (e.g. a JOIN-RSP), which causes JOIN to fail.
Solution: remove the sender field and always use the local address (X' in the example above) for unicast messages/message batches.