Features: exhaustionDetectionArmed is not trustworthy after a reload (#404)

Dai Ha
2026-09-10 08:51:11 +07:00
parent ad3732a908
commit 5e0ddbc05a
+6
@@ -4819,6 +4819,12 @@ subscription is the thing that actually runs out.
- **Armed is not correct.** `exhaustionDetectionArmed: true` means a pattern is configured, not
that it matches what this backend prints. A wrong pattern reports as armed.
- **After a reload, the field lies — fleetd #404, open.** `exhaustedPattern` is a **deferred** key:
the patterns are compiled once into a map at startup and a reload never re-reads them. The field
reads the *live* config instead. So if you add a pattern to `fleetd.yaml` and reload, the field
flips to `true` while detection stays off until the daemon restarts. Until #404 lands, trust the
field only on a freshly started daemon, and **restart after editing `exhaustedPattern`** — the
reload report is the honest door here, and it names `profiles` as needing a restart.
- **`errorPattern` has the same opt-in shape** and is not covered by this report. It is less
severe: with none set, the code falls back to a narrow built-in pattern rather than going inert.
- **The startup call site is not pinned by a test.** Deleting `reportExhaustedPatternGap(cfg)` from