Skip to content

chore: evaluate filing upstream issue for VCluster D-Bus race condition #2261

@devantler

Description

@devantler

Context

PR #2241 adds VCluster × Docker (Vind) support. During CI testing on GitHub Actions Ubuntu runners, the VCluster SDK's install-standalone.sh fails with:

failed to start vCluster standalone: exit status 1: Failed to connect to bus: No such file or directory

Root cause: The SDK runs systemctl restart systemd-journald inside the privileged Docker container before systemd has initialized D-Bus (/run/dbus/system_bus_socket). The container starts with --tmpfs /run, so the socket doesn't exist immediately. Combined with set -e, this aborts the install script.

This works on macOS (Docker Desktop provides a fully-initialized systemd VM) but fails on Linux CI runners due to a timing race.

Current workaround

KSail detects the "Failed to connect to bus" error from CreateDocker, waits for D-Bus readiness inside the container, then re-runs the install script. See recoverFromDBusError in pkg/svc/provisioner/cluster/vcluster/provisioner.go.

Action items

  • Verify whether the D-Bus recovery workaround is needed after CI runs confirm the fix works
  • If confirmed necessary, file an upstream issue on loft-sh/vcluster suggesting one of:
    • Adding a D-Bus readiness wait before systemctl restart systemd-journald in install-standalone.sh
    • Making the journald restart non-fatal (remove set -e or use || true)
    • Adding an SDK option to skip persistent logging setup
  • Remove the workaround once an upstream fix is released

References

  • install-standalone.sh line 333: systemctl restart systemd-journald
  • VCluster SDK: github.com/loft-sh/vcluster v0.32.0-rc.1
  • Chart version: 0.32.0-alpha.2

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No fields configured for Chore.

    Projects

    Status
    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions