Repository navigation
fix(storage): report incomplete SQLite temp-spill census - #4730
Closed
ScriptedAlchemy wants to merge 1 commit into
Closed
ScriptedAlchemy wants to merge 1 commit into
ScriptedAlchemy wants to merge 1 commit into
Conversation
|
This was referenced Nov 3, 2026
Owner
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Root cause
Refs #4152 and #4099 (partial storage-footprint observability).
The existing Linux
/proc/self/fdSQLite temp-spill census silently discarded directory-entry, symlink-target and metadata read failures, then returnedunavailable_entry_count: 0. If an FD could not be inspected, the returned byte count was only a lower bound but Doctor could label that within-budget countHealthyCompleteCoverage. This is misleading precisely when unlinkedetilqs_*files are being investigated.Fix
NotFoundFD-link inspection errors and non-NotFoundmetadata failures in the existing footprint'sunavailable_entry_count; do not add a parallel census or bypass its typed finding authority.NotFoundis not an open-space leak.footprint_findingsmaps an incomplete within-budget census toPartial, while a lower bound already above budget remainsDegraded.Regression coverage
A Unix fixture passes a controlled FD directory through the production census and actual Doctor finding projection. One recognized unlinked SQLite temp file contributes 24 MiB, one unreadable FD entry makes coverage partial, and a vanished descriptor contributes neither space nor false unavailability. With a 1 MiB bound, the same incomplete census still reports
Degraded. The existing complete-coverage and over-budget temp-spill tests remain intact.Validation
Inspected the production census, Doctor caller, and typed
bounded_findingmapping; verified this isolated one-file change against the current master base, including the published source blob and unchanged other paths. No Rust compilation, rustfmt, or regression execution was possible locally: this runner has no checkout or Bazel/Rust toolchain. Hosted CI should run//crates/tracedecay-maintenance:unit_testand the repository formatting gate on this PR's isolated head before merge. No live Linux temp-spill reproduction or performance/size improvement is claimed.Remaining issue scope
This improves the truthfulness of Linux temp-spill census coverage, not SQLite TEMP memory corruption, source attribution of SQL spills, macOS unlinked-file measurement, cleanup, the 153 GB profile-retention incident, or the requested 24-hour bounded-growth acceptance. Both issues remain open. The independent PR repair/merge automation owns CI and merging.