-
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
[2/3] CASE Eviction (Initial Impl) #19502
[2/3] CASE Eviction (Initial Impl) #19502
Conversation
… on it to be called even when it went out of scope
PR #19502: Size comparison from 1e3f120 to 288dafd Increases above 0.2%:
Increases (41 builds for cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
Decreases (17 builds for cc13x2_26x2, linux)
Full report (41 builds for cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
|
PR #19502: Size comparison from 3963c1b to 612f158 Increases above 0.2%:
Increases (41 builds for cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
Decreases (17 builds for cc13x2_26x2, linux)
Full report (41 builds for cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
|
…c2 interactions later to fail
PR #19502: Size comparison from 3963c1b to a469c31 Increases above 0.2%:
Increases (40 builds for cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
Decreases (17 builds for cc13x2_26x2, linux)
Full report (41 builds for cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
|
PR #19502: Size comparison from 3963c1b to bf52788 Increases above 0.2%:
Increases (14 builds for efr32, k32w, mbed, nrfconnect, p6)
Full report (14 builds for efr32, k32w, mbed, nrfconnect, p6)
|
PR #19502: Size comparison from 3963c1b to 20763ca Increases above 0.2%:
Increases (14 builds for efr32, esp32, mbed, nrfconnect, p6)
Full report (14 builds for efr32, esp32, mbed, nrfconnect, p6)
|
PR #19502: Size comparison from 147cab2 to 4394802 Increases above 0.2%:
Increases (41 builds for cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
Decreases (17 builds for cc13x2_26x2, linux)
Full report (41 builds for cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
|
PR #19502: Size comparison from c60233d to 7b47497 Increases above 0.2%:
Increases (6 builds for cyw30739, mbed, telink)
Full report (6 builds for cyw30739, mbed, telink)
|
PR #19502: Size comparison from c60233d to d769a27 Increases above 0.2%:
Increases (30 builds for cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
Decreases (7 builds for cc13x2_26x2, linux)
Full report (30 builds for cc13x2_26x2, cyw30739, efr32, esp32, k32w, linux, mbed, nrfconnect, p6, telink)
|
We need to allow messages on inactive sessions to reach the exchange manager, because such sessions need to be able to deliver an MRP ack to an exchange waiting for one. We also don't want to crash on an attempt to transition from Inactive to Defunct state; the transition should just be ignored. This way if we start trying to transitionin to Defunct on MRP delivery failures we will not start crashing if such a failure happens on an Inactive session.
We need to allow messages on inactive sessions to reach the exchange manager, because such sessions need to be able to deliver an MRP ack to an exchange waiting for one. We also don't want to crash on an attempt to transition from Inactive to Defunct state; the transition should just be ignored. This way if we start trying to transitionin to Defunct on MRP delivery failures we will not start crashing if such a failure happens on an Inactive session.
* Fix crashes when closing all exchanges for fabric. Our "close all exchanges except this special one for this fabric" API messes up exchange refcounting, leading to use-after-free. The fix is to reuse, as much as possible, the normal "session is going away" flow to notify exchanges, and other session consumers, that the sessions are in fact going away. Fixes #19747 * Address review comments. * Updates to fix fallout from #19502. We need to allow messages on inactive sessions to reach the exchange manager, because such sessions need to be able to deliver an MRP ack to an exchange waiting for one. We also don't want to crash on an attempt to transition from Inactive to Defunct state; the transition should just be ignored. This way if we start trying to transitionin to Defunct on MRP delivery failures we will not start crashing if such a failure happens on an Inactive session. * Address review comment * Address review comments * Address Jerry's review comments.
Problem
Adds support for evicting CASE sessions (#17298).
This adds a fairly basic eviction policy implementation that will be updated in a subsequent PR to actually implement the right policies that are needed for 1.0.
Additional bits:
SecureSession
that can be set on transport-failures.ExchangeMgr::OnMessageReceived
when dealing with in-active sessions.Testing
Adds a stress test for session establishment to the Python test suite that will form the basis for subsequent, more targeted tests to validate various corner cases.