Skip to content

tools: drop-orphan-inline-tables-default reads its run budget from MILLPOND_INLINE_RUN_BUDGET_S, default 300 s - #150

Merged
jghoman merged 1 commit into
mainfrom
jakob/inline-budget-env
Oct 1, 2026
Merged

jghoman merged 1 commit into
mainfrom
jakob/inline-budget-env

Conversation

@jghoman

@jghoman jghoman commented Oct 1, 2026

Copy link
Copy Markdown
Collaborator

Why

Review of charts #16725 (the chain change) found that three prod-us tenants run the maintenance chain every 15 minutes under concurrencyPolicy: Forbid. The wrapper's 1,800 s budget, derived from the 18,000 s activeDeadlineSeconds divided by six recipes, would hold the chain past a tick and skip the next one for every other step, compaction included.

What

  • drop-orphan-inline-tables-default passes --run-budget-s from MILLPOND_INLINE_RUN_BUDGET_S, default 300. The explicit recipe's default follows; "" still means unbounded, inf is the explicit escape hatch.
  • A tenant that needs more is raised from its CronJob spec through the env var, never by editing the chain args: a parameterized recipe in a just chain eats the next word.
  • Comments in the justfile and AGENT.md say the cadence is the bound, not the deadline.

Tests

  • just --justfile tools/justfile --dry-run drop-orphan-inline-tables-default renders --run-budget-s '300', and --run-budget-s '900' with MILLPOND_INLINE_RUN_BUDGET_S=900 (both asserted).
  • Inline suite 24 passed; run-budget unit tests 11 passed; ruff check and ruff format --check clean.

Deploy

Release, then retag :prod (Promote to prod workflow) before charts #16725 merges; the chain references this wrapper first.

…LLPOND_INLINE_RUN_BUDGET_S, default 300 s

The chain wrapper passed 1800 s, derived from the cron's 18000 s
activeDeadlineSeconds divided by six recipes. The bound that matters
is the cron cadence: three prod-us tenants run the whole chain every
15 minutes under concurrencyPolicy Forbid, so a step that outlives a
tick skips the next tick for every other step, compaction included.
300 s keeps the chain inside one tick. The wrapper reads the budget
from the environment so a tenant can be raised from its CronJob spec
without touching the chain args, where a parameterized recipe would
eat the next word. The explicit recipe's default follows.
@jghoman
jghoman merged commit 37a2108 into main Oct 1, 2026
17 checks passed
@jghoman
jghoman deleted the jakob/inline-budget-env branch October 1, 2026 19:28
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