ethereum-optimism / ethereum-optimism/optimism
kona-node: --sequencer.max-safe-lag and --conductor.rpc.timeout are parsed but silently ignored
- Dominant language
- Go
- Stars
- 6.5k
- Forks
- 4k
- Avg merge
- 2d 15h
- Merged PRs (30d)
- 145
Description
## Summary
kona-node accepts two sequencer CLI flags that have no effect: they are parsed into `SequencerArgs` but never make it into `SequencerConfig`, so an operator setting them gets silent no-ops instead of an error.
| Flag | Env | Declared | Dropped |
|---|---|---|---|
| `--sequencer.max-safe-lag` | `KONA_NODE_SEQUENCER_MAX_SAFE_LAG` | [`flags/sequencer.rs#L24-L31`](https://github.com/ethereum-optimism/optimism/blob/68b009443f/rust/kona/bin/node/src/flags/sequencer.rs#L24-L31) | [`SequencerArgs::config()`](https://github.com/ethereum-optimism/optimism/blob/68b009443f/rust/kona/bin/node/src/flags/sequencer.rs#L70-L77) |
| `--conductor.rpc.timeout` | `KONA_NODE_CONDUCTOR_RPC_TIMEOUT` | [`flags/sequencer.rs#L50-L57`](https://github.com/ethereum-optimism/optimism/blob/68b009443f/rust/kona/bin/node/src/flags/sequencer.rs#L50-L57) | same; [`SequencerConfig`](https://github.com/ethereum-optimism/optimism/blob/68b009443f/rust/kona/crates/node/service/src/actors/sequencer/config.rs#L10-L19) has no timeout field and [`ConductorClient::new_http`](https://github.com/ethereum-optimism/optimism/blob/68b009443f/rust/kona/crates/node/service/src/actors/sequencer/conductor.rs#L50-L53) builds the client without one |
`grep -rn 'max_safe_lag\|conductor_rpc_timeout' rust/kona` finds no reader outside the flag definitions.
## Impact
- `--conductor.rpc.timeout` defaults to 1s and is documented as a timeout, but the conductor `commit_unsafe_payload` call on the sequencer's seal path ([`sequencer/actor.rs#L197-L204`](https://github.com/ethereum-optimism/optimism/blob/68b009443f/rust/kona/crates/node/service/src/actors/sequencer/actor.rs#L197-L204)) runs with no timeout at all — a slow or hung conductor blocks block production indefinitely.
- `--sequencer.max-safe-lag` is a silent no-op; the feature itself is tracked in #22266. Until it is implemented, the flag should either be removed or fail loudly.
## Suggested fix
- Thread `conductor_rpc_timeout` into `SequencerConfig` and apply it to the conductor client (or wrap the RPC calls in `tokio::time::timeout`).
- Either implement `max_safe_lag` (#22266) or drop the flag; do not keep accepting it.
Related: #22266, #21906.
🤖 *Co-created with Claude Fable 5*
Contributor guide
Assessment
This issue has not been assessed yet.