Skip to content

Bound the node registry reads used by the cluster health checks #27259

Description

@patrickmann

Impact

Two checks in the System Overview health panel, Certificates and OpenSearch Version (both under Search Cluster), can be blocked on MongoDB reads that the health plugin cannot put a time limit on.

When one of those reads is slow or never returns, the check reports unknown instead of a definite state. An unknown check is dropped from the panel's rollup unless everything beside it is also unknown, so the section above it can stay green while a real problem goes unreported.

Why the plugin cannot fix this itself

Each check gets a fixed time budget, and the framework can only ignore a late answer, not stop the work behind it. So every check has to impose its own limit on the call it makes. Most MongoDB-backed checks do that with the driver's withTimeout, which bounds the whole operation including retries. These two cannot, because the collection is a private field rather than something the caller can reach.

What to do

Give each service a bounded read that a caller on a deadline can use. Either a timeout-carrying overload alongside the existing method, or expose a bounded read the callers can drive. Keep it additive so existing callers are untouched.

Dependencies

None. This touches AbstractNodeService and DataNodeMetadataServiceImpl only, and conflicts with nothing currently in flight. It is deliberately split out of #26886, whose ClusterAdapter half is blocked on #26885 and touches the three search client classes instead.

Consumers

Tracked on the Enterprise side in Graylog2/graylog-plugin-enterprise#15110, under "Bounded node registry reads".

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions