Skip to content

LinkUpIntegrityTrigger not working properly #118

@neilstephens

Description

@neilstephens

There was a bug introduced in commit d57b1dc

On adding synchronisation to stack enable/disable, the link watchdog was also changed to use the synchronised methods. But the watchdog disable/enable isn't meant to 'count' towards the stack state logic (it's just the only way to reset the underlying channel).

The result is that LinkUpIntegrityTrigger "FIRST" behaves the same as "EVERY" when the watchdog operates because it's like the stack was enabled for the first time.

The watchdog can be changed back to directly enable/disable the stack as the immediate fix. But that technically reintroduces a logic race with the stack state machine (albeit very unlikely to hit). Ultimately the synchronised enable/disable needs some extra logic to allow for this use case instead.

This also raises the question of whether the LinkUpIntegrityTrigger logic needs expanding to allow options for how to behave for 'on demand', especially with the new demand pause and stale concepts. So the ultimate solution should take that into consideration as well.

Actions:

  1. implement immediate fix
  2. write test cases for LinkUpIntegrityTrigger, including various 'on demand' use cases
  3. implement ultimate fix

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions