Skip to content

core/filtermaps: fix snapshot data sharing and optimize row mapping cache#34661

Closed
MiraWells wants to merge 1 commit intoethereum:masterfrom
MiraWells:fix/filtermaps-snapshot-and-cache
Closed

core/filtermaps: fix snapshot data sharing and optimize row mapping cache#34661
MiraWells wants to merge 1 commit intoethereum:masterfrom
MiraWells:fix/filtermaps-snapshot-and-cache

Conversation

@MiraWells
Copy link
Copy Markdown

Clone blockLvPtrs in makeSnapshot to prevent shared slice mutation.
Reuse BasicLRU on mapRenderer struct instead of allocating a new
mutex-protected Cache per map, reducing GC pressure and eliminating
unnecessary synchronization overhead.

These changes address a fatal crash (unexpected fault address /
signal 0xc0000005) observed during concurrent state snapshot
generation and filter map tail indexing on large datasets (~37 GiB).

…ache

Clone blockLvPtrs in makeSnapshot to prevent shared slice mutation.
Reuse BasicLRU on mapRenderer struct instead of allocating a new
mutex-protected Cache per map, reducing GC pressure and eliminating
unnecessary synchronization overhead.
@MiraWells MiraWells requested a review from rjl493456442 as a code owner April 4, 2026 21:47
@MiraWells
Copy link
Copy Markdown
Author

Closing this PR. The crash was root-caused to a known Go 1.26.0/1.26.1 runtime bug on Windows (golang/go#77975), not a code issue in filtermaps. The fix is in the Go release-branch.go1.26 and will ship with Go 1.26.2.

@MiraWells MiraWells closed this Apr 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant