Skip to content

fix(ci): fix flaky_testdata vyper regression and p256 snapshot#14278

Merged
zerosnacks merged 2 commits into
masterfrom
zerosnacks/fix-flaky-test-regressions
Apr 13, 2026
Merged

fix(ci): fix flaky_testdata vyper regression and p256 snapshot#14278
zerosnacks merged 2 commits into
masterfrom
zerosnacks/fix-flaky-test-regressions

Conversation

@decofe
Copy link
Copy Markdown
Contributor

@decofe decofe commented Apr 13, 2026

Summary

Fix two persistent nightly CI failures that have been red since April 2.

Motivation

Both test-isolate and test-flaky nightly workflows have been failing for 12 days straight. Two tests fail deterministically every run.

Changes

flaky_testdata (failing since April 2)

The flaky jobs in both test-isolate.yml and test-flaky.yml were missing the Vyper installation step that test.yml has. When flaky_testdata runs forge test --mc=Issue4640Test against the testdata directory (which contains .vy files), forge fails with Found Vyper sources, but no compiler versions are available for it. No other workflows are affected — ci.yml delegates to test.yml which already installs Vyper.

Fix: add setup-python + pip install vyper==0.4.3 to both flaky jobs, matching test.yml.

flaky_osaka_can_run_p256_precompile (failing since April 8)

Two issues caused the snapshot mismatch:

  1. Function name non-determinism: The OpenChain 4byte API returns non-deterministic ordering for colliding selectors (selfCallPayVerifyCall537021665 vs fulfillBasicOrder_efficient_6GL6yc). Fix: wildcard the ambiguous selector names with [..].

  2. P256VERIFY gas correctness fix: The generic cast run refactor in refactor(cast): generic cast run #14121 changed set_spec()set_spec_and_mainnet_gas_params(), which correctly applies Osaka gas pricing for P256VERIFY (3450 gas instead of the previous incorrect 6900). The old code only set the spec but left gas_params at their default, causing the precompile to charge double its correct cost. This is NOT a regression — it's a bug fix. The 3450 delta cascades through all parent calls. Fix: wildcard the affected gas values since the test is inherently flaky (external RPC + selector API).

The P256VERIFY precompile trace lines (sha256, P256VERIFY call, return value) remain exact — this is the core assertion the test verifies.

Testing

Traced the failure history across 12 nightly runs and bisected both regressions to their introducing commits. Verified all other workflows (ci.yml, crate-checks.yml, etc.) are unaffected.

Prompted by: zerosnacks

- Add Vyper installation to test-isolate.yml flaky job (was missing,
  causing 'Found Vyper sources, but no compiler versions are available'
  since the flaky_testdata test was added in #14052)
- Wildcard ambiguous selector names and gas values in
  flaky_osaka_can_run_p256_precompile snapshot (the OpenChain 4byte API
  returns non-deterministic ordering for colliding selectors, and gas
  values shifted after the generic cast run refactor in #14121)

Co-Authored-By: zerosnacks <95942363+zerosnacks@users.noreply.github.com>
Same missing step as test-isolate.yml — the flaky_testdata test needs
vyper to compile .vy files in the testdata directory.

Co-Authored-By: zerosnacks <95942363+zerosnacks@users.noreply.github.com>
@zerosnacks zerosnacks enabled auto-merge (squash) April 13, 2026 08:38
@zerosnacks zerosnacks merged commit f7b6f73 into master Apr 13, 2026
15 checks passed
@zerosnacks zerosnacks deleted the zerosnacks/fix-flaky-test-regressions branch April 13, 2026 08:59
@github-project-automation github-project-automation Bot moved this to Done in Foundry Apr 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants