Development record
The run-start quota query passes its deadline to the runner's QuotaReporter and then waits on the reporter: runner.quotaOf (internal/core/runner/runner.go) calls qr.Quota(ctx) and returns whatever it returns, so a reporter that ignores its context holds the start of abcd build and abcd drain for as long as it chooses, the deadline notwithstanding. No shipped runner implements QuotaReporter today, so nothing reaches it yet; the next runner that reports quota over I/O inherits it. The route is abcd's: the wait is the loop's own.
The run-start quota query passes its deadline to the runner's QuotaReporter and then waits on the reporter: runner.quotaOf (internal/core/runner/runner.go) calls qr.Quota(ctx) and returns whatever it returns, so a reporter that ignores its context holds the start of abcd build and abcd drain for as long as it chooses, the deadline notwithstanding. No shipped runner implements QuotaReporter today, so nothing reaches it yet; the next runner that reports quota over I/O inherits it. The route is abcd's: the wait is the loop's own.
Grounds
- pursued: a reporter that never returns leaves quotaOf returning context.DeadlineExceeded at the caller's deadline; a quotaOf call that outlives its deadline shows it wrong
Route
abcd adds this route: the wait on the reporter is the loop's own, at the start of abcd build and abcd drain. Nothing outside abcd waits on it, so the fix is abcd's and changes nothing about how a repository works.
Frontmatter
| id | iss-2610121204263271 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | minor |
.abcd/work/issues/resolved/iss-2610121204263271-the-run-start-quota-query-passes-its.md
open on GitHub ↗ · commit history ↗