Skip to content

Make snapshot range checksums portable - #198

Draft
danielmawhirter wants to merge 2 commits into
dm-bigquery-test-eligibilityfrom
dm-snapshot-checksums-portable
Draft

danielmawhirter wants to merge 2 commits into
dm-bigquery-test-eligibilityfrom
dm-snapshot-checksums-portable

Conversation

@danielmawhirter

@danielmawhirter danielmawhirter commented Nov 4, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Snapshot range checksums import a Unix-only API, preventing the Windows ingest binary and finished Engine wheel from compiling. Use portable seek/read on each independently opened range file. Preserve checksum order, empty-file CRCs and checked missing/truncated-file errors.

Add an independent CRC oracle over parallel, unaligned ranges crossing the 1 MiB buffer boundary, plus empty, missing, zero-range and short-file controls.

This PR targets dm-bigquery-test-eligibility at cf81f2c5. The stack is #196 → #198 → #169. Current head is 957f9ef17a2bee7d137f1a27de4b104a2ca50f9a; its tree exactly matches the previous prerequisite tree b0e769f5, and its diff from #196 is only the snapshot checksum file. #197 is closed because main removed the vendored epserde source it classified.

Inherited saved-index requirement

Main's #175 removes unused PtrHash remapping and upgrades epserde to 0.13.2/format 2.0. Rebuild existing indexes from source data; do not resume ingestion from an old primary-key-map checkpoint. This compatibility boundary comes from main and applies to this candidate. Frozen 0.8 fixtures now test explicit rejection; they no longer establish old-index readability.

Testing done

  • At current head 957f9ef1, affected snapshot module: 24 passed, zero failures or skips; git diff --check passes. Current-head Testing and Coverage succeeds with 50 successful jobs and one expected duration-recording skip, including native Clippy. The packages job passes the installed Engine suite (1,162 passed, 26 skipped), SDK suite (664 passed, 28 skipped) and Core consumers (358 passed, seven skipped).
  • The entire snapshot checksum source file is byte-identical between this head and integrated candidate 96a65382. That candidate's final platform qualification succeeds: four wheel builders, twelve CPU wheel qualifications and 176 resolver combinations, with 21 successful jobs and two release-only skips. Its Windows MSVC build verifies the finished wheel and passes ten path-safety tests plus the unsupported-profiling test. This is integrated-candidate platform proof; the prerequisite head's own hosted proof is the current Testing run above.
  • The exact-function Windows GNU cross-check also reproduces those compiler errors before the change and passes afterward; it is narrower than the complete MSVC wheel build.
  • Scoped non-mutating rustfmt reports seven unchanged formatting differences inherited from main and no new formatting differences.

The BigQuery test-eligibility correction is inherited from #196. Current-head config/connector CI passes with 1,892 passed, 64 skipped and one expected failure under KUMO_RUN_GCP_TESTS=0; the historical a1490204 restricted-identity failures preceded this corrected base. Current-head public connector CI passes all nine jobs and lint CI passes all eleven.

Change map

File-by-file rationale and verification.

@copy-pr-bot

copy-pr-bot Bot commented Nov 4, 2026

Copy link
Copy Markdown

Auto-sync is disabled for draft pull requests in this repository. Workflows must be run manually.

Contributors can view more details about this message here.

@danielmawhirter
danielmawhirter temporarily deployed to gha-kumo-workflow-tests November 4, 2026 17:41 — with GitHub Actions Inactive
@coderabbitai

coderabbitai Bot commented Nov 4, 2026

Copy link
Copy Markdown

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

@danielmawhirter

danielmawhirter commented Nov 4, 2026 •

Copy link
Copy Markdown
Collaborator Author

Observed failure: Windows wheel compilation fails with E0433/E0599 in snapshot_range_checksums. Each parallel range already owns an independent file, so one portable seek/read path preserves cursor isolation. All twenty-four affected tests pass. The final integrated 96a65382 candidate builds the actual MSVC wheel and passes ten path-safety tests plus the unsupported-profiling test; its entire snapshot checksum source file is byte-identical to this prerequisite head. Integrated platform CI passes four builders, twelve CPU qualifications and 176 resolver combinations; those results are scoped separately from this head's own hosted CI in the PR body.

This one-file PR at 957f9ef17a2bee7d137f1a27de4b104a2ca50f9a targets the corrected BigQuery eligibility branch cf81f2c5. The stack is #196 → #198 → #169; #197 is closed following main's vendor removal. The current tree exactly equals historical prerequisite tree b0e769f5. Current-head Testing CI completes with fifty successful jobs and one expected duration-recording skip; all nine public connector and eleven lint jobs pass. The installed Engine and SDK suites pass 1,162 and 664 tests; the config/connector shard passes under the inherited disabled-GCP guard. Main's epserde 0.13.2/format 2.0 requires rebuilding existing indexes and rejects old primary-key-map checkpoints. That inherited compatibility boundary is documented in the PR body.

Change map

File Function / scope What changed Why
packages/diskgraph/diskgraph-ingest/src/snapshot_mirror.rs snapshot_range_checksums and its unit tests Replace Unix-only positioned reads with seek/read on each independently opened range file; add independent CRC, parallel range and error regressions. Restore Windows wheel compilation while preserving checksum bytes, range order, empty data and checked failures; 24 affected tests and all-target Clippy pass.

@danielmawhirter
danielmawhirter changed the base branch from main to dm-bigquery-test-eligibility November 4, 2026 18:43
@danielmawhirter
danielmawhirter temporarily deployed to gha-kumo-workflow-tests November 4, 2026 18:43 — with GitHub Actions Inactive

This branch was previously deployed

1 inactive deployment
gha-kumo-workflow-tests — 957f9ef1 Deployed Nov 4, 2026 by danielmawhirter via import #1480
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