Open sebastianst opened 1 month ago
Hey @sebastianst, your analysis is correct. I also reported this about two weeks ago btw :grimacing: See the issue description for an easy way to reproduce it as well https://github.com/ethereum-optimism/optimism/issues/12041
Hey @bearpebble sorry your report got missed! I've attempted a simple fix with https://github.com/ethereum-optimism/optimism/pull/12258 and created an op-node docker image with tag v1.9.4-dev.0
. Feel free to also chime into the discussion on Discord.
to add, we've been experiencing sequencer halt also when l1 becomes unavailable for more than a sequencer drift time emitting a L1TemporaryErrorEvent
not sure if being masked by an enginetemporaryerror. will try to reproduce using the latest build by @sebastianst
From an internal report by @mdehoog:
My initial take: I think what happens is that when the sequencer enters
startBuildingBlock
, the building state ind.latest
is cleared because of a previousd.onPayloadSuccess
. It then hits a temp error and returns, but it never set any field in thed.latest BuildingState
, which only happens at the end right before emitting aBuildStartEvent
. This temp error then lands inonEngineTemporaryError
where it checks if there's any non-zeroBuildState
atd.latest
to make the decision whether the "sequencer is using the engine", and then returns early because it's still clear, so no future action is scheduled.