-
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
[op-creds] Fix RemoveFabric command #13869
[op-creds] Fix RemoveFabric command #13869
Conversation
RemoveFabric command called for the fabric that is used to process the message crashes in SessionHolder. The reason is that sessions for the removed fabric are expired when the command's exchange is closed after sending the response and that triggers closing all associated session holders. An exchange's session holder closes the exchange which in this case results in an attempt to close an exchange that is in the middle of closing...
@bzbarsky-apple Not sure if that can be considered a fix for #9642 or we would actually prefer keeping the MRP for |
PR #13869: Size comparison from 1b49aee to bc49db9 Increases (26 builds for cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
Full report (33 builds for cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, qpg, telink)
|
No response at all after deletion of the fabric carrying the session should be possible because to respond requires the use of keys after they were supposed to have been removed. From the client side, I would expect this to look like timeout. From the description, it sounds like this PR does result in this behavior. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This seems fine, insofar as the whole hack we have is fine....
RemoveFabric command called for the fabric that is used to process the message crashes in SessionHolder. The reason is that sessions for the removed fabric are expired when the command's exchange is closed after sending the response and that triggers closing all associated session holders. An exchange's session holder closes the exchange which in this case results in an attempt to close an exchange that is in the middle of closing...
Problem
RemoveFabric command called for the fabric that is used to process the message crashes in SessionHolder:
The reason is that sessions for the removed fabric are expired when the command's exchange is closed after sending the response and that triggers closing all associated session holders. An exchange's session holder closes the exchange which in this case results in an attempt to close an exchange that is in the middle of closing...
Change overview
Testing
Tested manually on nRF Connect examples that commissioning + RemoveFabric commands don't crash the firmware.