Skip to content

State-cache L2b code-by-hash bypass is unsound under parallel (OCC) execution #21675

@sudeepdino008

Description

@sudeepdino008

Summary

With the state cache enabled (--exec.state-cache=true) and parallel execution (EXEC3_PARALLEL=true, the default), block execution hits a deterministic invalid block — a transaction never converges in OCC validation:

[4/6 Execution] invalid block: could not apply tx <n>: too many validator-invalid retries: 251, expected: 250

The node then cannot make progress (every fork-choice update re-hits the same block and fails). Reproduces at the same block/transaction across clean restarts, so it is not timing-dependent.

Observations

So a state-cache value is inconsistent with what the parallel executor's OCC validation expects, at this point in the chain. Root cause not yet pinned.

Introduced by the state-cache work in #21386.

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions