fix(parser): dedup IDL events by timestamp to stop dropping recurring alarms

ParseIDLLog deduped by eventID|eventType|description, which is identical
across every occurrence of a recurring alarm (e.g. the flapping PCIe
presence check on Inspur HGX boards). That collapsed every later
occurrence into the first one, so applyGPUStatusFromEvents computed GPU
health from a stale, truncated event list and marked failed GPUs as OK.
This commit is contained in:
Mikhail Chusavitin
2026-07-28 19:38:36 +03:00
parent 3e7f02e497
commit 6e1a8232ec
+6 -2
View File
@@ -47,8 +47,12 @@ func ParseIDLLog(content []byte) []models.Event {
// Clean up description // Clean up description
description = cleanDescription(description) description = cleanDescription(description)
// Create unique key for deduplication // Create unique key for deduplication. Must include the timestamp:
eventKey := eventID + "|" + eventType + "|" + description // recurring alarms (e.g. flapping PCIe presence checks) reuse the same
// eventID/eventType/description on every occurrence, so deduping without
// the timestamp collapses all later occurrences into the first one and
// silently drops the most recent (and most relevant) event.
eventKey := timestamp + "|" + eventID + "|" + eventType + "|" + description
if seenEvents[eventKey] { if seenEvents[eventKey] {
continue continue
} }