Skip to content
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

Ensure that we shut down open exchanges when controller shuts down. #15816

Commits on Mar 3, 2022

  1. Ensure that we shut down open exchanges when controller shuts down.

    We already handled shutdown of any ongoing PASE bits.
    
    This PR adds two more things:
    
    1) Shutting down any ongoing CASE session establishment exchanges for
       which we are the initiator.  This is done by shutting down all the
       operational device proxies on our mCASESessionManager (since we own
       all of those anyway) and fixing operational device proxy
       shutdown/destruction to actually clean up the CASEClient if we're
       still in the middle of CASE establishment.
    
    2) Expiring the SecureSessions for our fabric, so that any still-open
       operational exchanges for those sessions get closed correctly (with
       a timeout).  This is needed because our client cluster APIs don't
       give us any way to cancel the operation (invoke, read, write, etc)
       and we need to make sure those get cleaned up when we shut down.
    
    In addition to that:
    
    * Reject wrong-fabric results in
      DeviceCommissioner::OnOperationalNodeResolved (due to buggy minimal
      mdns), so if we start sharing a CASESessionManager across
      controllers we will not be in a position where we are ending up with
      CASE sessions we create but can't tear down.
    * Fix CASE shutdown to not leave a dangling MRP entry after it shuts
      down the exchange.
    
    Fixes project-chip#15760
    bzbarsky-apple committed Mar 3, 2022
    Configuration menu
    Copy the full SHA
    527126c View commit details
    Browse the repository at this point in the history