Skip to content

bug: lower_fatal not used #3402

Description

@yoks

Version

main

Describe the bug.

The classification ladder checks range_min for SensorFailure at line 93
( reading < min ), then upper_fatal for Fatal, then at lines 105-108 checks if let
Some(lower_fatal) = health.range_min && reading <= lower_fatal — binding range_min
instead of health.lower_fatal (the struct has a lower_fatal field, used correctly at line
187 for display). Because line 93 already returned SensorFailure for reading <
range_min, line 105 can only fire on exact equality reading == range_min; the
actual lower_fatal threshold is never evaluated. Additionally, lines 149-166
downgrade any threshold-derived alert to Success whenever the BMC reports the
sensor status as Ok, meaning a BMC that (through fault or compromise) reports Ok
suppresses independent threshold alerting entirely.

Minimum reproducible example

Relevant log output

Other/Misc.

Found with Mythos

Code of Conduct

  • I agree to follow NVIDIA Infra Controller's Code of Conduct
  • I have searched the open bugs and have found no duplicates for this bug report

Metadata

Metadata

Assignees

Labels

bugA defect in existing software (deprecated - use issue type, but it's needed for reporting now)

Type

Fields

No fields configured for Bug.

Projects

Status
In Progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions