[BUG] Drop-local-cap window fixture inherits the previous private process #29
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/kernel#29
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 existing drop-local-cap window unit test can inherit the previous test's current private process while replacing the CSpace table. Its capability setup then targets a CSpace absent from the new table and fails before testing slot-window rejection. This is a host fixture isolation defect; no native capability-admission failure is established.
Reproduction
At Kernel
71e2ca157d9a3fc604f212eda86d1157bbd3a46b, original PR CI 651 failsarch::x86_64::syscall::tests::dispatch_drop_local_cap_rejects_zero_and_slots_outside_process_window; original push CI 650 passes the same revision. Neither workflow has been rerun.A deterministic local control calls the existing test-only
leave_private_cspace_currenthelper immediately after acquiring the test guard, leaving the original reset sequence and assertions unchanged.cargo test --locked --release --all-features --lib dispatch_drop_local_cap_rejects_zero_and_slots_outside_process_windowthen runs exactly one test and fails with Cargo status 101 andtcb cap: CspaceSlotMissing. This is one explicit predecessor-injection control, not an unchanged clean-checkout reproduction.Expected and actual behavior
The fixture must clear predecessor task attribution before creating its root CSpace. Zero-slot and out-of-window rejection must remain independent of test order and retain their existing expected results.
The original PR run passes both default test configurations (785 tests each), then fails the release all-feature selection with 808 passed, one failed and three existing ignored cases. The failure occurs during TCB capability installation. The same-head push passes 785/809 tests. A successful independent run does not resolve the failed fixture.
Environment and identity
71e2ca157d9a3fc604f212eda86d1157bbd3a46b, branchfeature/posix-compat, workflowci.yml.Evidence and prior checks
All four original Kernel CI logs are complete and hash-verified, totaling 802,196 bytes with zero warning candidates. The deterministic failed source, output, exit status and process cleanup are retained separately.
current_cspace_idfollows the selected TCB;init_root_cspaceresets CSpace records without changing that TCB. The explicit private predecessor reproduces the exact missing-CSpace setup error without relying on scheduler timing.The correction reuses
fresh_root_after_private_process, which deliberately seeds a private predecessor and resets task attribution before constructing the new root. Original slot assertions and ordinary test concurrency remain unchanged. Strict validation and CI of the corrected signed revision are required before closure; rerunning the failed revision supplies no correction.Corrected fixture acceptance — 22 September 2026: signed Kernel
12184850cd73reuses the existing deterministic predecessor initializer and preserves both original slot-rejection assertions. The explicit predecessor control fails against the original reset sequence and passes in every corrected local configuration. Four strict local 785/809-test configurations, fourteen native builds and binary Clippy profiles, formatting including the touched test fragment, and private rustdoc pass without warnings. Only the host test fragment and roadmap change; production sources, Git dependency pins and Integration catalogs retain their exact validated identity. No new runtime feature or VM execution is claimed for this host-only correction.Corrected push CI 652 and PR CI 653 both pass. All four complete original logs (807,886 bytes) are hash-verified without warning candidates. Both runs pass 785/809 tests and the deterministic fixture under ordinary harness concurrency. The original failed PR 651, independent passing push 650 and deterministic Cargo-101 control remain retained. This closes the reported fixture defect; broader authority review and Phase 6 acceptance remain open.
Tracking
Related earlier fixture defects: allocator and synthetic-service attribution, endpoint attribution, and VSpace attribution. This report tracks the distinct remaining syscall fixture.
Owning Kernel audit, implementation review, and Phase 6 completion retain the broader obligations. Preserve the original failure, verify deterministic order independence and monitor the corrected full host matrix.