-
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
Revisit MRP implementation #11988
Revisit MRP implementation #11988
Conversation
(#6652): This is a stub implementation, should be replaced by the real one when CASE and PASE is completedconnectedhomeip/src/transport/PairingSession.h Lines 92 to 98 in b881dff
This comment was generated by todo based on a
|
Choose active/idle timeout corresponding to the activity of exchanges of the session.connectedhomeip/src/messaging/ReliableMessageMgr.cpp Lines 186 to 193 in c7dabae
This comment was generated by todo based on a
|
PR #11988: Size comparison from 165ae97 to c7dabae Increases above 0.2%:
Increases (32 builds for efr32, esp32, linux, mbed, nrfconnect, p6, qpg, telink)
Decreases (30 builds for efr32, esp32, linux, mbed, nrfconnect, p6, qpg)
Full report (35 builds for efr32, esp32, linux, mbed, nrfconnect, p6, qpg, telink)
|
PR #11988: Size comparison from b793967 to f0096d0 Increases (3 builds for qpg, telink)
Decreases (2 builds for qpg)
Full report (4 builds for qpg, telink)
|
PR #11988: Size comparison from 972406e to 6097e59 Increases above 0.2%:
Increases (35 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
Decreases (31 builds for efr32, esp32, linux, mbed, nrfconnect, p6, qpg)
Full report (38 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
|
@kghost What are the next steps here? |
@woody-apple @bzbarsky-apple This PR is ready for review, waiting Boris to check it. |
PR #11988: Size comparison from 02bd2c7 to 6714b8d Increases above 0.2%:
Increases (35 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
Decreases (31 builds for efr32, esp32, linux, mbed, nrfconnect, p6, qpg)
Full report (38 builds for efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
|
Fast tracking, given this looks like it's had ample time for review, and has gone stale review wise. |
This is failing due to a merge conflict between project-chip#11988 and project-chip#12389: the latter ends up in an error state as described in project-chip#12466 (comment) and the former makes our code a lot more sensitive to being in that error state. The fix for the test is to not use the sync mode of loopback transport, which allows the stack for sending a message to unwind before responses are delivered and avoids the "object deleted by response while we are still working with it" problem described in project-chip#12466 (comment). When the responses were made async, it turned out the test was missing some "expect response" flags that should have been there all along and it was only passing because the response happened before the send could get to the "close the exchange" stage. With async responses, exchanges were closing too early without the "expect response" flags. Separately we should figure out which parts of project-chip#12466 we should do.
This is failing due to a merge conflict between #11988 and #12389: the latter ends up in an error state as described in #12466 (comment) and the former makes our code a lot more sensitive to being in that error state. The fix for the test is to not use the sync mode of loopback transport, which allows the stack for sending a message to unwind before responses are delivered and avoids the "object deleted by response while we are still working with it" problem described in #12466 (comment). When the responses were made async, it turned out the test was missing some "expect response" flags that should have been there all along and it was only passing because the response happened before the send could get to the "close the exchange" stage. With async responses, exchanges were closing too early without the "expect response" flags. Separately we should figure out which parts of #12466 we should do.
Problem
MRP implementation is not aligned with spec
Change overview
ReliableMessageProtocolConfig
classTesting
Verified by unit-tests