Uploaded image for project: 'OpenFlowPlugin'
  1. OpenFlowPlugin
  2. OPNFLWPLUG-905

ContextChain closing is not closing everything properly

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • None
    • None
    • General
    • None
    • Operating System: All
      Platform: All

    • 8668

      Currently, when closing ContextChain (that holds other contexts, like DeviceContext, StatisticsContext, RpcContext) is not terminating everything properly. This can lead to issues during connection flapping, leftover entries in operational/ds and possible freeze of ClusterSingletonService. These are issues that I reproduced locally.

      What needs to be fixed is:

      • Terminate transaction chain when device context is closed, but do not write data to datastore if initial submit was not done yet
      • Do not close registration to cluster singleton service during calling instantiateServiceInstance, because there is lock in ClusterSingletonService, that can freeze ClusterSingletonService when this happens
      • Add queue for setting SLAVE on device when device not yet got MASTER, because when many devices connects at once, it is possible that we hit end of timer when device is connected and so we immediately set SLAVE on device and then replace it with MASTER
      • Wait for RPC services to be registered before we will send nodeAddedNotification to FRM so FRM will have all RPC services available to it
      • Unregister RPC registrations when RpcContext is closed but was never MASTER
      • Always remove device from DS when we got lost owner from EOS
      • Prevent propagation of device disconnected even multiple times (add checks if connection state is RIP directly into ConnectionContext)

            tomas.slusny@pantheon.tech Tomas Slusny
            tomas.slusny@pantheon.tech Tomas Slusny
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: