-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Handle a lost standalone ack correctly. #9895
Handle a lost standalone ack correctly. #9895
Conversation
If a standalone ack gets lost and then there is an application-level reply to the message that triggered the standalone ack, we want to piggyback an ack on that application-level reply as well. Otherwise the other side can end up in a state where it has two outstanding unacknowledged messages (the message we are replying to, and the reply to our reply), which it can't handle. The other change here is to fix ReliableMessageMgr to not crash if the peer misbehaves and skips sending that piggyback ack described above. Instead, we just error out from sending the response to the peer's broken message. Fixes project-chip#9796
A test that we should have but can't write with the existingconnectedhomeip/src/messaging/tests/TestReliableMessageProtocol.cpp Lines 1369 to 1379 in b31a9c9
This comment was generated by todo based on a
|
Size increase report for "gn_qpg-example-build" from a62ee31
Full report output
|
Size increase report for "nrfconnect-example-build" from a62ee31
Full report output
|
Size increase report for "esp32-example-build" from a62ee31
Full report output
|
I feel that
So I just feel that these function names are a little bit confused. |
@kghost Please suggest what you'd prefer as names? |
If a standalone ack gets lost and then there is an application-level
reply to the message that triggered the standalone ack, we want to
piggyback an ack on that application-level reply as well. Otherwise
the other side can end up in a state where it has two outstanding
unacknowledged messages (the message we are replying to, and the reply
to our reply), which it can't handle.
The other change here is to fix ReliableMessageMgr to not crash if the
peer misbehaves and skips sending that piggyback ack described above.
Instead, we just error out from sending the response to the peer's
broken message.
Fixes #9796
Problem
See above.
Change overview
See above.
Testing
New unit test passes.