Skip to content

Attested gVisor (runsc) tenants can't reach the broker unix socket — need host-UDS or a TCP broker #6

Description

@amiller

PR #4 (Closes #3) mounts the filtered dstack broker as a unix socket at /run/broker/dstack.sock into attested app containers. But the daemon runs tenants under runsc (gVisor) via DAEMON_CONTAINER_RUNTIME, and a gVisor sandbox has its own kernel, so a process inside cannot connect() to a host/runc-owned unix socket even when bind-mounted.

Confirmed live: a tenant under runsc fails to reach /run/broker/dstack.sock (curl exit 7), while a runc-pinned hermes reaches its proxy socket fine. This is the same "gVisor can't reach host resources" family as #2 (gVisor DNS at 127.0.0.11).

Fix options

  • (B) Register a runsc runtime variant with --host-uds so gVisor proxies the host socket (needs CVM runtime re-provisioning).
  • (C) Also serve the broker over TCP on the attested network and inject a BROKER_URL (gVisor TCP-by-IP works, avoids the DNS path).

An interim unblock just landed via a per-project runc opt-out (see PR below) — that is only acceptable for TRUSTED data-plane tenants; B or C is required for UNTRUSTED tenants under gVisor.

Cross-reference: #2, #3, #4.

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-humanRequires a human decision; loop skips

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions