ethereum-optimism / ethereum-optimism/optimism

kona-node: check whether follow-source requests can block sequencing (op-node liveness bug fixed by #21759)

Open
#21,880 0 comments 0 reactions 1 assignee Claimed by @pcw109550 View on GitHub
Dominant language
Go
Stars
6.5k
Forks
4k
Avg merge
2d 15h
Merged PRs (30d)
145

Description

## Summary

#21759 fixed a liveness bug in op-node's follow-source (light CL sequencer) mode: `followUpstream` executed its upstream status request plus up to four sequential L1 lookups synchronously on the driver's main event loop. When the follow-source endpoint became unresponsive, every follow tick blocked the loop for the full RPC client call timeout (10s default), freezing unsafe block production for the duration.

This issue tracks verifying whether kona-node has the same problem. **No investigation has been done yet** — this is a tracking issue for that check.

## What to check

- Does kona-node implement the follow-source / light CL sequencer mode (sequencing unsafe blocks with L1 derivation disabled, importing safe/finalized state from an external CL — op-node's `--syncmode` follow path, introduced in #18571)?
- If not implemented yet: note where it is planned, and make sure the design keeps upstream requests off the sequencing-critical path from the start.
- If implemented: are the upstream status request and the L1 origin validation lookups executed on a task/actor that also gates block production (the equivalent of op-node's driver event loop)? A stalled or slow follow-source endpoint must never delay unsafe block production.
- While there: check whether any other periodic external RPC sits on kona-node's sequencing hot path with the same blocking pattern.

## Regression coverage

#21759 also added acceptance-test infrastructure for exactly this failure mode:

- `sysgo.StallableProxy` / `StallableFollowSourceProxies` — a reverse proxy that holds follow-source requests open on demand
- `dsl.L2ELNode.KeptAdvancing` — asserts continuous head advancement (a stall followed by a catch-up burst fails)
- `TestLightSequencerKeepsSequencingWhenFollowSourceStalls` (`op-acceptance-tests/tests/supernode/interop/follow_l2/stalled_source_test.go`)

If/when kona-node supports this mode under devstack, the same test should run against a kona-node light sequencer (or an equivalent test should be added).

## References

- Fix: #21759 — op-node: move follow-source requests off the driver loop
- Original feature: #18571 — op-node: Light CL: Always Follow Source using CL

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.