calling exe from ssh on WSL2 will cause `UtilAcceptVsock:244: accept4 failed 110`
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 33.7k
- Forks
- 1.8k
- Avg merge
- 3d 17h
- Merged PRs (30d)
- 116
Description
### Version
Microsoft Windows [Version 10.0.22000.795]
### WSL Version
- [X] WSL 2
- [ ] WSL 1
### Kernel Version
5.10.102.1
### Distro Version
Ubuntu 22.04
### Other Software
Visual Studio/2022/Community
### Repro Steps
1. setup & start the ssh server via systemctl
2. run some exe included in VisualStudio on ssh
$ "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.30.30705\bin\HostX64\x64\cl.exe"
$ "/mnt/c/Windows/system32/cmd.exe"
### Expected Behavior
run `cl.exe` successfully
### Actual Behavior
error
```
anatawa12@wsl-2204:~$ "/mnt/c/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.30.30705/bin/HostX64/x64/cl.exe"
<3>init: (4870) ERROR: UtilAcceptVsock:244: accept4 failed 110
anatawa12@wsl-2204:~$
```
```
anatawa12@wsl-2204:~$ "/mnt/c/Windows/system32/cmd.exe"
<3>init: (6522) ERROR: UtilAcceptVsock:244: accept4 failed 110
anatawa12@wsl-2204:~$
```
### Diagnostic Logs
```
execve("/mnt/c/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.30.30705/bin/HostX64/x64/cl.exe", ["/mnt/c/Program Files/Microsoft V"...], 0x7fffdcfb4f38 /* 26 vars */) = 0
arch_prctl(ARCH_SET_FS, 0x356ce0) = 0
set_tid_address(0x356d18) = 5428
brk(NULL) = 0x5ab000
brk(0x5ac000) = 0x5ac000
gettid() = 5428
gettid() = 5428
gettid() = 5428
gettid() = 5428
sched_getaffinity(0, 128, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]) = 32
brk(0x5ad000) = 0x5ad000
getpid() = 5428
getcwd("/home/anatawa12", 4096) = 16
uname({sysname="Linux", nodename="wsl-2204", ...}) = 0
getcwd("/home/anatawa12", 4096) = 16
open("/mnt/c/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.30.30705/bin/HostX64/x64/cl.exe", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_PATH) = 3
readlink("/proc/self/fd/3", "/mnt/c/Program Files/Microsoft V"..., 4095) = 108
fstat(3, {st_mode=S_IFREG|0555, st_size=403904, ...}) = 0
stat("/mnt/c/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.30.30705/bin/HostX64/x64/cl.exe", {st_mode=S_IFREG|0555, st_size=403904, ...}) = 0
close(3) = 0
open("/proc/self/mountinfo", O_RDONLY) = 3
readv(3, [{iov_base="", iov_len=0}, {iov_base="226 85 8:32 / / rw,relatime - ex"..., iov_len=1024}], 2) = 1024
readv(3, [{iov_base="", iov_len=0}, {iov_base="oexec,relatime - cgroup cgroup r"..., iov_len=1024}], 2) = 1024
readv(3, [{iov_base="", iov_len=0}, {iov_base="fs none rw,mode=755\n248 247 0:42"..., iov_len=1024}], 2) = 1024
readv(3, [{iov_base="", iov_len=0}, {iov_base="mnt/c rw,noatime - 9p drvfs rw,d"..., iov_len=1024}], 2) = 1024
readv(3, [{iov_base="", iov_len=0}, {iov_base="tl fusectl rw\n267 226 8:32 /snap"..., iov_len=1024}], 2) = 1004
readv(3, [{iov_base="", iov_len=0}, {iov_base="", iov_len=1024}], 2) = 0
close(3) = 0
getcwd("/home/anatawa12", 4096) = 16
open("/proc/self/mountinfo", O_RDONLY) = 3
readv(3, [{iov_base="", iov_len=0}, {iov_base="226 85 8:32 / / rw,relatime - ex"..., iov_len=1024}], 2) = 1024
readv(3, [{iov_base="", iov_len=0}, {iov_base="oexec,relatime - cgroup cgroup r"..., iov_len=1024}], 2) = 1024
readv(3, [{iov_base="", iov_len=0}, {iov_base="fs none rw,mode=755\n248 247 0:42"..., iov_len=1024}], 2) = 1024
readv(3, [{iov_base="", iov_len=0}, {iov_base="mnt/c rw,noatime - 9p drvfs rw,d"..., iov_len=1024}], 2) = 1024
readv(3, [{iov_base="", iov_len=0}, {iov_base="tl fusectl rw\n267 226 8:32 /snap"..., iov_len=1024}], 2) = 1004
readv(3, [{iov_base="", iov_len=0}, {iov_base="", iov_len=1024}], 2) = 0
close(3) = 0
getppid() = 5425
access("/run/WSL/5425_interop", F_OK) = -1 ENOENT (No such file or directory)
open("/proc/5425/stat", O_RDONLY) = 3
readv(3, [{iov_base="", iov_len=0}, {iov_base="5425 (strace) S 530 5425 530 348"..., iov_len=1024}], 2) = 320
brk(0x5ae000) = 0x5ae000
close(3) = 0
access("/run/WSL/530_interop", F_OK) = -1 ENOENT (No such file or directory)
open("/proc/530/stat", O_RDONLY) = 3
readv(3, [{iov_base="", iov_len=0}, {iov_base="530 (bash) S 529 530 530 34817 5"..., iov_len=1024}], 2) = 331
close(3) = 0
access("/run/WSL/529_interop", F_OK) = -1 ENOENT (No such file or directory)
open("/proc/529/stat", O_RDONLY) = 3
readv(3, [{iov_base="", iov_len=0}, {iov_base="529 (sshd) R 424 424 424 0 -1 41"..., iov_len=1024}], 2) = 167
close(3) = 0
access("/run/WSL/424_interop", F_OK) = -1 ENOENT (No such file or directory)
open("/proc/424/stat", O_RDONLY) = 3
readv(3, [{iov_base="", iov_len=0}, {iov_base="424 (sshd) S 344 424 424 0 -1 41"..., iov_len=1024}], 2) = 179
close(3) = 0
access("/run/WSL/344_interop", F_OK) = -1 ENOENT (No such file or directory)
open("/proc/344/stat", O_RDONLY) = 3
readv(3, [{iov_base="", iov_len=0}, {iov_base="344 (sshd) S 1 344 344 0 -1 4194"..., iov_len=1024}], 2) = 169
close(3) = 0
access("/run/WSL/1_interop", F_OK) = 0
socket(AF_UNIX, SOCK_SEQPACKET|SOCK_CLOEXEC, 0) = 3
connect(3, {sa_family=AF_UNIX, sun_path="/run/WSL/1_interop"}, 110) = 0
write(3, "\22\0\0\0\10\0\0\0", 8) = 8
poll([{fd=3, events=POLLIN}], 1, 10000) = 1 ([{fd=3, revents=POLLIN|POLLHUP}])
read(3, "Ubuntu-22.04", 256) = 12
close(3) = 0
ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(2, TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(0, TIOCGPGRP, [5425]) = 0
getpgid(0) = 5425
fstat(0, {st_mode=S_IFCHR|0620, st_rdev=makedev(0x88, 0x1), ...}) = 0
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(0x88, 0x1), ...}) = 0
fstat(2, {st_mode=S_IFCHR|0620, st_rdev=makedev(0x88, 0x1), ...}) = 0
ioctl(0, TIOCGWINSZ, {ws_row=50, ws_col=361, ws_xpixel=5054, ws_ypixel=1700}) = 0
ioctl(0, SNDCTL_TMR_START or TCSETS, {B38400 -opost -isig -icanon -echo ...}) = 0
dup(0) = 3
socket(AF_VSOCK, SOCK_STREAM|SOCK_CLOEXEC, 0) = 4
bind(4, {sa_family=AF_VSOCK, svm_cid=VMADDR_CID_ANY, svm_port=VMADDR_PORT_ANY, svm_flags=0}, 16) = 0
getsockname(4, {sa_family=AF_VSOCK, svm_cid=VMADDR_CID_ANY, svm_port=0x3aaa0d52, svm_flags=0}, [16]) = 0
listen(4, 4) = 0
socket(AF_UNIX, SOCK_SEQPACKET|SOCK_CLOEXEC, 0) = 5
connect(5, {sa_family=AF_UNIX, sun_path="/run/WSL/1_interop"}, 110) = 0
write(5, "\6\0\0\0T\1\0\0R\r\252:\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 340) = 340
poll([{fd=4, events=POLLIN}], 1, 10000) = 0 (Timeout)
getpid() = 5428
writev(2, [{iov_base="<3>init: (5428) ERROR: UtilAccep"..., iov_len=63}, {iov_base=NULL, iov_len=0}], 2<3>init: (5428) ERROR: UtilAcceptVsock:244: accept4 failed 110
) = 63
close(5) = 0
close(4) = 0
ioctl(3, SNDCTL_TMR_START or TCSETS, {B38400 opost isig icanon echo ...}) = 0
close(3) = 0
exit_group(-1) = ?
+++ exited with 255 +++
anatawa12@wsl-2204:~$
```
```
anatawa12@wsl-2204:~$ strace -ff "/mnt/c/Windows/system32/cmd.exe"
execve("/mnt/c/Windows/system32/cmd.exe", ["/mnt/c/Windows/system32/cmd.exe"], 0x7ffe74a603b8 /* 26 vars */) = 0
arch_prctl(ARCH_SET_FS, 0x356ce0) = 0
set_tid_address(0x356d18) = 6654
brk(NULL) = 0x895000
brk(0x896000) = 0x896000
gettid() = 6654
gettid() = 6654
gettid() = 6654
gettid() = 6654
sched_getaffinity(0, 128, [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]) = 32
brk(0x897000) = 0x897000
getpid() = 6654
getcwd("/home/anatawa12", 4096) = 16
uname({sysname="Linux", nodename="wsl-2204", ...}) = 0
getcwd("/home/anatawa12", 4096) = 16
open("/mnt/c/Windows/system32/cmd.exe", O_RDONLY|O_NONBLOCK|O_CLOEXEC|O_PATH) = 3
readlink("/proc/self/fd/3", "/mnt/c/Windows/system32/cmd.exe", 4095) = 31
fstat(3, {st_mode=S_IFREG|0555, st_size=331776, ...}) = 0
stat("/mnt/c/Windows/system32/cmd.exe", {st_mode=S_IFREG|0555, st_size=331776, ...}) = 0
close(3) = 0
open("/proc/self/mountinfo", O_RDONLY) = 3
readv(3, [{iov_base="", iov_len=0}, {iov_base="226 85 8:32 / / rw,relatime - ex"..., iov_len=1024}], 2) = 1024
readv(3, [{iov_base="", iov_len=0}, {iov_base="oexec,relatime - cgroup cgroup r"..., iov_len=1024}], 2) = 1024
readv(3, [{iov_base="", iov_len=0}, {iov_base="fs none rw,mode=755\n248 247 0:42"..., iov_len=1024}], 2) = 1024
readv(3, [{iov_base="", iov_len=0}, {iov_base="mnt/c rw,noatime - 9p drvfs rw,d"..., iov_len=1024}], 2) = 1024
readv(3, [{iov_base="", iov_len=0}, {iov_base="tl fusectl rw\n267 226 8:32 /snap"..., iov_len=1024}], 2) = 1004
readv(3, [{iov_base="", iov_len=0}, {iov_base="", iov_len=1024}], 2) = 0
close(3) = 0
getcwd("/home/anatawa12", 4096) = 16
open("/proc/self/mountinfo", O_RDONLY) = 3
readv(3, [{iov_base="", iov_len=0}, {iov_base="226 85 8:32 / / rw,relatime - ex"..., iov_len=1024}], 2) = 1024
readv(3, [{iov_base="", iov_len=0}, {iov_base="oexec,relatime - cgroup cgroup r"..., iov_len=1024}], 2) = 1024
readv(3, [{iov_base="", iov_len=0}, {iov_base="fs none rw,mode=755\n248 247 0:42"..., iov_len=1024}], 2) = 1024
readv(3, [{iov_base="", iov_len=0}, {iov_base="mnt/c rw,noatime - 9p drvfs rw,d"..., iov_len=1024}], 2) = 1024
readv(3, [{iov_base="", iov_len=0}, {iov_base="tl fusectl rw\n267 226 8:32 /snap"..., iov_len=1024}], 2) = 1004
readv(3, [{iov_base="", iov_len=0}, {iov_base="", iov_len=1024}], 2) = 0
close(3) = 0
getppid() = 6651
access("/run/WSL/6651_interop", F_OK) = -1 ENOENT (No such file or directory)
open("/proc/6651/stat", O_RDONLY) = 3
readv(3, [{iov_base="", iov_len=0}, {iov_base="6651 (strace) S 530 6651 530 348"..., iov_len=1024}], 2) = 320
brk(0x898000) = 0x898000
close(3) = 0
access("/run/WSL/530_interop", F_OK) = -1 ENOENT (No such file or directory)
open("/proc/530/stat", O_RDONLY) = 3
readv(3, [{iov_base="", iov_len=0}, {iov_base="530 (bash) S 529 530 530 34817 6"..., iov_len=1024}], 2) = 330
close(3) = 0
access("/run/WSL/529_interop", F_OK) = -1 ENOENT (No such file or directory)
open("/proc/529/stat", O_RDONLY) = 3
readv(3, [{iov_base="", iov_len=0}, {iov_base="529 (sshd) R 424 424 424 0 -1 41"..., iov_len=1024}], 2) = 167
close(3) = 0
access("/run/WSL/424_interop", F_OK) = -1 ENOENT (No such file or directory)
open("/proc/424/stat", O_RDONLY) = 3
readv(3, [{iov_base="", iov_len=0}, {iov_base="424 (sshd) S 344 424 424 0 -1 41"..., iov_len=1024}], 2) = 179
close(3) = 0
access("/run/WSL/344_interop", F_OK) = -1 ENOENT (No such file or directory)
open("/proc/344/stat", O_RDONLY) = 3
readv(3, [{iov_base="", iov_len=0}, {iov_base="344 (sshd) S 1 344 344 0 -1 4194"..., iov_len=1024}], 2) = 169
close(3) = 0
access("/run/WSL/1_interop", F_OK) = 0
socket(AF_UNIX, SOCK_SEQPACKET|SOCK_CLOEXEC, 0) = 3
connect(3, {sa_family=AF_UNIX, sun_path="/run/WSL/1_interop"}, 110) = 0
write(3, "\22\0\0\0\10\0\0\0", 8) = 8
poll([{fd=3, events=POLLIN}], 1, 10000) = 1 ([{fd=3, revents=POLLIN|POLLHUP}])
read(3, "Ubuntu-22.04", 256) = 12
close(3) = 0
ioctl(0, TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(2, TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(0, TIOCGPGRP, [6651]) = 0
getpgid(0) = 6651
fstat(0, {st_mode=S_IFCHR|0620, st_rdev=makedev(0x88, 0x1), ...}) = 0
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(0x88, 0x1), ...}) = 0
fstat(2, {st_mode=S_IFCHR|0620, st_rdev=makedev(0x88, 0x1), ...}) = 0
ioctl(0, TIOCGWINSZ, {ws_row=50, ws_col=361, ws_xpixel=5054, ws_ypixel=1700}) = 0
ioctl(0, SNDCTL_TMR_START or TCSETS, {B38400 -opost -isig -icanon -echo ...}) = 0
dup(0) = 3
socket(AF_VSOCK, SOCK_STREAM|SOCK_CLOEXEC, 0) = 4
bind(4, {sa_family=AF_VSOCK, svm_cid=VMADDR_CID_ANY, svm_port=VMADDR_PORT_ANY, svm_flags=0}, 16) = 0
getsockname(4, {sa_family=AF_VSOCK, svm_cid=VMADDR_CID_ANY, svm_port=0x3aaa0d55, svm_flags=0}, [16]) = 0
listen(4, 4) = 0
socket(AF_UNIX, SOCK_SEQPACKET|SOCK_CLOEXEC, 0) = 5
connect(5, {sa_family=AF_UNIX, sun_path="/run/WSL/1_interop"}, 110) = 0
write(5, "\6\0\0\0\272\0\0\0U\r\252:\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 186) = 186
poll([{fd=4, events=POLLIN}], 1, 10000) = 0 (Timeout)
getpid() = 6654
writev(2, [{iov_base="<3>init: (6654) ERROR: UtilAccep"..., iov_len=63}, {iov_base=NULL, iov_len=0}], 2<3>init: (6654) ERROR: UtilAcceptVsock:244: accept4 failed 110
) = 63
close(5) = 0
close(4) = 0
ioctl(3, SNDCTL_TMR_START or TCSETS, {B38400 opost isig icanon echo ...}) = 0
close(3) = 0
exit_group(-1) = ?
+++ exited with 255 +++
anatawa12@wsl-2204:~$
```
[WslLogs-2022-08-03_15-54-53.zip](https://github.com/microsoft/WSL/files/9248791/WslLogs-2022-08-03_15-54-53.zip)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the WSL 2 interop failure through SSH: enable the SSH server with systemctl, then run cl.exe or cmd.exe from Ubuntu 22.04 and inspect the vsock timeout. Trace the interop and UtilAcceptVsock path associated with the reported error; done means Windows executables launched over SSH complete without the accept4 timeout.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- networking, operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100