fix: sync getBulk correctly decodes mixed hashed and plain keys#195
Conversation
Refactor getBulkData to split hashed vs plain keys and route each set through the appropriate transcoder path, fixing incorrect decoding when a single bulk request contains both hashed and unhashed keys. Re-enable the previously disabled getBulk test path in EVCacheTestDI. Co-authored-by: Bihao Xu <bxu@netflix.com>
Code ReviewSummaryRefactors the synchronous Approval RecommendationComment — no blocking issues. The mixed-key decode, the transcoder-fallback port from #184, and the chunked+hashed read path were all independently verified correct. Consider the null-guard suggestion and the test/observability considerations at your discretion. Issues FoundSuggestions
Considerations
Pre-existing IssuesExists on unchanged code (introduced in #181 for the async path), now also reachable from the sync path. Not reachable through normal flow since memcached only returns requested keys — listed for awareness.
Questions for the AuthorNone — the chunking-routing design and the chunked+hashed read path were verified correct (chunks are stored under Notes
Generated with pr-review-plugin (Claude + Codex) |
Code ReviewSummaryRe-review of the delta since the last review (1 new commit, no new discussion), now cross-checked against the team's EVCache review guidelines. The new commit Approval RecommendationComment — the NPE fix is verified correct and the collision-drop change is on-standard. Items below are non-blocking. Issues FoundConsiderations
Documentation Suggestions
Pre-existing IssuesThese exist on unchanged code and predate this commit; listed for awareness only.
Questions for the AuthorNone — the open questions about the drop-vs-null intent are covered by the Documentation Suggestion above and have no functional impact (downstream normalization). Notes
Generated with pr-review-plugin (Claude + Codex) |
Code ReviewSummaryThird (delta) review. The delta since the last review is a single commit ( Approval RecommendationApprove — the mixed-key decode fix has been independently verified correct across three reviews, the chunked + hashed read path is now structurally asserted (plain path) and round-trip-verified (hashed path), and the previously-flagged NPE and observability gaps are closed. The single consideration below is trivial and non-blocking. Issues FoundConsiderations
Questions for the AuthorNone. Notes
Generated with pr-review-plugin (Claude + Codex) |
242cce8 to
79d1d73
Compare
Summary
decoding when a single sync getBulk request contains both hashed and unhashed keys.
Test