Skip to content

Protect HCM against duplicate software #927

Description

@MegaIng

Summary

The HCM should detect if another software stack is running and terminate itself.

Is your feature request related to a problem?

If a second software stack is started while one is already running, the HCM starts succesfully and a non-insignificant amount of the remaining stack also survives. This can lead to issues that may damage hardware. An obvious symptom is the duplicate startup voiceline.

Describe the solution you'd like

The HCM should detect if another HCM in the same namespace is already running, and if so, at least terminate itself to prevent duplicate control signals to the motors. It should also say a voice line to indicate this issue clearly.

It may also make sense to terminate more of the software stack, but this may be difficult.

Properly detecting if a duplication is happening may be difficult to do properly. A potential solution is to detect if some specific topics have more than one publisher.

Describe alternatives you've considered

  • Don't do anything; The deploy script already detects this issue.
  • Add this duplication detection to other software. I think HCM is one of the more critical ones since it's responsible for managing safety; Some of the lower level nodes that directly talk to the hardware or higher level nodes that take up a significant computation effort may also benefit from such a detection.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    Status
    🔖 Ready

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions