[BUG] Query canary fixture assumes identical direct and scheduled entry stacks #16
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#16
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 newly added query canary fixture in Kernel
a2b13de0d51387e9175035f6e191d3f2961cd70efaults when its second process first runs. Its expected stack address assumes the direct entry route for every participant, but ordinary initial scheduler resume reserves an eight-byte synthetic return slot. This is a diagnostic fixture defect; the retained failure does not establish corruption by the capability query.Reproduction
Build the isolated owned-invocation kernel with the matching diagnostic dependency graph. Use the corrected explicit-catalog manifest preparation described in Integration issue 59, then run
scripts/run-native-kernel-vm.sh invocation. The first real QEMU attempt reachesOWNED_INVOCATION_BEGIN, then faults at the caller's first query stack comparison.Expected and actual behavior
Expected: the diagnostic explicitly selects a valid private stack interval before installing canaries, and every subsequent query preserves its selected RSP and live stack words.
Actual: user UD2 at
0x51000228, with RSP0x51033f78instead of the assumed0x51033f80. QEMU exits 37 instead of 33;OWNED_INVOCATION_OKis absent. The exact checks correctly fail. Source inspection identifies the initial resume function's synthetic eight-byte return slot; the directly entered first process does not use that resume path.Environment and identity
a2b13de0d51387e9175035f6e191d3f2961cd70e; Integration base:df8147dfa437194cd091747fd7147941bd2793c4plus the explicit-catalog preparation repair under review.9b96d71906d2fcc449e850289237c90318efda1c42358205a0459942914cc85f. Kernel ELF SHA-256:6cc07895aa9dbed03a1859090a27b49e2061a933e9e90c97d74f5ca45ed6a35d.Evidence and prior checks
The complete first serial log, boot image, kernel, EFI executable, variable store and original exit/cleanup status are retained. Kernel artifact checks and boot authentication succeed before the controlled user comparison faults. No unchanged VM retry is accepted as evidence.
Initialize RSP explicitly to the fixture-owned stack top before reserving its live canary interval. Keep the same exact RSP, GP, metadata and memory comparisons after every query, together with all preceding invocation assertions. This tests preservation across a syscall without guessing each participant's entry convention. Rebuild from a new signed kernel revision and run invocation plus lifetime regressions under their original budgets.
Caller-local query checkpoint — 17 September 2026: Corrected in signed Kernel
e15a045d7701030e58d9e59517406f8c79694ff8. The complete strict matrix, original CI 578/579 and matching query/invocation plus lifetime VMs pass. Every post-query assertion and original 60-second deadline remains; the initial failing image and status are retained. This closes the fixture-entry defect only.Tracking
Owning review: #3. Caller-local query design: #1. The independent packaging regression is erix/integration#59. Runtime acceptance remains incomplete until the corrected selected image passes.
erikinkinen referenced this issue2026-09-17 18:13:32 +02:00