Skip to content

Recover a Pending database replica blocked by missing volume clients #4745

Closed

Description

@devantler

🤖 Generated by the Agentic Engineer

Problem and evidence

A database replica can remain Pending after it is scheduled to a worker that does not yet have the volume client. The current CloudNativePG controller does not repair that already-scheduled case, so incomplete database redundancy prevents the reviewed client-placement maintenance from starting. A fresh scoped read on 11 October confirmed the storage-client attachment failure, a healthy remaining primary, retained claims, and an absent second replica.

This is different from the historical checkpoint failure in #4662 and the telemetry identity issue in #4720. Neither explains this fresh attachment failure.

Proposed bounded recovery

Add a default-read-only, protected recovery for the affected metadata database. After the active deployment finishes, freshly verify exact primary, replica, worker and retained-storage identities. Temporarily prevent scheduling on only the worker missing the client, and submit a normal eviction only for an exact still-Pending non-primary replica. Use UID and resource-version preconditions, preserve default graceful termination and the existing disruption budgets, retain every claim and volume, and restore only the recovery's owned scheduling change on every exit.

The original placement repair in #4718 remains the durable fix. Its full-health maintenance gate must not be weakened. No live recovery may run before regression tests, exact-head review, CI and merge.

Acceptance

Priority: High. Audience: platform services and their operators. This resolves confirmed live redundancy loss and unblocks existing delivery; it is an incident-recovery WIP exception, not new feature scope. Effort: Medium, including failure-path tests, review, deployment and separated live verification.

Part of #2043.

Activity

  1. self-assigned this
    on Oct 11, 2026
  2. added theissue type on Oct 11, 2026
  3. devantler commented on Oct 11, 2026

    @devantler
    ContributorAuthor

    🤖 Generated by the Agentic Engineer

    The active Talos rollout completed successfully in run 38129074956, and #4721 is merged. After that writer finished, separated OIDC readbacks showed Coroot, Umami and Wedding at 3/3 Ready and Backstage at 2/2, all with healthy continuous archiving. Coroot's healthy primary remained unchanged; its two replicas are now Running and Ready. Every current node is Ready and schedulable at the deployed Talos version, and the platform live-health helper reports OK.

    No manual replica recovery was executed. The proposed recovery helper remains unpublished because its Pending-Pod precondition no longer exists. Closing this immediate incident as recovered, not as a shipped recovery feature. The permanent prevention remains #4718/#4744, behind the protected maintenance guard in #4719; #4197 still waits for that storage maintenance and restoration proof. Coroot's rolling warning, log and risk counters are not declared clean.

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

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

Fields

Priority

None yet

Effort

None yet

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions