Werk #19808: Piggyback hosts: do not remove services while source data is outdated
| Component | Checks & agents | ||||||
| Title | Piggyback hosts: do not remove services while source data is outdated | ||||||
| Date | May 15, 2026 | ||||||
| Level | Trivial Change | ||||||
| Class | Bug Fix | ||||||
| Compatibility | Compatible - no manual interaction needed | ||||||
| Checkmk versions & editions |
|
When a piggyback source went silent past the configured max_cache_age, the periodic service discovery on the receiving host treated the absence of fresh data as evidence that all services had vanished and removed them (if "Remove vanished services" was enabled).
After the source returned, the services were not always re-added:
the receiving host could end up DOWN (e.g. because its host check command depended on a service that had just been removed).
And the autodiscovery cron silently skipped hosts that were not UP.
This left the rediscovery queue file in place indefinitely.
With this change, outdated piggyback data is no longer interpreted as "services have vanished" on hosts that always expect piggyback data.
The piggyback summarizer now reports state WARN ("Piggyback data outdated") when data is older than max_cache_age on a piggyback host.
As a result, the Check_MK and Check_MK Discovery services on the affected host go WARN for the duration of the outage.
And discovery does not act destructively on stale data.
Services stay in autochecks until the host itself is removed (e.g. by Dynamic configuration) or the user runs a manual service discovery.
For hosts that do not always expect piggyback data the behavior is unchanged: outdated piggyback metadata still maps to state OK.
In addition, the autodiscovery cron worker no longer skips queued hosts that are not in the UP state.
Such hosts were previously ignored silently, and their rediscovery queue file was never cleaned up.
They are now processed normally:
If data cannot be fetched, the existing error path removes the queue file after one cycle.
This reverts the explicit change introduced by werk 7249.