op-acceptance-tests: Edge cases with engine APIs #18001
Open
+424
−13
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Adds acceptance tests to lock down the edge cases with engine API interactions, between CL and the EL. All are related with the removal of RR Sync.
Tests
TestELP2PFCUInvalidHashNo action items.
TestSafeDoesNotAdvanceWhenUnsafeIsSyncing_NoELP2PAction item: We may still want to advance the safe head while we are EL Syncing, and this test shows op-node might not advance unsafe heads due to
FCUbehavior. Check op-node behavior.TestInvalidPayloadThroughCLP2PThe CL and the EL will not advance its unsafe heads if the payload is INVALID. More precisely, if the
engine_newPayloadreturned INVALID, there will be no furtherengine_forkchoiceUpdatecall, as well as NOT bumping the unsafe head. So we never update the CL's unsafe head if the result is INVALID. In other words, unsafe head which can be queried from CL's engine API responses were not INVALID, but rather VALID or SYNCING.Related: #17627 (comment)
TestCLUnsafeNotRewoundOnInvalidDuringELSyncop-node does not rewind unsafe head which was advanced while EL Syncing when
engine_newPayloadresponse is INVALID. For example consider the following scenario:So when INVALID is observed to the op-node while EL Syncing(VALID -> SYNCING -> ... -> SYNCING -> INVALID), we may need to rewind the op-node's unsafe label to N, not staying at N + 4.
Action item: We may patch op-node to rewind the unsafe head when INVALID encountered while EL Syncing
Related: #17627 (comment)
We may choose one of
Additional context
These tests were added to lock in the behavior while discussing the edge cases of EL Syncing. Tracked at #17694