generated from erix/meta
[BUG] Integration fixture readers leave file handles open despite successful exits #71
Labels
No labels
bug
ci
docs
duplicate
enhancement
help wanted
invalid
performance
phase-6
question
refactor
security
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
erix/integration#71
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
The full helper suite emits 36
ResourceWarningdiagnostics from 15 commands even though their exit statuses are zero. Unclosed fixture files violate the required warning-free gate; Python finalizer diagnostics cannot be accepted solely from process status.Reproduction
The affected shell fixtures are unchanged from Integration
dff878dd3545c4751b3c05d37b2bdd5e21cce548. Select the documented original tools and run the maintained helper suite withPYTHONWARNINGS=error, or exercise a representative affected command:Inspect the retained stderr as well as the exit code.
Expected and actual behavior
Expected: fixture JSON, TOML and binary readers/writers close their selected files deterministically on success and failure, and helper validation emits no resource warnings.
Actual: inline Python uses
json.load(open(...)),tomllib.load(open(...))and unowned direct reads/writes. Python reports unclosed file objects during finalization, including with warnings promoted to errors; the helper process can still return zero. The complete local suite retains 36 such diagnostics across 15 commands. A sibling fixture contains the same loader pattern even though that branch did not emit a warning in this run.Environment and identity
Linux x86-64, the maintained original helper/tool selections and Python warning errors. The unchanged fixture sources come from Integration
dff878dd3545c4751b3c05d37b2bdd5e21cce548; the observation occurred while validating the startup-contract correction. All original command/status/stream bytes and per-line warning classification are retained. This is a host fixture resource-lifetime defect; no guest capability leak or shared CI timeout cause is inferred.Evidence and prior checks
All 170 maintained helper commands returned zero, but the final stream audit correctly refused warning-free publication. Affected fixtures cover acceptance/dependency closure, executable inventories, image/lookup/object-store manifests, boot-filesystem closure, RTC and native application packaging, and porting-wave gates. Original warnings remain preserved independently of later changed-input validation.
Tracking
Replace unowned fixture opens with scoped stream custody or closing file helpers and revalidate every altered fixture under the same warning policy. Keep all fixture assertions and source/authority checks. Include actual stream diagnostics in acceptance, not only exit statuses. Related: startup admission 69, audit 11, WIP PR 12 and Phase 6 completion.
Signed startup source/feature correction — 21 September 2026:
Integration fd8a5cf0dbcf9a9cd3ddb6038370295e6ec2c8fa requires the complete runtime transition in both Rootd and its orchestration policy. The direct Kernel builder records the actual local compiler feature closure, compares original source before and after linking, and includes source identity in its cache key. Contract v2 requires the Kernel revision/tree and actual artifact/metadata binding; old receipts, synthetic wrappers and modified source cannot acquire this declaration. This remains local observed provenance, not publisher authentication or complete compiler closure.
All 171 maintained helper commands have successful, warning-free final evidence. Eight new Kernel controls cover original trees, actual cfg closure, changed inputs, hidden/redirected source, custom builds, synthetic wrappers and cache identity. Sixteen fixture readers/writers now close files explicitly; bug 71 retains the original 36 resource warnings from 15 exit-zero commands. The previously unlisted filesystem-mirror fixture now participates in CI. Earlier Markdown failures also remain retained. Formatting, source policy and final Markdown pass; identical Rust inputs retain four strict orchestration matrices.
The technical manual update 76672dff8ff83 passes 45 tests, 2,431 pages, 450,096 word bounds and both changed-page visual reviews. Original Docs 1001/1002 passes from four complete logs totaling 774,770 bytes. Each manual log retains its earlier reference-convergence warnings; final LaTeX passes have no warnings or layout overflow.
A fresh ordinary package from the signed Integration runner is under construction. Actual corrected image admission and startup capture remain pending under bug 69; no threshold or 120/15/10 capture limit changes. Original Integration 1705/1706 is monitored separately. Native external Rust/LLVM/runtime rebuilding and both complete EriX guest build generations remain mandatory.
Actual original-source startup capture — 21 September 2026:
Signed Integration fd8a5cf0dbcf builds the ordinary image without warnings and its actual Kernel-bound contract passes preflight. The VM and complete observer finish with all required stages, zero dropped records, empty QEMU stderr, successful cleanup and unchanged source image. Admission bug 69 is resolved independently of performance.
The strict timing gate fails: root-to-final readiness 5.974133160 seconds (limit 5), largest service interval 3.098663889 (limit 1), final readiness to caret 1.262470092 (limit 1), and four native commands 4.769234506 (limit 2). The maintained offline profiler identifies RTC-provider to TTYD as the largest service interval, followed by roughly one-second Powerboxd and Launchd intervals. These are host observation windows, not loader-only causal measurements. The new canonical timing bug retains the exact image, timing and command identities and every original limit. Host/toolchain description fields remain explicitly incomplete; no provenance or speedup is invented.
The sixteen helper stream-custody corrections also pass all changed controls; all 171 selected helper commands have successful warning-free final evidence. Bug 71 is resolved with its original 36 warnings retained. Full CI for 1705/1706 remains separately monitored. No startup-performance or full native toolchain/EriX guest-build acceptance is awarded.