From 476ecbc571e861be99af0a7029a2816f12a7595c Mon Sep 17 00:00:00 2001 From: 0xSHKWON Date: Wed, 5 Aug 2026 15:02:24 +0900 Subject: [PATCH] core: surface database errors in parallel block execution (#35461) --- core/state_processor_parallel.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/core/state_processor_parallel.go b/core/state_processor_parallel.go index 224d27e558..9e70fadf7e 100644 --- a/core/state_processor_parallel.go +++ b/core/state_processor_parallel.go @@ -164,6 +164,9 @@ func (p *StateProcessor) processParallel(ctx context.Context, block *types.Block } blockAccessList.Merge(PreExecution(ctx, block.BeaconRoot(), parent, config, preEVM, header.Number, header.Time)) preEVM.Release() + if err := preState.Error(); err != nil { + return nil, fmt.Errorf("database error in pre-execution system calls: %w", err) + } systemExec += time.Since(preStart) // Execute the transactions concurrently. Each transaction runs against its @@ -224,6 +227,9 @@ func (p *StateProcessor) processParallel(ctx context.Context, block *types.Block } blockAccessList.Merge(postBAL) p.chain.Engine().Finalize(p.chain, header, postState, block.Body(), postIndex, blockAccessList) + if err := postState.Error(); err != nil { + return nil, fmt.Errorf("database error in post-execution system calls: %w", err) + } systemExec += time.Since(postStart) // Join the concurrent root computation. @@ -320,6 +326,9 @@ func (p *StateProcessor) executeTransactionsParallel(block *types.Block, parentR if err != nil { return fmt.Errorf("could not apply tx %d [%v]: %w", i, tx.Hash().Hex(), err) } + if dbErr := sdb.Error(); dbErr != nil { + return fmt.Errorf("database error while applying tx %d [%v]: %w", i, tx.Hash().Hex(), dbErr) + } results[i] = txExecResult{ receipt: receipt, accessList: accessList,