[BUG] Housekeeping fixture conflates queued SERIAL control with registration deferral #2
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/deviced#2
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 Deviced housekeeping unit test conflates queued SERIAL control with provider-registration deferral and carries a stale release-feature expectation that queued control is consumed. The stricter component matrix exposes this assertion failure. No production readiness or capability-retirement failure is demonstrated.
Reproduction
Use Deviced original
5824765c11with the reviewed RTC duplicate-submission cleanup and its isolated test hooks. Runcargo test --locked --offline --all-targets --features deviced-runtime-release-imagewith the selected original dependency graph. This command was executed once; its failure was retained. The failing test and housekeeping production path are unchanged from that original commit.Expected and actual behavior
service_housekeeping_defers_ready_flush_for_pending_provider_registrationshould exercise an actual registration wait. Separately, queued SERIAL control must stay pending (1) and not be falsely marked logged (0) if host log submission is unavailable. The original fixture already queues SERIAL readiness, which satisfies the role-ready predicate and removes its registration wait. Housekeeping therefore reaches the logging path; release policy deliberately keeps SERIAL READY as internal control and the host has no validated Logd endpoint. The test nevertheless expects pending=0 only in the release feature configuration. The actual assertion observes 1 versus expected 0; Cargo exits 101. The other 128 tests, including all six new RTC boundary tests, pass.Environment and identity
5824765c11, plus explicit reviewed source/test deltas; no synthetic revision.deviced-runtime-release-imagefeature in Cargo's test profile, not an optimized image build.Evidence and prior checks
The retained command ran 129 tests: 128 passed and one failed at
src/ipc/dispatch/service_loop_tests.rs:651. Its actual exit and primary failure status are both 101; owned process-group cleanup is clear. Default and runtime feature matrices passed before this failure. A first test-only correction added a real receiver precondition and exposed the original fixture inconsistency (0 versus expected receiver467), which was also retained as a failed run. The revised deferral fixture puts queued readiness on an unrelated running registered role while SERIAL still awaits registration, and checks the actual receiver before and after housekeeping. A separately named test retains the original queued SERIAL scenario and checks the unavailable host endpoint plus pending1/logged0. The production early return inruntime_loop.rs:15applies to the revised deferral fixture, not the original one. No runtime code or log policy changes.The correction is signed and pushed as
f7b4f8d8b994d08188010c1f5a42ff3144d9a50ein Deviced draft PR #3. Final default/runtime suites pass 135 tests each and release/all-feature suites pass 136 each across three binaries. Both housekeeping cases, formatting, strict host/freestanding Clippy, warning-denied host builds and private-item rustdoc pass. Original failure and failed-correction evidence remain retained. Exact-revision push CI 200 and PR CI 201 both pass. Each passes all four host/freestanding configuration matrices and 135/135/136/136 unit tests, including the six RTC and two housekeeping cases in each configuration. All four complete job logs are retained (210382 bytes), with zero warning or failure candidates. CI completes the pinned source preparation; full Cargo PackageID JSON remains separately supported by the local metadata receipts. The fixture defect is corrected and its component CI gate is verified. Broader runtime, Integration and audit work remains tracked separately.Tracking
Coordinate with the Deviced audit issue #1 and the component implementation PR. Regression acceptance requires the corrected literal prerequisite/postcondition test in default, runtime, release and all-feature configurations, plus the remaining strict component checks. No boot-stall fix or guest-delivery proof is claimed.