-
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
Fix CASE Churn caused by subscriptions on tv #23616
Conversation
PR #23616: Size comparison from 6519b91 to a3e60cf Increases (21 builds for cc13x2_26x2, cyw30739, efr32, nrfconnect, psoc6)
Decreases (10 builds for cc13x2_26x2, psoc6)
Full report (22 builds for cc13x2_26x2, cyw30739, efr32, mbed, nrfconnect, psoc6)
|
examples/tv-casting-app/tv-casting-common/include/MediaSubscriptionBase.h
Outdated
Show resolved
Hide resolved
PR #23616: Size comparison from 6519b91 to 02a202e Increases (6 builds for bl602, bl702, nrfconnect)
Decreases (2 builds for bl702)
Full report (9 builds for bl602, bl702, linux, mbed, nrfconnect)
|
…nd controller are enabled
Removing changes requested so this is not blocked while I am on vacation
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.
Our stack is not at all built to deal with multiple instances of canonical singletons like ExchangeMgr, and a patch like this gives the semblance of fixing the problem, when in fact, the problem is much deeper.
ReadHandler adopting the ExchangeMgr alone is insufficient, since there are plenty of complex interactions that go through InteractionModelEngine and the ReportingEngine that results in them accessing again the ExchangeMgr instance behind the InteractionModelEngine.
The correct fix is one of two possibilities:
- Fix the stack to do away with the singleton nature of these entities, and permit true multi-instancing of the core state of the stack (not at all trivial).
- Live with the current constraints, and to achieve dual server/client modality, you dont need to instantiate multiple instances of these singletons. That is the approach most people have adopted (including us at Google).
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.
Approving to unblock Chris in the short term, since he's committing to working on exploring a fix that involves running commissioner/server using a single instance of the singletons.
* Fix CASE Churn caused by subscriptions on tv * Address comments * User feature flag for IM fix since it only applies when both server and controller are enabled * Address feedback * fix build
Fixes #23618 : CASE session churn observed when tv-casting-app creates subscriptions on tv-app.
The fix here is to grab a reference to the ExchangeMgr used to create the subscription's ReadHandler and use that one to send the ReportData
The fix here is to set this optional param to true.