-
Bug
-
Resolution: Done
-
Major
-
None
-
None
If P sends OOB messages 1-10, and Q only receives 1 and 2, and the later receives P:11, then it'll ask P for retransmission of messages P:3 - P:10. P wraps each retransmitted message and sends it as regular message to Q. Because regular messages are handled sequentially, by the regular thread pool, each message will be sent up to NAKACK (where it is unwrapped and sent further up) sequentially, destroying the semantics of OOB messages with concurrent and unordered delivery !
SOLUTION: check whether an original message is OOB and - if so - set the wrapping message as OOB, too.
TODO: check why we actually wrap retransmitted messages in NAKACk (we don't do it in UNICAST) ! Maybe this is leftover code from the days when retransmitted messages were bundled in NAKACK itself ? We should be able to simply copy the retransmitted message and send it to the requester (or all if mcast_xmit=true).
TODO: why are we setting the msg.setSrc() in a retransmitted message ?