Skip to content

x86: clonevm_exec_test is saved blocked in a kernel wait and never restored, on pristine main — the unnamed half of the 'USERSPACE TEST COMPLETE absent' stall #695

Description

@ryanbreen

Summary

On beast breenix-x86 (KVM, -cpu host, testing,external_test_bins),
clonevm_exec_test's thread is saved blocked in a kernel wait and never
restored
, on pristine main as well as on branches. The boot does not die —
other processes keep starting, blocking, waking and exiting for hundreds of
lines — but init is left waiting on it, so USERSPACE TEST COMPLETE never
appears and the gate reports only "boot did not finish".

Named by scripts/x86-strand-census.sh on a pristine-main serial preserved
in-repo:

strand census: thread 23 (clonevm_exec_test) saved blocked at line 3594 and never restored (339 further lines followed)
STRAND_CENSUS: threads_saved_blocked=8 stranded=1 lines=3933

Why it is being filed now

This shape has been showing up for two rounds as the unattributed
USERSPACE TEST COMPLETE was absent red, credited to "main" without a name.
It has a name now: until x86-strand-census.sh landed, the gate had no check
that could see a thread which is silenced rather than failing, so the first
cause was invisible and only the terminal symptom was reported. Two different
first causes — this one and the poll_tcp_oracle strand that #568's reorder
fixes — produced an identical gate message for a whole round.

Rate

  • pristine main @ 6d0d2ac5, beast KVM: 3/8 boots show the
    USERSPACE TEST COMPLETE absent stall, and the preserved specimen strands
    clonevm_exec_test.
  • round-3 A/B, reorder-reverted arm: 2/16 boots strand clonevm_exec_test.
  • round-3 A/B, merge-candidate arm: 0/24. The candidate arm is not a fix
    for this — 0/24 against 2/16 does not discriminate at this sample size — it
    simply did not occur there.

Serials (in-repo)

  • docs/planning/green-program/sockets/serials/x86-boot-did-not-finish-MAIN-kernel-20260829.txt
    (pristine main; strands clonevm_exec_test only)
  • docs/planning/green-program/sockets/serials/x86-boot-did-not-finish-armA-kernel-20260829.txt
    (strands poll_tcp_oracle first at line 2574, then clonevm_exec_test ~1000
    lines later — the two causes side by side)

Relationship to #690 and #610

#690 is the aarch64 clonevm_exec_test post-exec rendezvous stall (1/30,
cortex-a72) and #610 is the racy sibling assertion in the same test. This is the
x86 shape and is filed separately because what is observed here is a
never-restored kernel wait named by the context-switch record, not a rendezvous
that completes late. They may share a cause; nothing here establishes that.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions