Skip to content

evmonly/evmonlyapp: revert the sized next-block decode (#4262), keep the PrepareBlock timer - #4267

Merged
bdchatham merged 4 commits into
giga-1from
devin/1789916482-revert-prepare-sizing
Sep 20, 2026
Merged

bdchatham merged 4 commits into
giga-1from
devin/1789916482-revert-prepare-sizing

Conversation

@bdchatham

Copy link
Copy Markdown
Contributor

#4262 sized PrepareBlock's decode of the next block from an EWMA of per-tx parse cost and half an EWMA of execution time, on the theory that decoding on every processor was contending with the current block's OCC speculation. The roll on testnet-2 (9a731d5) did not bear that out: steady-state executed tx/s was unchanged (93.9k vs 94.5k), and occ_speculate per tx barely moved once the estimate settled. Validators use ~24 of 32 cores, so speculation was never short of processors.

This reverts the sizing (PrepareBlockWithin, parseSizer, prepareBudget/nextExecuteEstimate, the executeEstimate on the app) so PrepareBlock decodes with the full ParseWorkers again, and re-adds the one part of #4262 that earned its keep: the evmonly_prepare phase timer around the decode in evmOnlyApplication.PrepareBlock, which is what shows prepare wall against block time on the dashboard.

No consensus or state impact; the decode result is identical either way. Existing evmonly and evmonlyapp tests pass with the race detector; the parse-sizer tests go with the code they covered.

Link to Devin session: https://app.devin.ai/sessions/ff612badcded4aa5914ea408dbb41888
Open in Devin Desktop: https://app.devin.ai/desktop/session/ff612badcded4aa5914ea408dbb41888?variant=devin
Requested by: @bdchatham

bdchatham and others added 2 commits September 20, 2026 15:01
…t and the time it has; time PrepareBlock (#4262)"

This reverts commit 9a731d5.
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@devin-ai-integration

Copy link
Copy Markdown
Contributor

I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".

  • Disable automatic comment, CI, and merge conflict monitoring

@cursor

cursor Bot commented Sep 20, 2026 •

Copy link
Copy Markdown

PR Summary

Low Risk
Rollback of parse-worker heuristics only; decode logic and consensus/state paths are unchanged aside from always using full ParseWorkers.

Overview
Reverts the budget-based, adaptive parse-worker sizing introduced in #4262 so next-block transaction decode in PrepareBlock again uses the full configured ParseWorkers count instead of a time-budgeted subset.

Removed: parseSizer and its tests, Executor.PrepareBlockWithin, and evmonlyapp helpers (prepareBudget, nextExecuteEstimate, executeEstimate) that sized decode from EWMA execution/parse cost. PrepareBlock is the single entry point again; prepared-path FinalizeBlock no longer records execution time for that sizing.

Kept: The evmonly_prepare phase timer around decode in evmOnlyApplication.PrepareBlock for dashboard visibility. Decode output is unchanged; this is a performance-tuning rollback with no consensus or state impact.

Reviewed by Cursor Bugbot for commit a2c0589. Bugbot is set up for automated code reviews on this repo. Configure here.

@github-actions

github-actions Bot commented Sep 20, 2026 •

Copy link
Copy Markdown

The latest Buf updates on your PR. Results from workflow Buf / buf (pull_request).

BuildFormatLintBreakingUpdated (UTC)
✅ passed✅ passed✅ passed✅ passedSep 20, 2026, 3:21 PM

@codecov

codecov Bot commented Sep 20, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 90.71%. Comparing base (7e3ca24) to head (a2c0589).
⚠️ Report is 45 commits behind head on giga-1.

Additional details and impacted files

Impacted file tree graph

@@             Coverage Diff             @@
##           giga-1    #4267       +/-   ##
===========================================
+ Coverage   65.55%   90.71%   +25.16%     
===========================================
  Files        2081       21     -2060     
  Lines      157460     3512   -153948     
===========================================
- Hits       103222     3186   -100036     
+ Misses      54097      326    -53771     
+ Partials      141        0      -141     
Flag Coverage Δ
sei-chain ?
sei-chain-pr 90.71% <100.00%> (?)
sei-db ?

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
giga/evmonly/executor.go 91.28% <100.00%> (+0.07%) ⬆️
sei-tendermint/internal/evmonlyapp/app.go 86.86% <100.00%> (+5.09%) ⬆️

... and 2068 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@seidroid seidroid Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clean, complete revert of the adaptive parse-worker sizing from #4262 that correctly retains the evmonly_prepare phase timer; no dangling references, no now-unused or now-missing imports, and the removed max(workers, 1) floor is still covered by Config.Sanitize plus parseBlockTxs's serial path. Only tests for the deleted code were removed.

Findings: 0 blocking | 0 non-blocking | 0 posted inline

Blockers

  • None at the file/PR level.

Non-blocking

  • None at the file/PR level.

@bdchatham
bdchatham enabled auto-merge September 20, 2026 15:10
bdchatham and others added 2 commits September 20, 2026 15:11
…ner)

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@bdchatham
bdchatham added this pull request to the merge queue Sep 20, 2026
Merged via the queue into giga-1 with commit ccf9738 Sep 20, 2026
62 checks passed
@bdchatham
bdchatham deleted the devin/1789916482-revert-prepare-sizing branch September 20, 2026 15:47
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