Environment
- OpenShell version: 0.1.2 (installed via the official
install.sh)
- Host OS: Windows 11 Pro 10.0.26200, WSL 2.6.3.0
- WSL distro: Ubuntu 24.04.4 LTS
- Kernel:
6.6.87.2-microsoft-standard-WSL2
- Compute driver:
docker (Docker CE 29.8.1 / containerd, installed directly inside the WSL distro via the official apt repo, not Docker Desktop)
- Gateway: local single-user gateway (systemd
--user service), mTLS auth, openshell status reports Connected
Steps to reproduce
- Install OpenShell via the official installer inside the WSL2 environment above.
sudo loginctl enable-linger <user> (otherwise the gateway's systemd --user service is killed as soon as the invoking shell session ends, which is its own separate WSL2-specific gotcha worth documenting somewhere).
openshell sandbox create --name demo
(also reproduced with openshell sandbox create --name demo2 --no-keep -- echo hello)
Observed
The sandbox container is created and the image (nvcr.io/nvidia/base/ubuntu:24.04) pulls/starts successfully, then provisioning fails:
Error: × sandbox entered error phase while provisioning:
│ ControlSupervisorStartFailed: Docker sandbox exited before supervisor
│ became ready; sandbox log tail: Error: × seccomp notification probe
│ ╰─▶ notification launcher disappeared
Reproduced identically across two separate sandbox creation attempts. The gateway-side systemd journal logs the same failure:
reason=ControlSupervisorStartFailed Docker sandbox exited before supervisor became ready; sandbox log tail: Error: × seccomp notification probe
╰─▶ notification launcher disappeared
What I ruled out
This looked at first like the kernel < 5.19 SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECV EINVAL issue from #3417 / the #3420 fallback fix, but our kernel (6.6.87) is well past that floor, so that code path shouldn't be in play. This looks like a distinct failure specific to WSL2's virtualized kernel — possibly related to how the seccomp user-notification fd handoff (SCM_RIGHTS passing / cross-namespace access to the sandboxed process) behaves under a Hyper-V-backed WSL2 kernel versus bare-metal Linux, rather than a simple version gate.
Ask
Is there a known workaround, or a non-seccomp ("privileged"?) sandbox isolation mode selectable for the docker driver, for platforms where the capability-free supervisor's notification handoff doesn't come up cleanly? Happy to provide more logs / run additional repro steps — this is currently a hard blocker for using OpenShell under WSL2 at all, even though the support matrix lists it as (experimentally) supported.
Environment
install.sh)6.6.87.2-microsoft-standard-WSL2docker(Docker CE 29.8.1 / containerd, installed directly inside the WSL distro via the official apt repo, not Docker Desktop)--userservice), mTLS auth,openshell statusreportsConnectedSteps to reproduce
sudo loginctl enable-linger <user>(otherwise the gateway's systemd--userservice is killed as soon as the invoking shell session ends, which is its own separate WSL2-specific gotcha worth documenting somewhere).openshell sandbox create --name demo(also reproduced with
openshell sandbox create --name demo2 --no-keep -- echo hello)Observed
The sandbox container is created and the image (
nvcr.io/nvidia/base/ubuntu:24.04) pulls/starts successfully, then provisioning fails:Reproduced identically across two separate sandbox creation attempts. The gateway-side systemd journal logs the same failure:
What I ruled out
This looked at first like the kernel < 5.19
SECCOMP_FILTER_FLAG_WAIT_KILLABLE_RECVEINVAL issue from #3417 / the #3420 fallback fix, but our kernel (6.6.87) is well past that floor, so that code path shouldn't be in play. This looks like a distinct failure specific to WSL2's virtualized kernel — possibly related to how the seccomp user-notification fd handoff (SCM_RIGHTS passing / cross-namespace access to the sandboxed process) behaves under a Hyper-V-backed WSL2 kernel versus bare-metal Linux, rather than a simple version gate.Ask
Is there a known workaround, or a non-seccomp ("privileged"?) sandbox isolation mode selectable for the
dockerdriver, for platforms where the capability-free supervisor's notification handoff doesn't come up cleanly? Happy to provide more logs / run additional repro steps — this is currently a hard blocker for using OpenShell under WSL2 at all, even though the support matrix lists it as (experimentally) supported.