mintty / wsltty

Mintty as a terminal for Bash on Ubuntu on Windows / WSL
Other
3.12k stars 104 forks source link

Cannot open wsltty from imported distributions #296

Closed yszhang95 closed 3 years ago

yszhang95 commented 3 years ago

Sorry to bother.

I have similar issues to this one during running CentOS7 and fedora. I got the imported source from this link and this link.

I installed the latest version, 3.5.1 of wsltty. It will create the shortcuts under start menu. Neither one work. I clicked the shortcuts and nothing happens. image

Biswa96 commented 3 years ago

Where are the shortcuts pointing to? See the shortcuts properties.

yszhang95 commented 3 years ago

After checking the directory, %LOCALAPPDATA%\wsltty, I find the shortcut. From the properties, I find

C:\Users\MYNAME\AppData\Local\wsltty\bin\mintty.exe --WSL="CentOS7" --configdir="C:\Users\MYNAME\AppData\Roaming\wsltty" -~  -

And wsl -l gives me

Windows Subsystem for Linux Distributions:
CentOS7 (Default)
docker-desktop
fedora
docker-desktop-data
Biswa96 commented 3 years ago

Paste this in Win+R, does it work?

C:\Users\MYNAME\AppData\Local\wsltty\bin\mintty.exe --WSL= --configdir="C:\Users\MYNAME\AppData\Roaming\wsltty" -~  -
yszhang95 commented 3 years ago

It works! Thanks for your kind reply! I am happy to close this issue. Or do you want to keep it open and enhance wsltty later?

Biswa96 commented 3 years ago

I would like to wait for @mintty comment. I am not familiar with the shortcuts creation here. Though I did not find any issue in your provided command.

yszhang95 commented 3 years ago

It seems mintty cannot recognize the option --WSL=CentOS7. Following you suggestion, I changed to --WSL=, it works. With --WSL=CentOS7, Win+R cannot work either.

mintty commented 3 years ago

Works here with CentOS8.

yszhang95 commented 3 years ago

Do you have multiple Linux distributions? If so, it seems this issue cannot be reproduced. Feel free to close it. One follow-up question is how to remove the shortcuts from start menu, since they do not work for me? Simply delete shortcuts under

C:\Users\MYNAME\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\

?

mintty commented 3 years ago

You have multiple distributions yourself, CentOS7 and fedora. Can you start wsltty with the "fedora Terminal" shortcut? And yes, you can simply delete shortcuts.

yszhang95 commented 3 years ago

It does not work either. I can only open the wsltty by leaving WSL= as empty. It will start the default wsl distribution. I can close this issue if this behavior cannot be reproduced. I am sorry I cannot fix this issue by myself because of lack of knowledge. Many thanks for the help from @mintty and @Biswa96 so far!

robolivable commented 3 years ago

I'm having a similar issue, not sure if this should be closed, seems like a bug to me.

yszhang95 commented 3 years ago

A follow-up comment: I unregistered CentOS7 and keep only fedora. After reinstalling wsltty, I still cannot open the shortcuts with WSL=fedora, having to leave it empty as WSL=.

mintty commented 3 years ago

seems like a bug to me.

It seems so, agreed, feel free to reopen, but I cannot do much as long as I don't reproduce the issue. What does mintty -RW say for those who encounter the issue? (You may need to run mintty from cygwin to get its output with this diagnostic option.)

robolivable commented 3 years ago

It seems as though the output is the same whether or not I specify --WSL="Ubuntu":

[rldeo@epislon ~]$ /cygdrive/c/Users/rldeo/AppData/Local/wsltty/bin/mintty.exe -RW --WSL="Ubuntu" --configdir="C:\Users\rldeo\AppData\Roaming\wsltty" -~
WSL distribution name Ubuntu
-- guid {f2d50f5b-c3c9-4208-bdfe-05adca36f054}
-- flag 15
-- root C:\Users\rldeo\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs
-- pack CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc
-- full CanonicalGroupLimited.UbuntuonWindows_2004.2020.424.0_x64__79rhkp1fndgsc
-- icon C:\Program Files\WindowsApps\CanonicalGroupLimited.UbuntuonWindows_2004.2020.424.0_x64__79rhkp1fndgsc\images\icon.ico
[rldeo@epislon ~]$ /cygdrive/c/Users/rldeo/AppData/Local/wsltty/bin/mintty.exe -RW --WSL= --configdir="C:\Users\rldeo\AppData\Roaming\wsltty" -~
WSL distribution name Ubuntu
-- guid {f2d50f5b-c3c9-4208-bdfe-05adca36f054}
-- flag 15
-- root C:\Users\rldeo\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs
-- pack CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc
-- full CanonicalGroupLimited.UbuntuonWindows_2004.2020.424.0_x64__79rhkp1fndgsc
-- icon C:\Program Files\WindowsApps\CanonicalGroupLimited.UbuntuonWindows_2004.2020.424.0_x64__79rhkp1fndgsc\images\icon.ico
[rldeo@epislon ~]$

edit: my default WSL OS installed is Ubuntu. I previously had a Debian installation, but removed it leaving Ubuntu as default.

FWIW, running in Cygwin also lets me see the seg fault:

[rldeo@epislon ~]$ /cygdrive/c/Users/rldeo/AppData/Local/wsltty/bin/mintty.exe --WSL="Ubuntu" --configdir="C:\Users\rldeo\AppData\Roaming\wsltty" -~
Segmentation fault (core dumped)
[rldeo@epislon ~]$ cat mintty.exe.stackdump
Exception: STATUS_ACCESS_VIOLATION at rip=001801F38F2
rax=0000000000000000 rbx=0000000000000000 rcx=0000000000000000
rdx=000000080003A840 rsi=0000000000000000 rdi=00000000FFFFC4C0
r8 =0000000000000000 r9 =0000000000000059 r10=0000000000000008
r11=0000000000000246 r12=0000000000000248 r13=00000001004CA560
r14=00000000FFFFC520 r15=00000000FFFFC4B0
rbp=00000000FFFFC550 rsp=00000000FFFFC458
program=C:\Users\rldeo\AppData\Local\wsltty\bin\mintty.exe, pid 1233, thread main
cs=0033 ds=002B es=002B fs=0053 gs=002B ss=002B
Stack trace:
Frame        Function    Args
000FFFFC550  001801F38F2 (000FFFFC518, 00000000000, 00000000012, 00000000000)
000FFFFC550  00100445539 (0018023A538, 0018023A53C, 001004E0C80, 0010049AD88)
000FFFFC690  00100445658 (00800001AD0, 0080003A830, 0080003A8A0, 00000000000)
000FFFFC690  0010045D680 (0018037DFD1, 000FFFFCDF0, 00000000030, 8080808080808080)
000FFFFCCE0  00180049EFD (00000000000, 00000000000, 00000000000, 00000000000)
000FFFFFFF0  00180047856 (00000000000, 00000000000, 00000000000, 00000000000)
000FFFFFFF0  00180047904 (00000000000, 00000000000, 00000000000, 00000000000)
End of stack trace
[rldeo@epislon ~]$
mintty commented 3 years ago

Please retry with the attached debug version and upload the stack backtrace again: mintty-debug.zip

Also, as the flags value from your mintty -RW listing suggest you're running WSL V2. What if you downgrade one distribution to WSL V1?

@Biswa96, could this be related to #297 or #302?

Biswa96 commented 3 years ago

could this be related to #297 or #302?

Not likely related to wslbridge2. Because OP already confirmed that --WSL= option works but --WSL=fedora does not. Those issue occurs only in Windows 10 build 17763 or before (probably LTSC versions).

yszhang95 commented 3 years ago

After registering CentOS7 back, I have the following issues.

$ /cygdrive/c/Users/yousen/AppData/Local/wsltty/bin/mintty.exe --WSL="CentOS7"
Segmentation fault (core dumped)
$ cat mintty.exe.stackdump
Exception: STATUS_ACCESS_VIOLATION at rip=001801F38F2
rax=0000000000000000 rbx=0000000000000000 rcx=0000000000000000
rdx=000000080003A7D0 rsi=0000000000000000 rdi=00000000FFFFC4D0
r8 =0000000000000000 r9 =0000000000000059 r10=0000000000000008
r11=0000000000000246 r12=0000000000000248 r13=00000001004CA560
r14=00000000FFFFC530 r15=00000000FFFFC4C0
rbp=00000000FFFFC560 rsp=00000000FFFFC468
program=C:\Users\yousen\AppData\Local\wsltty\bin\mintty.exe, pid 323, thread main
cs=0033 ds=002B es=002B fs=0053 gs=002B ss=002B
Stack trace:
Frame        Function    Args
000FFFFC560  001801F38F2 (000FFFFC528, 00000000000, 00000000012, 00000000000)
000FFFFC560  00100445539 (0018023A538, 0018023A53C, 001004E0C80, 0010049AD88)
000FFFFC6A0  00100445658 (00800001A60, 0080003A7C0, 0080003A830, 00000000000)
000FFFFC6A0  0010045D680 (00000000020, 8080808080808080, 00180049E91, 00180048D30)
000FFFFCCE0  00180049EFD (00000000000, 00000000000, 00000000000, 00000000000)
000FFFFFFF0  00180047856 (00000000000, 00000000000, 00000000000, 00000000000)
000FFFFFFF0  00180047904 (00000000000, 00000000000, 00000000000, 00000000000)
End of stack trace

And

$ /cygdrive/c/Users/yousen/AppData/Local/wsltty/bin/mintty-debug.exe --WSL="CentOS7"
Segmentation fault (core dumped)
$ cat mintty-debug.exe.stackdump
Exception: STATUS_ACCESS_VIOLATION at rip=001801F38F2
rax=0000000000000000 rbx=00000000FFFFC200 rcx=0000000000000000
rdx=000000080003A7D0 rsi=0000000000000028 rdi=0000000000000000
r8 =0000000000000000 r9 =0000000000000059 r10=0000000000000008
r11=0000000000000246 r12=0000000000000028 r13=0000000000000000
r14=0000000000000000 r15=0000000000000000
rbp=00000000FFFFC2E0 rsp=00000000FFFFC1A8
program=C:\Users\yousen\AppData\Local\wsltty\bin\mintty-debug.exe, pid 324, thread main
cs=0033 ds=002B es=002B fs=0053 gs=002B ss=002B
Stack trace:
Frame        Function    Args
000FFFFC2E0  001801F38F2 (000FFFFC210, 001004E64B8, 00000000012, 00000000000)
000FFFFC2E0  001004630BB (0080003A7D0, 00100503194, 00100503198, 001004BD9C8)
000FFFFC360  0010046375C (00800000002, 0080003A7C0, 0080003A830, 00000000000)
000FFFFC3F0  00100464A77 (000FFFFCC80, 8080808080808080, 00180049E91, 00180048D30)
000FFFFCCE0  00180049EFD (00000000000, 00000000000, 00000000000, 00000000000)
000FFFFFFF0  00180047856 (00000000000, 00000000000, 00000000000, 00000000000)
000FFFFFFF0  00180047904 (00000000000, 00000000000, 00000000000, 00000000000)
End of stack trace
mintty commented 3 years ago

Thanks; CentOS was not included in your listing from mintty -RW above, can you repeat that please? (Further parameters ignored with -RW). Also, try the updated debug version, running from a command line to see its standard output. Run the dash from the wsltty bin subdirectory first to achieve that. mintty-debug.zip

mintty commented 3 years ago

I've added a safeguard in case DistributionName is undefined in the registry, so it wouldn't crash anymore but not run the distro either. Anyway, I don't think that's the issue; I've installed CentOS7 myself now from the link, as a non-App WSL distribution, and it runs for me.

yszhang95 commented 3 years ago

Sorry for the late response. This update fixes the issue for me. I cloned the latest mintty repository and compile under cygwin. And then replaced the mintty.exe with the bleeding edge version. Now I can run mintty.exe with the options --WSL="CentOS7".

BTW, I am sorry that I made a mistake during the last post. I did not copy the wslbridge2.exe to the directory /bin under cygwin environment. I am not sure if the error messages were relevant to the issue that you fixed. I am truly sorry about this if the meessages mislead you.

Many thanks for fixing this issue! It is really great to switch the WSL distributions under mintty.

yszhang95 commented 3 years ago

Maybe we can close this issue if @robolivable can confirm the safeguard in mintty also help him out?

robolivable commented 3 years ago

Sorry I've been held up with stuff over the weekend, I'll take a look tonight and report back.

robolivable commented 3 years ago

Sorry for the lateness, it seems like the safeguard commit works for me as well. Specifying any distribution (I'm using both Ubuntu and Alpine) seems to work without crashing on my end.