vms-4bd0: DLM harness H2 -- two real-executive QEMU nodes complete the full VMS$VAXcluster join - #843
Merged
Merged
Conversation
…e full VMS$VAXcluster join Extends the H1 two-node real-/dev/vms QEMU harness (socket mcast netdev, no bridge, no privilege) to drive the FULL VMS$VAXcluster join to completion: with the join sequencer on (OVMX_MCAST_SOLICIT=1 OVMX_JOIN_SEQ=1 -- the SAME flags the Docker tests/cluster/two-ovmx harness completes the OVMX<->OVMX join with), each node climbs multicast HELLO -> directed HELLO -> 0x41 START/VC OPEN -> the 8-step SCS$DIRECTORY/MSCP$DISK/VMS$VAXcluster sequencer -> member-role 0x5b accept, and BOTH nodes reach SCSD-I-VAXCLMEMBER, inside QEMU, each on a real executive. JOIN/membership ONLY: no OVMX_DLM_ENQ (the cross-node $ENQ is H3, the grant is H4). No change to the executive stub or DLM GRANT logic. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
baron-3dl
added a commit
that referenced
this pull request
Aug 28, 2026
…ce parity, SHOW USERS de-fab (#858) Bumps OVMX_PRODUCT_VERSION and os-release V0.5-7 -> V0.5-8. 14 commits since V0.5-7. Distributed Lock Manager — the cross-node ladder tops out at a real GRANT: - #849 vms-e8f1/vms-17c DLM rung-2 (H4): the first REAL cross-node $ENQ GRANT — node B holds a lock on A's behalf for A's CSID, $ENQ returns SS$_NORMAL over live SCS (no longer INV-6 "grants nothing"). The distributed lock manager now actually locks across nodes. - #845 vms-209 DLM harness H3 — a cross-node $ENQ reaches node B's real executive - #843 vms-4bd0 DLM harness H2 — two real-executive QEMU nodes complete the full VMS$VAXcluster join - #842 vms-534 DLM harness H1 — two real-executive nodes exchange the 0x6007 HELLO over a socket netdev - #840 vms-4b6 DLM harness rung H0 — SCSD.EXE composes with a real executive - #841 docs Alpha cross-node DLM wire oracle — observed SCS transport + documented GRANT semantics (Rule 8) Alpha co-release parity — authenticated login + the shared SHOW battery: - #852 vms-f2c Alpha DCL/SHOW acceptance parity — the same shared 11-command battery x86_64 runs, now on qemu-system-alpha - #847 vms.ko guards BG fork-inherit tracepoints behind CONFIG_TRACEPOINTS (Alpha P0 modpost fix) Authenticity (INV-6 de-fabrication): - #839 vms-6a1 SHOW USERS fails honestly when the executive is absent — no more per-process fabricated user list Boot console fidelity: - #850 vms-dec kill boot-console newline spam (the operator's echoed RETURNs) + a type-during-boot regression gate Networking (layered-product promotion): - #851 vms-67f TCP/IP Services promoted to a first-class layered product — build plan + roadmap (1.0 blocker) Docs / ledger: - #745 Alpha C-RTL archive DECIDED — Option A (operator ruling 2026-08-23) - #709 vms-da0 OpenVMS GCC port × OVMX faithful-surface gap analysis - #838 reconcile the release block for the V0.5-7 tag (INV-LEDGER) QA'd under KVM boot-to-login on the workshop host with the full SHOW acceptance battery VMS-faithful; boot console clean (no newline flood) and SHOW USERS honest. Release notes are generated at tag time by tools/gen_release_notes.py (INV-LEDGER single-ledger); the roadmap narrative block + public site are the conductor's reconcile (INV-0/INV-LEDGER). Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
DLM harness H2 (rd vms-4bd0) — two real-executive QEMU nodes complete the full VMS$VAXcluster join
Extends the H1 two-node real-
/dev/vmsQEMU harness (socketmcastnetdev, no host bridge, no privilege, CI-runnable) from the 0x6007 HELLO transport (H1) to the full VMS$VAXcluster JOIN. With the join sequencer on —OVMX_MCAST_SOLICIT=1 OVMX_JOIN_SEQ=1, the same flags the Dockertests/cluster/two-ovmxharness completes the OVMX↔OVMX join with — each node climbs multicast HELLO → directed HELLO → 0x41 START / VC OPEN → the 8-step SCS$DIRECTORY/MSCP$DISK/VMS$VAXcluster sequencer → member-role 0x5b accept, and BOTH nodes reachSCSD-I-VAXCLMEMBER, inside QEMU, each on a real executive.Scope discipline: JOIN/membership only. No
OVMX_DLM_ENQ(the cross-node$ENQis H3, the grant is H4). No change to the executive stub or DLM GRANT logic.Files
tests/qemu/init_dlm_h2.sh— PID 1; exports the sequencer flags, runsSCSD.EXE --connect, emits the NEW→MEMBER ladder + VAXCLMEMBER on ttyS1.tests/qemu/run_dlm_harness_h2.sh— boots both nodes; verdict asserts both reachedSCSD-I-VAXCLMEMBER(mirrorstests/cluster/two-ovmx/verdict.sh); emitsDLM HARNESS H2 PASSED/A_VAXCLMEMBER=1 B_VAXCLMEMBER=1. DefaultH2_DURATION=90(matches the Docker harness's completing run).tests/qemu/Dockerfile.dlm-harness-h2— same real-executive ingredients as H1 (vms.ko + static-musl SCSD.EXE + sca_l2probe + OVMXA/OVMXB SYSGEN stores).dlm-harness-h2under thedlm_harnesspath filter (KVM passthrough, TCG fallback, uploads pcap + node logs).Proven locally (workshop, KVM), both nodes on a real
/dev/vmsContainer exit rc=0.
Real-executive finding
No defect surfaced. The stop-and-wait join sequencer that completes in the Docker
two-ovmxharness also completes under real-executive QEMU boot/scheduling latency over themcastsocket netdev — the join reaches membership on both sides with no timing/collision-latch divergence. (H0 by contrast surfaced a missing REGISTER; H2's real-executive join is clean.)🤖 Generated with Claude Code