execution/execmodule, node: remove the FCU background flush/commit path - #23051
Open
AskAlexSharov wants to merge 1 commit into
Open
execution/execmodule, node: remove the FCU background flush/commit path#23051AskAlexSharov wants to merge 1 commit into
AskAlexSharov wants to merge 1 commit into
Conversation
--fcu.background.commit has been default-off since it landed (#18756) and was never enabled on any release branch: it needs the rawdb API to go through execctx and the Coherent cache revived for rpcdaemon before it is correct. Meanwhile FCU N returns before its commit lands, so FCU N+1 reads stale state from the DB — the reason its own notification-dispatch test was skipped. Drop the flag, the config field and the bg-commit branch in updateForkChoice. Flush+commit is now unconditionally inline; background prune is untouched. runPostForkchoice loses its commit half and its now-unused parameters. The two bad-block-recovery tests collapse into one (both cleanup branches are now the same path), and the skipped TestNotificationDispatchBackgroundCommit goes away with the feature it covered.
AskAlexSharov
requested review from
bloxster,
mh0lt and
yperbasis
as code owners
August 6, 2026 04:01
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
--fcu.background.commithas been default-off since it landed in #18756 (2026-01-23) and was never enabled on any branch —release/3.4,release/3.5,release/3.6andmainall carryFcuBackgroundCommit: false.It can't be turned on as-is: FCU N returns before its commit lands, so FCU N+1 reads stale state from the DB. That is why its own
TestNotificationDispatchBackgroundCommitwas skipped, and why the default carries the "needs rawdb API via execctx + Coherent cache revived for rpcdaemon" note. Removing it instead of carrying a dead branch through every FCU change.What goes
--fcu.background.commitflag andethconfig.Config.FcuBackgroundCommitupdateForkChoice: roTx/SD ownership transfer, the goroutine'sPublishOverlay(nil)signal, and the extracloseModuleContexton the bad-block pathrunPostForkchoice's commit half, so it takes onlyinitialCycle(sd,bgRoTx,finishProgressBefore,isSyncedwere all bg-commit-only)execmoduletester.WithFcuBackgroundCommitWhat stays
Flush+commit is now unconditionally inline — identical to the behaviour every node already had. Background prune (
--fcu.background.prune, default true) and--sync.parallel-state-flushingare untouched, as is thepublishedSDfallback, which the foreground path also uses while a commit is in flight.Tests
TestInsertBlocksWithBatchedFCU_BadBlockRecovery_{Foreground,Background}collapse into one — both cleanup branches are the same path now. Thebg-commitcase drops out ofTestReorgBackAndForwardIntoCanonicalChain, and the skippedTestNotificationDispatchBackgroundCommitgoes with the feature it covered.go vet ./...compiles clean;./execution/execmodule/...,./node/ethconfig/...,./node/cli/...pass.The
docs/site/versioned_docs/version-v3.4copy keeps the flag on purpose — 3.4 still has it.