ethereum-optimism / ethereum-optimism/optimism
flaky test: `TestSequencingWindowExpiry`
- Dominant language
- Go
- Stars
- 6.5k
- Forks
- 4k
- Avg merge
- 2d 15h
- Merged PRs (30d)
- 145
Description
**CI run:** https://app.circleci.com/pipelines/github/ethereum-optimism/optimism/123106/workflows/a439de60-69c4-431d-86a3-254d3e93abae/jobs/4871228/tests
**Date:** 2026-04-21
**Job:** `memory-all-kona-op-reth` (acceptance tests)
**Branch:** `develop`
### Failure
```
op-acceptance-tests/tests/interop/seqwindow/expiry_test.go:125
Error: Condition never satisfied
Test: TestSequencingWindowExpiry
Messages: expecting CL to sync cross-safe data, after resolving sequencing window expiry
```
### Likely root cause (from logs)
During the test, the `op-reth` sequencer for chain `901` panicked in the ExEx pipeline:
```
Critical task `exex` panicked: `ExEx proofs-history crashed:
Block 36 is out of order
(parent: 0x84753764422e00e2d28d4c3a74015929cac83d3115f95c821b47806828347a6a,
latest stored hash: 0x2cdd85b0102b3d96bc9d68639fc4dc29cf549784c84f6038499da4e27b2154bd)`
```
followed by a cascade:
```
Critical task `exex manager` panicked: `exex manager crashed: channel closed`
at crates/exex/exex/src/manager.rs:523:44
```
and then:
```
error determining l2 block at given timestamp component=supernode error="not found"
```
The sequencer shut down mid-test, so the supernode could never sync cross-safe data and the condition in `expiry_test.go:125` never resolved. This looks like an ExEx `proofs-history` ordering bug in the reth build pinned for this job (`reth eb4c15e`, `crates/node/builder/src/launch/exex.rs:130`).
🤖 *Generated by Claude Code*
Contributor guide
Research direction
Start with op-acceptance-tests/tests/interop/seqwindow/expiry_test.go at line 125 and review the CI failure logs for the memory-all-kona-op-reth job. Then inspect the referenced ExEx paths, including crates/exex/exex/src/manager.rs and crates/node/builder/src/launch/exex.rs, using the pinned reth build. Done means TestSequencingWindowExpiry completes without the sequencer panic and the CL sync condition resolves.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, rust
- Domain
- distributed-systems, testing-qa
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100