You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fix handling of a response that comes after MRP resends end. (#29640)
* Fix handling of a response that comes after MRP resends end.
After #29173 we can get into the following situation:
1. A message is sent.
2. Before we get an ack or response, all MRP retries happen, MRP gives up, but
the exchange response timer has not been hit yet.
3. We get an actual response.
4. Because our exchange is marked as having an un-acked message, but the
incoming message is not treated as an ack (because the MRP state that would
do that has been torn down), we do not clear our "have un-acked message"
state and end up discarding the incoming message.
The fix is as follows:
* Rename things to make it clear that what we really have is "waiting for an
ack" state, which in fact _does_ get cleared when we run out of MRP retries,
not an "un-acked message" state.
* Have a separate state bit for tracking that we ran out of MRP retries on a
message we sent.
* Address review comment.
0 commit comments