Skip to content

Let a deployment raise the digest walk budget - #652

Merged
xmap merged 1 commit into
mainfrom
worktree-digest-walk-budget
Aug 12, 2026
Merged

Let a deployment raise the digest walk budget#652
xmap merged 1 commit into
mainfrom
worktree-digest-walk-budget

Conversation

@xmap

@xmap xmap commented Aug 12, 2026

Copy link
Copy Markdown
Owner

Found by the first real ingest attempt at 2-BM, which refused with walk exceeded max_walk_seconds=60.0.

The bound was tunable at construction time and nothing passed it, so the 60 s default governed every deployment with no way to change it short of editing code. The adapter's own comment says operators tune it for long-tail files; they could not.

60 s never fits a tomography scan. Measured on the pilot: sha256sum alone takes 82 s on a 24.5 GB file (77 s of it CPU), and CORA's chunked read is slower again.

The refusal was correct, and that is worth stating

Zero events across all three streams, the record untouched, and the idempotency key held the error so a blind retry could not half-ingest. The bound is doing exactly its job, which is to stop a file on a hung mount from occupying a worker forever.

So this does not raise the default. It makes the bound reachable from configuration, and a deployment holding files of that size picks a number that bounds a hang without forbidding its own data.

Both construction sites take it, since verifying a 24.5 GB file has the same problem as computing over one. The HTTP range adapter keeps its own default: same shape, but no deployment has met the limit there and there is no measurement to set it from.

🤖 Generated with Claude Code

The bound was tunable at construction time and nothing passed it, so
the 60 s default governed every deployment with no way to change it
short of editing code. The adapter's own comment says operators tune it
for long-tail files; they could not.

60 s never fits a tomography scan. Measured on the 2-BM pilot,
`sha256sum` alone takes 82 s on a 24.5 GB file, 77 s of that CPU, and
CORA's chunked read is slower again. The first real ingest refused with
`walk exceeded max_walk_seconds=60.0`.

The refusal behaved correctly and is worth recording as a good outcome:
zero events across all three streams, the record untouched, and the
idempotency key holding the error so a blind retry could not
half-ingest. The bound is doing its job, which is to stop a file on a
hung mount from occupying a worker forever. It is not a performance
knob, and this does not raise the default: a deployment holding files
of that size chooses a number that bounds a hang without forbidding its
own data.

Both construction sites take it, since verifying a 24.5 GB file has the
same problem as computing over one. The HTTP range adapter keeps its
own default: same shape, but no deployment has met the limit there and
no measurement to set it from.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

Coverage report

Click to see where and how coverage changed

FileStatementsMissingCoverageCoverage
(new stmts)
Lines missing
  apps/api/src/cora/data
  wire.py
  apps/api/src/cora/infrastructure
  config.py
Project Total  

This report was generated by python-coverage-comment-action

@xmap
xmap merged commit 1338cc0 into main Aug 12, 2026
19 checks passed
@xmap
xmap deleted the worktree-digest-walk-budget branch August 12, 2026 14:01
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