Repository navigation
fix(getLogs): guard merge boundaries and preserve complete log results - #428
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
@codex review |
|
Codex Review: Didn't find any major issues. Another round soon, please! ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
|
@codex review |
|
Codex Review: Didn't find any major issues. 🚀 Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Hash-based getLogs could lose block identity after a reorg, mixed DB/fullnode reads could combine different forks, and indivisible DB queries stopped before returning all logs. This change preserves block identity, checks the merge boundary around the node log read, and returns complete single-unit results.
requestControl.getLogs.checkMixedSourceConsistencydefaults to true; deployments syncing finalized data on the same chain can disable the mixed-source checks. Archive-source merges remain outside this protection. Independent RPC checks cannot exclude ABA reorgs or guarantee completeness for a requested range above the fullnode head. Topics compatibility and scanLogs behavior are unchanged.Validation on the final boundary-check implementation:
go test ./...go test -race ./rpc/handler ./store/mysqlgit diff --checkPermanent tests cover pre/post boundary mismatches and missing metadata, ordinary RPC errors, repeated/alternating conflicts, DB boundary refresh, cancellation, empty results, unchanged requested ranges, hash routing, complete 10,002-row reads and original-request limit classification. Existing Marshal comparisons and bounded fuzz tests cover JSON size calculations.
This change is