holodeck-b2b/Holodeck-B2B

Inconsistency in reception awareness

sfieten opened this issue · 0 comments

When the current processing state of a User Messages is TRANSPORT_FAILURE it will be resent by RetransmissionWorker but when a Receipt is received for that same User Message it will not be processed by the ProcessReceipts handler and the message will stay in the TRANSPORT_FAILURE state.
This can leave a User Message in "failed" state when the last resend of the message fails, even if a Receipt is later received (most likely to happen on large messages where a "read time-out" occurs because the receiver takes too long to process the message and send the Receipt).

Therefore the ProcessReceipts and RetransmissionWorker should use the same set of processing states to determine whether a message is or could be waiting for a receipt.