Skip to content

cmd/utils/app, db/integrity: add time budget for integrity checks#20773

Merged
AskAlexSharov merged 1 commit into
release/3.4from
cherry-pick/20714-to-release-3.4
Apr 24, 2026
Merged

cmd/utils/app, db/integrity: add time budget for integrity checks#20773
AskAlexSharov merged 1 commit into
release/3.4from
cherry-pick/20714-to-release-3.4

Conversation

@AskAlexSharov

Copy link
Copy Markdown
Collaborator

Cherry-pick of #20714 to release/3.4.

Add `--integrity.budget <duration>` to `erigon seg integrity` that caps
total wall-clock time for an integrity run.

- When set, checks are sorted cheap → heavy (based on
`integrity.FastChecks` order) and each receives a per-check deadline of
`remaining / remaining_checks`, so finishing early on a cheap check
rolls budget forward to the heavy tail.
- On per-check timeout: log `[integrity] budget exhausted, moving on` at
INFO and continue to the next check. Not treated as an integrity failure
— `--failFast` only reacts to actual integrity errors.
- When not set (default): no change in behavior — user-supplied order
preserved, no deadline applied.
- `BlockReader.IntegrityTxnID` now takes `ctx` and polls every 1000
segments so `BlocksTxnID` honors the budget.
- `CheckKvi` producer now checks `ctx` every 100k keys, so skip-heavy
runs (e.g. `CommitmentKvi` with `SampleRatio=0`) don't overshoot their
slice by minutes.
- `doPublishable` takes `datadir.Dirs` directly instead of
`*cli.Context`.

follow up:
- pick to release/3.4
- change automation script to allot 30min budget

---------

Co-authored-by: Alex Sharov <AskAlexSharov@gmail.com>
@AskAlexSharov AskAlexSharov merged commit 0587af4 into release/3.4 Apr 24, 2026
20 of 21 checks passed
@AskAlexSharov AskAlexSharov deleted the cherry-pick/20714-to-release-3.4 branch April 24, 2026 07:07
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.

2 participants