Skip to content

cmd/evm, test-fixtures: bump eest zkevm corpus to tests-zkevm@v0.4.1#21648

Merged
AskAlexSharov merged 1 commit into
mainfrom
awskii/zkevm-corpus-v041
Jun 6, 2026
Merged

cmd/evm, test-fixtures: bump eest zkevm corpus to tests-zkevm@v0.4.1#21648
AskAlexSharov merged 1 commit into
mainfrom
awskii/zkevm-corpus-v041

Conversation

@awskii

@awskii awskii commented Jun 5, 2026

Copy link
Copy Markdown
Member

Bumps the eest_zkevm execution-witness conformance corpus to tests-zkevm@v0.4.1 and drops the now-fixed #21563 expected-fails.

Pin (test-fixtures.json)

  • repo/tag: ethereum/execution-spec-tests zkevm@v0.4.0ethereum/execution-specs tests-zkevm@v0.4.1
  • sha256: f1d6dbec741e325a08d1227c2292be1aa228a78003d6d62b4ab5b53aefc8480a0e3ce037abe98c3190a18d7bb2403fdc2a5c09c904439c6a4e392995ac676f17
  • size: 221 MB → 360 MB

The corpus moved to ethereum/execution-specs with the tests- tag prefix, matching the eest_benchmark / eest_devnet entries. sha256/size verified by tools/test-fixtures.sh on extract.

Matcher (cmd/evm/zkevmrunner.go)

The v0.4.0 EIP-7702 fixtures carried stale EIP-8037 AUTH_BASE gas (#21563) — erigon was correct, the fixtures were wrong, so they were registered as expected-fails. v0.4.1 regenerates them; they pass now, making those entries obsolete. Dropped the 9 staleAuthBaseGas patterns (Closes #21563); kept the #21566 verifier-negative ones.

Running

# CI shard: downloads tests-zkevm@v0.4.1, builds evm.race, runs the corpus under -race
make eest-spec-zkevm-witness-race

Faster, non-race:

make test-fixtures-zkevm evm
build/bin/evm zkevmtest --jsonout --workers 10 \
  test-fixtures-cache/eest_zkevm/fixtures/blockchain_tests

Result

21604/21604 subtests pass; the #21566 fixtures stay the only expected-fails.

The corpus moved to ethereum/execution-specs with the tests- prefix
(matching benchmark/bal). v0.4.1 fixes the stale EIP-8037 AUTH_BASE gas in
the v0.4.0 EIP-7702 fixtures, so the 21 expected-fail divergences tracked by
newZkevmFailMatcher now pass; drop those patterns (closes #21563). The
#21566 verifier-negative witness_validation fixtures still diverge and stay
absorbed. Full blockchain_tests corpus green: 21604/21604.
@AskAlexSharov AskAlexSharov added this pull request to the merge queue Jun 6, 2026
Merged via the queue into main with commit 5027d25 Jun 6, 2026
91 of 92 checks passed
@AskAlexSharov AskAlexSharov deleted the awskii/zkevm-corpus-v041 branch June 6, 2026 05:56
taratorio added a commit that referenced this pull request Jun 8, 2026
…r branch

SonarCloud rejects a branch analysis dated older than the branch's
latest processed one. All merge-queue entries analyze the target branch,
so when entry N's report uploaded after entry N+1's, SonarCloud rejected
it and flipped the commit's SonarCloud check to cancelled ("Date of
analysis cannot be older than the date of the last known analysis").
Seen on 5027d25, where the scans of three stacked queue entries
(#21648, #21584, #21640) raced and #21648's analysis lost.

Restructure so branch analyses can never be submitted out of order:

- merge_group runs keep `make test-sonar-coverage` as a gate check but
  no longer scan; they upload coverage-test-all.out as a short-retention
  artifact instead.
- A new push-triggered SonarCloud Branch Scan workflow (main and
  release/**, matching the branches SonarCloud tracks) downloads that
  artifact — the merge queue fast-forwards the target branch to the
  already-tested merge commit, so the pushed SHA equals the merge-queue
  run's head SHA and the artifact maps to the commit exactly — and runs
  only the scanner (~7 min instead of ~25). If no artifact exists
  (direct push, expired retention), it falls back to running the tests.
- Scans are serialized per branch FIFO via `concurrency.queue: max`
  (GitHub Actions, 2026-05), so every merged commit is analyzed, in
  order, with no runs cancelled in merge bursts.
- PR scans (Sonar PR analyses, no main-branch date ordering) and
  cache-warming runs are unchanged.

actionlint (≤ v1.7.12) does not know the `queue` key yet, so lint.yml
gains a narrow --ignore alongside the existing workspace one.

A failed analysis upload also no longer involves the gate: scanner
failures now surface on a post-merge run instead, while PR runs keep
exercising the scanner so breakage is still caught before merge.
Sahil-4555 pushed a commit to Sahil-4555/erigon that referenced this pull request Jun 8, 2026
…r branch (erigontech#21669)

## Problem

SonarCloud rejects a branch analysis dated older than the branch's
latest processed one. Every merge-queue entry analyzes the target
branch, so when queue entry N's report uploads *after* entry N+1's,
SonarCloud rejects N's with *"Date of analysis cannot be older than the
date of the last known analysis"* and flips that commit's **SonarCloud
Code Analysis** check to `cancelled`.

Seen on
[`5027d259c2`](erigontech@5027d25):
three stacked queue entries (erigontech#21648, erigontech#21584, erigontech#21640) scanned
concurrently; erigontech#21584 started 6s later but uploaded 21s earlier, so
erigontech#21648's analysis was rejected as out of order. No impact on the gate
(the scan step is `continue-on-error` and the merge succeeded), but it
leaves a spurious failed check on a merged commit.

## Fix

Make it structurally impossible to submit branch analyses out of order:

- **`merge_group` runs** keep `make test-sonar-coverage` as a gate check
but **no longer scan**. They upload `coverage-test-all.out` as a 7-day
artifact.
- **A new `SonarCloud Branch Scan` workflow** (`push` on `main` +
`release/**`, matching the branches SonarCloud tracks) downloads that
artifact and runs **only the scanner** (~7 min vs ~25). The merge queue
fast-forwards the target branch to the already-tested merge commit, so
the pushed SHA equals the merge-queue run's head SHA and the artifact
maps to the commit exactly. If no artifact exists (direct push, or
expired retention), it falls back to running the tests itself.
- Branch scans are serialized per branch **FIFO** via
`concurrency.queue: max` ([GitHub Actions,
2026-05](https://github.blog/changelog/2026-05-07-github-actions-concurrency-groups-now-allow-larger-queues/)),
so every merged commit is analyzed, in order, with **no runs cancelled**
during merge bursts.
- **PR scans** (Sonar PR analyses — separate from main-branch date
ordering) and **cache-warming** runs are unchanged.

A failed analysis upload no longer touches the gate at all: scanner
failures now surface on a post-merge run, while PR runs keep exercising
the scanner so config/scanner breakage is still caught before merge.

## Notes

- `actionlint` (≤ v1.7.12, the latest release) does not know the `queue`
concurrency key yet, so `lint.yml` gets a narrow `--ignore` alongside
the existing `workspace` one. Removable once actionlint learns the key.
- `concurrency.queue: max` is ~1 month old — first real merge-burst
after this lands is where FIFO ordering gets exercised live.

## Testing

- `make lint`, `actionlint` (CI flags), and `zizmor` (repo config) all
clean; the new workflow is finding-free.
- The artifact-lookup script was shellchecked and run against live API
data: correctly resolves the merge-queue run by head SHA, filters
expired artifacts, and degrades to the test-running fallback on a
missing artifact or total API failure (never fails the job).
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.

zkevm@v0.4.0 fixtures: stale EIP-8037 AUTH_BASE gas on EIP-7702 undelegated clears

2 participants