Skip to content

fix: Report instances stalled waiting for their project - #614

Closed
scotwells wants to merge 2 commits into
mainfrom
fix/521-stalled-projection-visibility
Closed

scotwells wants to merge 2 commits into
mainfrom
fix/521-stalled-projection-visibility

Conversation

@scotwells

@scotwells scotwells commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

Requested by Scot Schuchert-Wells

Summary

An instance whose project never becomes available used to retry silently every 15 seconds, forever. Now, once an instance has waited 10 minutes:

  • the wait is logged once at the normal level with the instance name and how long it has waited,
  • the compute_instance_projector_stalled_projections gauge counts it, and
  • it retries once a minute instead of every 15 seconds.

The wait is measured from the first retry the controller saw, so a restart, when short waits are expected, does not report every instance at once. The count clears when the instance stops waiting.

Also:

  • The instance DNS status reasons are named constants.
  • A reconcile-level test checks that an instance in a location without Private DNS is reported in status and retried on the normal resync schedule, with no DNS records written.

Addresses #521. Part of #566.

Related: datum-cloud/enhancements#921

An instance whose project cluster never becomes available used to retry
quietly every 15 seconds forever. After 10 minutes the wait is now logged
at the normal level with the instance name, counted in the
compute_instance_projector_stalled_projections gauge, and retried once a
minute. The wait is measured from the first retry this process saw, so a
restart does not report every instance at once.

Also names the instance DNS status reasons as constants and adds a
reconcile-level test that a location without Private DNS is reported in
status and retried on the normal resync schedule.
@cla-assistant

cla-assistant Bot commented Nov 4, 2026 •

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

Address review findings: log the stall at the normal level only when it
crosses the bound, and end a wait only when a reconcile completes, so a
transient error in between does not hide a real stall.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant