Repository navigation
fix(projection): isolate SQLite TEMP preflight and integrity fixes - #4822
ScriptedAlchemy wants to merge 5 commits into
Conversation
Refs #4152 Exercise MEMORY and FILE TEMP databases under the shipped allocator. Check live main/TEMP pages and exact committed bodies across rollback, cross-thread frees, allocator collection, sorting and connection close. Verify real Linux unlinked files against the production spill census. Keep the glibc routing control and run integrity checks on other Unix hosts. The local SQLite 3.46.1 SQL/FD probe passed both modes; repository Bazel, mimalloc and native macOS execution remain pending.
Refs #4152 Unchanged compacted foreign outputs were compared against their shortened placeholders instead of their full staged bodies. Hydrate canonical body candidates through the existing verified reader in bounded keyset pages, without restoring connection-local TEMP materialization or trusting only a stored hash. Preserve existing ownership and Hermes collision rules. Add a registered-SQLite regression for 129 matching canonical bodies, a later-page conflict, corrupt and missing persisted bodies, and rollback preserving committed messages and database integrity. The independent SQLite SQL/hydration probe passes these scenarios. Repository Bazel and native macOS execution remain pending.
Refs #4152 Match the Bazel rustfmt check on both issue-specific files without changing the production preflight or altering test assertions.
|
ScriptedAlchemy
left a comment
There was a problem hiding this comment.
Refs #4152 — independently checked the exact four-commit master...a9c68c2 ancestry and two-path patch after the unrelated Refs #4532 test commit landed on the prior #4812 branch. No peer code is present in this clean PR and no history was rewritten. Reviewed the indexed preflight ownership predicates, absence/staged-creation collision refusal, verified canonical-body hydration and keyset page boundary; the new 129-row test exercises matching compacted bodies, later-page divergent tails, missing/corrupt canonical bytes, rollback and integrity. The allocator integration test retains the glibc positive control and exercises live FILE/MEMORY TEMP pages, rollback, sorter lifetime, FD census and durable reopen. Bazel previously passed both affected targets on this identical commit in run 42468670167; individual libtest counts, full CI green and native macOS acceptance are not claimed. New PR CI 42529505627 is queued. Not an approval or merger clearance: the original allocator page-corruption cause, other held writer TEMP sets, storage bound and safe reclamation remain outstanding; #4152 stays open. #4776 must remain DRAFT and unmerged, and the mixed duplicate #4812 is held DRAFT for separate owner disposition.
|
Refs #4152 — exact-head validation update for isolated PR #4822 at CI 42529505627 completed failed. The Linux fleet executed 183 targets: 182 passed, one failed. Both changed-area Bazel targets passed again on this exact SHA:
The sole failed target is The Windows workspace build/type-check passed on this run (30,944 Bazel actions), but its native-test step was skipped; macOS was skipped. Do not claim native-platform test acceptance. Repository gates, Clippy and Dashboard passed. No source change, rerun of known-red other-owner tests, PR merge, or CI bypass is warranted here. #4152 remains OPEN: the original SQLite page overwrite's cause has not been demonstrated; removing a TEMP table does not reclaim its unlinked file until its owner connection retires, while resetting |
Scheduler CI prerequisite fixed and inherited — Refs #4152The three automation_runner_test failures were caused by fixtures reaching the intentional backend_unconfigured prefilter before their intended schedule/lock checks. I independently reviewed the existing one-file repair in #4821 rather than duplicating it or changing production admission. #4821 was merged with an expected-head check at adc55f8, producing master commit 83694e0. Its exact-head workflow_dispatch run 42527367514 completed successfully; the automation suite reported 45 passing tests. The fixture repair preserves the schedule/lock assertions and adds unconfigured-refusal, deduplication and same-occurrence recovery coverage without provider execution or an effectful terminal. Published merge commit 897390f on this PR using Fresh exact-head CI 42540616028 is queued. The scheduler repair's successful run and the earlier SQLite target passes are evidence for their respective heads, not a claimed pass of this newly combined head. No CI checks, timeouts or assertions were relaxed; no local Cargo or Rust test execution is claimed. #4822 remains open and unmerged pending its fresh checks and review. #4152 remains open: original page-corruption causality, remaining spill bounds, safe live-writer reclamation and applicable native coverage still require proof. #4776 / Kev holds, release #4763, other owners' branches and task schedules are unchanged. |
Focused SQLite TEMP storage repair — Refs #4152
This is the reviewable issue-only successor to #4812 at its last #4152 commit
a9c68c2ba2b203e2a1e7d005a409f89b81c41274, before the later separateRefs #4532automation-scheduler test commit was appended there. The four #4152 commits and both modified paths are preserved byte-for-byte, with their original ancestry based onmaster91c72aba7750a398dd28e83d64bf0c6d6fef4172: no rebase, rewrite, forced update or peer commit removal. The other PR/branch is left intact; do not merge duplicate changes from both.Production changes
observation_projection_rebuild_preexisting_outputsTEMP materialization from the persistent projection writer's collision preflight. Use indexed durable staged/provenance/active-output checks before changing ownership. Repeated activation checks no longer grow the named TEMP database on the writer.placeholder_textwhile the staged row contained the full body. The new indexed, bounded keyset preflight hydrates eligible protected bodies with the existing integrity-verifying reader. Corrupt or missing body bytes fail closed; foreign and Hermes ownership rules remain.Nonvacuous regressions
PRAGMA integrity_check.Verification / merge hold
The precise two changed targets ran successfully with noncached Bazel results on the original clean code head
a9c68c2in CI run 42468670167://crates/tracedecay-cli:c_library_allocatorand//crates/tracedecay-global-db:unit_test. Later mixed-head CI run 42525786166 likewise passed those two targets, but has unrelated runtime acceptance failures. These are target passes, not independently printed individual test counts; the new PR needs its own exact-head CI, review, and applicable Windows/macOS coverage.LSP acknowledgement verification
At
897390ff, the Linux fleet passed 140 of 141 runtime acceptance cases. The production LSP journey reportedDeadlineExceededwhile acknowledging a frame. The artifact records the client error without a server-phase timing. Linux fleet artifactThe same journey passed on this PR’s preceding head
a9c68c2b, where all 141 runtime acceptance cases passed on Linux. The journey, daemon acknowledgement handler, client transport and durable receipt writer have identical source on both heads. A subsequent Linux run atb0f6277dalso passed all 141 cases with that source. Earlier run on this PR · Subsequent Linux artifactThe unmodified
897390ffjourney passed on native macOS. Three additional runs with temporary phase tracing passed and recorded 60 acknowledgements. The client round trip had a median of 11.27 ms and a maximum of 23.10 ms. Durable receipt recording had a median of 10.23 ms and a maximum of 22.70 ms, including one file sync and one parent-directory sync per acknowledgement. These measurements leave the Linux timeout unattributed.Partial fix only. The original 2026-10 in-memory page overwrite cause is still unproven; merged #4173 removed an allocator owner-heap UAF, not proved TEMP corruption causality. Other persistent TEMP ownership tables and physical-spill-census changes remain on held mixed DRAFT #4776—do not copy, merge, or auto-merge that work. Safe live connection reclamation and end-to-end storage bounds need further acceptance evidence.
#4152stays open until all requirements are proven onmaster.No Cargo, Kody, Copilot, delegated agents, CI weakening, protected integration/release changes, production/infra/tags or credentials.