Details

    • Type: Bug
    • Status: Resolved (View Workflow)
    • Priority: Major
    • Resolution: Done
    • Affects Version/s: None
    • Fix Version/s: 1.0.0
    • Labels:

      Description

      In the driver class an engine is created and registered as an alarm handler and an inventory handler. This registration occurs before the engine has had a chance to init. When the engine inits it uses the view of the inventory/alarms at the time that it was originally registered to complete its init.

      This causes a race condition as it is possible for the engine to receive inventory/alarm callbacks before the init has occurred since it has already been registered as a callback handler. This means that the view from registration time may be stale by the time the engine inits which will lead to a corrupt view.

      This example illustrates the race condition:

      t1 - register and get inventory view
      t2 - handleRemove callback called for some inventory item (no-op since not inited yet)
      t3 - init with the view from t1

      The resulting inventory view now contains the inventory item that should have been removed in t2 so now the engine is in an incorrect state.

        Attachments

          Activity

            People

            • Assignee:
              mbrooks Matthew Brooks
              Reporter:
              mbrooks Matthew Brooks
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: