fix: avoid concurrent map writes in ProcessResult#60
Open
mmsqe wants to merge 2 commits intoskip-mev:mainfrom
Open
fix: avoid concurrent map writes in ProcessResult#60mmsqe wants to merge 2 commits intoskip-mev:mainfrom
mmsqe wants to merge 2 commits intoskip-mev:mainfrom
Conversation
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.
loadtest sometimes fails due to
fatal error: concurrent map writesfrom ProcessResultNote
Medium Risk
Touches concurrent metrics collection logic and adds synchronization/closure fixes; low functional surface area but mistakes could still skew load test results or reintroduce data races under high concurrency.
Overview
Prevents
fatal error: concurrent map writesinProcessResultsby guarding sharedreceiptsmap writes with a mutex and by passing per-iteration values (blockNum, precomputed index) into goroutines to avoid loop-variable capture issues.Fixes a similar goroutine capture bug in concurrent receipt fetching (
getReceiptsForBlockTxs) and adds a stress-style test (TestProcessResultsConcurrent) using a simulated Ethereum backend to exercise concurrent receipt collection repeatedly. Updates module deps to includegolang.org/x/syncdirectly and refreshes indirect dependency versions.Written by Cursor Bugbot for commit 9cb4279. This will update automatically on new commits. Configure here.