8000 minvmd: measure the host loopback before handing a reserved-range address · Issue #1818 · gominimal/minimal · GitHub
[go: up one dir, main page]

Skip to content

minvmd: measure the host loopback before handing a reserved-range address #1818

Closed

Description

@norrietaylor

Problem

On a VM-backed macOS host, minvmd hands a box's registration a slice address from the reserved local range (127.0.64.0/24) without measuring whether the host loopback can bind it. On a stock macOS host the range is not installed, so a box published at the handed address fails its attach: the host gvproxy is asked to bind a declared port at an address the loopback refuses (EADDRNOTAVAIL).

#1798 guards the daemon side: a handed reserved-range address is published only while the host publish surface's range verdict has not landed Absent, and the box falls back to the 127.0.0.1 interim (NET-123's absent arm) otherwise. The hand itself is still unmeasured at its source.

Wanted

minvmd hands a reserved-range slice address only after its own bind probe on the host loopback vouches for the range, and hands no range address (so the daemon publishes the interim) when the probe fails. A test covers both arms.

Related

  • NET-123 (verify by a bind probe before publishing), docs/specs/18-spec-box-networking.
  • #1817 installs the range on macOS; once it lands, the probe reads present on hosts that ran the step.
  • #1816 is the separate --provider registration gap.

Activity

  1. norrietaylor commented on Oct 31, 2026

    @norrietaylor
    MemberAuthor

    Closing in the 2026-10-31 backlog triage: the work has shipped.

    Evidence: minimal#2332 (merged; 'informed by #1818') makes minvmd allocation probe the address with a TcpListener bind and hand 127.0.0.1 when the bind is refused. Both arms are tested: an_unbindable_host_is_handed_the_interim_and_the_book_stays_empty and a_host_that_becomes_bindable_hands_out_range_addresses_again.

    Two independent reviewers checked this closure; neither refuted it. Reopen if it's wrong.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      0