-
Notifications
You must be signed in to change notification settings - Fork 838
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TTY issue when running Win32 process from WSL #2406
Comments
When NT processes are launched via interop the stdin, stdout, and stderr handles of the calling process are marshalled over to NT as handles. Handles are created on the NT side to be passed to the CreateProcess API to be used as stdin, stdout, and stderr. These handles are mostly reported as FILE_DEVICE_NAMED_PIPE (including tty as in your example). Vagrant is obviously expecting a stdin that is a FILE_DEVICE_CONSOLE. It's on our backlog to improve support for this scenario. Some related issues: #2370, #1433. |
For this one it might legitimately be worth talking to the Vagrant people. With enough hand waving one can think of use cases (completely unrelated WSL interop) in Windows where you might want to talk to Vagrant with a Windows named pipe. Which is to say, maybe a WSL work-around here has general applicability. Or, theoretical applicability if not actual applicability. I could be wrong (haven't looked at the code), but it costs nothing to ask. |
@therealkenc perhaps that is what happens when vagrant is launched from python:
an examination of the source for process = Popen(stdout=PIPE, *popenargs, **kwargs)
output, unused_err = process.communicate()
retcode = process.poll() I don't know enough about the cpython implementation on windows to know if that pipe is a named pipe. |
Trying to use WSL and Docker for Windows. docker.exe exec -it ubuntu /bin/bash returns
|
+1 for this issue! |
+1. |
Just tried the |
Your Windows build number: Microsoft Windows [Version 10.0.15063]
What you're doing and what's happening:
from wsl bash:
The version of vagrant installed is 1.9.7. It is the 64-bit Windows one.
What's wrong / what should be happening instead:
The help output should print for vagrant.
Strace of the failing command, if applicable:
lxcore.zip
As far as I can tell this error began happening without any apparent cause. I closed a shell, opened a new one, entered a vagrant command, and began receiving this error. Prior to that vagrant was functioning correctly from within the WSL. The error began on August 7th. The command functions correctly on coworker's machines who are running the same version of windows and vagrant as I am. I'm posting it here as I imagine it is related to the way pipes are connected between WSL and Win32 processes.
The text was updated successfully, but these errors were encountered: