Merge nucleic/upbeat-opal-viper-cc8l into main
build / build (push) Canceled after 0s

This commit is contained in:
2026-08-07 05:11:01 -07:00
parent ee19744496
commit 6b0c01b74b
8 changed files with 395 additions and 28 deletions
+12 -2
View File
@@ -284,8 +284,18 @@ scheduler treats as transient back-pressure rather than a failure.
### Timeouts
* A slot in `.provisioning(since:)` longer than `bootTimeoutSeconds` (default
300) is torn down. Covers a guest that never gets a lease, never starts `sshd`,
or hangs in Setup Assistant.
900) is torn down. Covers a guest that never gets a lease, never starts `sshd`,
or hangs in Setup Assistant. The default is deliberately generous: several
Virtualization guests sharing one host push a boot from tens of seconds into
minutes, and a limit below the worst case does not time out a bad boot, it
livelocks — each replacement clone starts from zero and adds load, so the next
boot is slower still and no runner ever registers.
* The lifecycle's own `waitForLease` and `waitForSSH` budgets are derived from
what is *left* of that deadline, not from a fresh copy of it. Given the full
`bootTimeoutSeconds` their deadlines would fall after the planner's, so the
planner would always cancel first and the specific error — which host, how
many attempts, what the last one said — would be discarded in favour of a bare
cancellation.
* A slot in `.running(jobHint:since:)` longer than `jobTimeoutMinutes` (default
120) is torn down. Covers a job that hangs. This is comfortably below Gitea's
own `ABANDONED_JOB_TIMEOUT` (24 h), so our teardown always happens first and