Fail closed on malformed prune paths#130
Conversation
Propagate SQLite decoding errors while protecting surviving external blob paths so malformed databases roll back before filesystem deletion. Clean rollback-journal sidecars with staged databases and add regressions for both cases.
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: abd0db304a
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
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".
Back up an existing destination database and its SQLite sidecars as a recoverable set before publishing staged output. Move orphaned-blob cleanup into the PII and redact transactions so cleanup errors roll back every logical rewrite. Add restore, replacement, and cleanup-failure regressions.
|
@codex review |
Simulate a failed final rename and verify the prior destination database and every SQLite sidecar are restored without leaving a backup directory.
|
@codex review |
Propagate malformed entry hashes, orphan blob hashes, and pruned external paths instead of silently skipping them. Add regressions proving malformed pruned paths and entry hashes roll back the import transaction.
|
Addressed the remaining fail-open prune finding in stacked PR #131: #131 All three prune row-decoding passes now propagate malformed SQLite values before commit. New regressions cover a BLOB-typed external path on the blob being pruned and a BLOB-typed entry hash; both preserve the import and database/filesystem state. Full validation passes (214 tests). |
|
Codex Review: Didn't find any major issues. Nice work! 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". |
Fail closed on every prune row decode
Summary
Validation
cargo test --all-features --locked(212 passed)cargo clippy --all-features --all-targets --locked(passes; existing warnings only)cargo check --no-default-features --lockedcargo check --no-default-features --features parquet --lockedgit diff --checkContext
Addresses recursive review feedback on #129:
Stacked on #129.