fix(pegboard): skip protocol version keys in runner pool backfill#4620
Conversation
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
This stack of pull requests is managed by Graphite. Learn more about stacking. |
PR Review: fix(pegboard): skip protocol version keys in runner pool backfillSummaryThis PR fixes a bug in The root cause is a key overlap:
Since the range scan covers the entire CorrectnessThe fix is correct. The unpack of Updating IssuesPre-existing stale log message (not introduced here, but worth fixing): Line 92 says No tests added: The checklist item for tests is unchecked. While backfill migrations are harder to test, a snapshot-based integration test (using Fragility of the tuple-shape filter: The skip logic detects protocol version keys by checking for a 3-element tuple suffix matching An allow-list approach (only process keys that match the // Skip anything that is not a plain DataKey (2-element suffix).
if runner_config_subspace.unpack::<(Id, String)>(entry.key()).is_err() {
continue;
}
entries.push(tx.read_entry::<keys::runner_config::DataKey>(&entry)?);If the unpack is strict (no trailing bytes allowed), this makes the intent clearer and is more forward-compatible. VerdictThe fix is targeted and correct. Main follow-ups: replace the stale log message, and consider flipping the filter to an allow-list for more forward-compatible safety. Generated with Claude Code |
412eec8 to
0aff89a
Compare

Description
Please include a summary of the changes and the related issue. Please also include relevant motivation and context.
Type of change
How Has This Been Tested?
Please describe the tests that you ran to verify your changes.
Checklist: