-
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
BindingManager invalidates CASE sessions when it shouldn't #18436
Comments
Within the SDK, FabricIndex is the only unambiguous identifier. Many methods that emanated from FabricTableDelegate::OnFabricDeletedFromStorage(chip::CompressedFabricId, chip::FabricIndex) perpetuated use of the compressed fabric ID, because at the bottom, we have CASESessionManager::ReleaseSessionsForFabric(CompressedFabricId) - Replace CASESessionManager::ReleaseSessionsForFabric argument from CompressedFabricId to FabricIndex. - Rework FabricTableDelegate to remove need to pass any CompressedFabricId. - Replace all downstream usages of CompressedFabricId with FabricIndex and FabricTable reference. - Make FabricTableDelegate calls symmetrical in arguments - Make FabricTableDelegate an inner class of FabricTable to remove a friend relationship - Clarify when adding a FabricTableDelegate causes its deletion due to ownership changes - Add session resumption state clearing on fabric removal Fixes project-chip#18435 Issue project-chip#18436
* Remove unneeded/ambiguous CompressedFabricId usages Within the SDK, FabricIndex is the only unambiguous identifier. Many methods that emanated from FabricTableDelegate::OnFabricDeletedFromStorage(chip::CompressedFabricId, chip::FabricIndex) perpetuated use of the compressed fabric ID, because at the bottom, we have CASESessionManager::ReleaseSessionsForFabric(CompressedFabricId) - Replace CASESessionManager::ReleaseSessionsForFabric argument from CompressedFabricId to FabricIndex. - Rework FabricTableDelegate to remove need to pass any CompressedFabricId. - Replace all downstream usages of CompressedFabricId with FabricIndex and FabricTable reference. - Make FabricTableDelegate calls symmetrical in arguments - Make FabricTableDelegate an inner class of FabricTable to remove a friend relationship - Clarify when adding a FabricTableDelegate causes its deletion due to ownership changes - Add session resumption state clearing on fabric removal Fixes #18435 Issue #18436 * Restyled by clang-format * Fix clang CI * Apply review comments * Restyled by clang-format * Address review comments * Remove missed field * Please the gods of Tidy Co-authored-by: Restyled.io <[email protected]>
We still need to to fix this for V1.0. |
V1 review: @mrjerryjohns and @tehampson to review and provide justification if this needs to be a v1.0 blocker. |
Given the recent changes that @tehampson made to pivot When a fabric is removed, two things happen:
|
Decreased blocking status based on comment from @mrjerryjohns above (Jerry added the p1 flag oringally) |
Taking off p1 label. |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. |
This stale issue has been automatically closed. Thank you for your contributions. |
Problem
In:
This invalidates session from a place where this should not be done. The behavior of fabric removal in NOC cluster should suffice, and propagate the necessary session eviction.
Proposed Solution
ReleaseSessionsForFabric
fromBindingManager
The text was updated successfully, but these errors were encountered: