Open Ethan-Chen-plus opened 9 months ago
Hi I'm an AI powered bot that finds similar issues based off the issue title.
Please view the issues below to see if they solve your problem, and if the issue describes your problem please consider closing this one and thumbs upping the other issue to help us prioritize it. Thank you!
Note: You can give me feedback by thumbs upping or thumbs downing this comment.
/dump
I make my wsl run for 5 minutes with no response for Log collection is running. Please reproduce the problem and press any key to save the logs.
However File size too big: 25 MB are allowed, 53 MB were attempted to upload.
So I upload to repo:https://github.com/Ethan-Chen-plus/WslLogs/blob/main/WslLogs-2023-12-05_09-18-19.zip
Thank you @Ethan-Chen-plus. Looking at the dump it looks like things are stuck on the Linux side.
Let's see what's happening inside the VM. Can you please:
wsl.exe --debug-shell
This should help us understand where things are stuck
Thank you @Ethan-Chen-plus. Looking at the dump it looks like things are stuck on the Linux side.
Let's see what's happening inside the VM. Can you please:
- Reproduce the issue
- Open a debug shell via:
wsl.exe --debug-shell
- Paste the content of this script inside the debug shell
- Share the output on this issue
- The script will also output the path to a folder where it wrote some logs files, please share that folder here as well
This should help us understand where things are stuck
Let's suppose I need to do all of that to debug a potential problem within the distribution which currently isn't available from the Microsoft Store. How therefore do I go about invoking the debug shell? This was returned from a regular Powershell routine: "PS C:\Users\GCL\Desktop> wsl --debug-shell The system cannot find the file specified. Error code: Wsl/DebugShell/ERROR_FILE_NOT_FOUND" And this was returned from an Administration level one: "PS C:\Users\GCL\Desktop> cd .. PS C:\Users\GCL> wsl --debug-shell The system cannot find the file specified. Error code: Wsl/DebugShell/ERROR_FILE_NOT_FOUND"
The strange part I was able to invoke the debug shell earlier, but wasn't able to paste the shell script described there.
I used command wsl.exe --debug-shell
and pasted the
root@DESKTOP-3JRQ3HI [ ~ ]# set -ue
if [ $(whoami) != "root" ]; then
t --system)" script must be run as root in the system distro (via wsl.exe -u root
exit 1
fi
ts=$(date +%F_%H-%M-%S)
target="/mnt/c/wsl-init-dump-$ts"
mkdir -p "$target"
tdnf install -y gdb
bash -c "cd $target && gcore -a \$(pgrep init)"
stack_log="$target/stacks.txt"
fd_log="$target/fd.txt"
for pid in $(pgrep init); do
echo -e "\nProcess: $pid" >> "$stack_log"
echo -e "\nProcess: $pid" >> "$fd_log"
for tid in $(ls "/proc/$pid/task" || true); do
echo "tid: $tid" >> "$stack_log"
echo "Logs and dumps written in $target"t"rueck_log" || true
Loaded plugin: tdnfrepogpgcheck
Refreshing metadata for: 'CBL-Mariner Official Extras 2.0 x86_64'
Refreshing metadata for: 'CBL-Mariner Official Microsoft 2.0 x86_64'
Refreshing metadata for: 'CBL-Mariner Official Base 2.0 x86_64'
mariner-official-base 1285195 100%
Installing:
python3-libs x86_64 3.9.14-8.cm2 mariner-official-base 30.73M 10.41M
python3 x86_64 3.9.14-8.cm2 mariner-official-base 45.46k 35.81k
mpfr x86_64 4.1.0-2.cm2 mariner-official-base 2.72M 1.44M
zstd x86_64 1.5.0-1.cm2 mariner-official-base 1009.51k 424.70k
elfutils-default-yama-scope noarch 0.186-1.cm2 mariner-official-base 1.77k 33.03k
zstd-devel x86_64 1.5.0-1.cm2 mariner-official-base 171.69k 50.60k
xz-devel x86_64 5.2.5-1.cm2 mariner-official-base 329.15k 100.59k
elfutils-libelf-devel x86_64 0.186-1.cm2 mariner-official-base 32.98k 39.95k
elfutils x86_64 0.186-1.cm2 mariner-official-base 3.32M 1.19M
elfutils-devel x86_64 0.186-1.cm2 mariner-official-base 190.29k 87.38k
gdb x86_64 11.2-2.cm2 mariner-official-base 11.57M 4.97M
Total installed size: 50.08M
Total download size: 18.77M
python3-libs 10919586 100%
python3 36668 100%
mpfr 1510228 100%
zstd 434888 100%
elfutils-default-yama-scope 33821 100%
zstd-devel 51815 100%
xz-devel 103009 100%
elfutils-libelf-devel 40906 100%
elfutils 1248214 100%
elfutils-devel 89476 100%
gdb 5210872 100%
Testing transaction
Running transaction
Installing/Updating: python3-3.9.14-8.cm2.x86_64
Installing/Updating: python3-libs-3.9.14-8.cm2.x86_64
Installing/Updating: elfutils-libelf-devel-0.186-1.cm2.x86_64
Installing/Updating: xz-devel-5.2.5-1.cm2.x86_64
Installing/Updating: elfutils-default-yama-scope-0.186-1.cm2.noarch
Installing/Updating: zstd-1.5.0-1.cm2.x86_64
Installing/Updating: zstd-devel-1.5.0-1.cm2.x86_64
Installing/Updating: elfutils-0.186-1.cm2.x86_64
Installing/Updating: elfutils-devel-0.186-1.cm2.x86_64
Installing/Updating: mpfr-4.1.0-2.cm2.x86_64
Installing/Updating: gdb-11.2-2.cm2.x86_64
[New LWP 146]
0x00000000003e485d in ?? ()
Saved corefile core.1
[Inferior 1 (process 1) detached]
0x00000000003e485d in ?? ()
warning: target file /proc/152/cmdline contained unexpected null characters
Saved corefile core.152
[Inferior 1 (process 152) detached]
[New LWP 161]
0x00000000003e485d in ?? ()
warning: target file /proc/160/cmdline contained unexpected null characters
Saved corefile core.160
[Inferior 1 (process 160) detached]
0x00000000003e485d in ?? ()
Saved corefile core.162
[Inferior 1 (process 162) detached]
warning: Target and debugger are in different PID namespaces; thread lists and other data are likely unreliable. Connect to gdbserver inside the container.
0x00000000003e485d in ?? ()
Saved corefile core.163
[Inferior 1 (process 163) detached]
Logs and dumps written in /mnt/c/wsl-init-dump-2023-12-06_15-16-04
root@DESKTOP-3JRQ3HI [ ~ ]#
But how to copy and open this folder?
I agree with @Ethan-Chen-plus here. What is also needed is that of feedback from the author. No not yourself, @Ethan-Chen-plus I mean any of the folks from Microsoft who happens to be involved here.
Thank you @Ethan-Chen-plus. /mnt/c
maps to your C:
drive in Windows so you should be able to just open the windows explorer from the start menu and grab the files from there.
@OneBlue I just repeated @Ethan-Chen-plus did and found the folder it created. However, since the VM is running properly, I did in fact see nothing there. Is this normal for a properly working image?
However I can't find it in my C:
drive. I looked into the script.
I found that it just make a directory:
And since there is no '/mnt/c' before executing this script, I thought that's why I couldn't found it in 'C:'.
I think we should mount 'C:' to '/mnt/c' in wsl debugger before we execute the script. But how to mount?
@Ethan-Chen-plus It did for my run.
Oh I see what's happening @Ethan-Chen-plus. This is most likely because things get stuck before /mnt/c even gets mounted.
Let's try another approach: Can you run this script instead ? It will output everything on stdout so there should be no need to access /mnt/c.
The output can be seen in the detachment. log.txt
Thank you @Ethan-Chen-plus. With these logs we found a bug that triggers the hang you're seeing.
Although that bug only explains half of your symptoms. Most likely something in your distro is causing init to crash.
Can you try to add:
[wsl2]
safeMode=true
In %USERPROFILE%/.wslconfig
And see if the distribution starts that way ? Also is systemd enabled inside your distribution ?
I added it as below.But Still it has no response.
@benhillis Hi, benhillis! Thanks for your work. But how can I get this update? After updating my windows11, could I get this new feature?
@Ethan-Chen-plus: You can get it by running: wsl.exe --install --pre-release
@OneBlue However this can't work.This is just printing some command usage information about wsl.exe
in the console.
PS C:\Users\25122> wsl.exe --install --pre-release
Copyright (c) Microsoft Corporation. All rights reserved.
For privacy information about this product, please visit https://aka.ms/privacy.
Usage: wsl.exe [Parameters] [Options...] [Command Line]
Parameters for running Linux binaries:
If no command line is provided, wsl.exe will launch the default shell.
--exec, -e <CommandLine>
Execute the specified command without using the default Linux shell.
--shell-type <standard|login|none>
Execute the specified command with the provided shell type.
--
Pass the remaining command line as-is.
Options:
--cd <Directory>
Set the specified directory as the current working directory.
If using ~, it will use the Linux user's home path. If the path starts with
/, it will be interpreted as an absolute Linux path.
Otherwise, the value must be an absolute Windows path.
--distribution, -d <Distro>
Run the specified distribution.
--user, -u <UserName>
Run as the specified user.
--system
Start a shell for the system distribution.
Parameters for managing Windows Subsystem for Linux:
--help
Display usage information.
--debug-shell
Open a WSL2 debug shell for diagnostic purposes.
--install [Distribution] [Options...]
Install a distribution of Windows Subsystem for Linux.
For a list of valid distributions, use "wsl.exe --list --online".
Options:
--no-launch, -n
Do not launch the distribution after installation.
--web-download
Download the distribution from the internet instead of the Microsoft Store.
--no-distribution
Only install the required optional components, without installing the distribution.
--manage <Distro> <Options...>
Change distribution-specific options.
Options:
--set-sparse, -s <true|false>
Set the VHDX of the distribution to be sparse, allowing for automatic disk space reclamation.
--mount <Disk>
Attach and mount a physical or virtual disk in all WSL 2 distributions.
Options:
--vhd
Specify <Disk> as a reference to a virtual hard disk.
--bare
Attach the disk to WSL2 but do not mount it.
--name <Name>
Mount the disk with a custom name for the mount point.
--type <Type>
The file system to use when mounting the disk (if not specified, defaults to ext4).
--options <Options>
Additional mount options.
--partition <Index>
The index of the partition to mount (defaults to the entire disk if not specified).
--set-default-version <Version>
Change the default installation version for new distributions.
--shutdown
Terminate all running distributions and the WSL 2 lightweight utility VM immediately.
--status
Display the status of Windows Subsystem for Linux.
--unmount [Disk]
Unmount and detach disks from all WSL 2 distributions.
If called without parameters, unmount and detach all disks.
--update
Update the packages in Windows Subsystem for Linux.
Options:
--pre-release
Download pre-release versions if available.
--version, -v
Display version information.
Parameters for managing distributions within Windows Subsystem for Linux:
--export <Distro> <FileName> [Options]
Export the distribution to a tar file.
The filename can be "-" for stdout.
Options:
--vhd
Specify that the distribution should be exported as a .vhdx file.
--import <Distro> <InstallLocation> <FileName> [Options]
Import the specified tar file as a new distribution.
The filename can be "-" for stdin.
Options:
--version <Version>
Specify the version to use for the new distribution.
--vhd
Specify that the provided file is a .vhdx file instead of a tar file.
This operation creates a copy of the .vhdx file at the specified installation location.
--import-in-place <Distro> <FileName>
Import the specified .vhdx file as a new distribution.
The format of this virtual hard disk must be set to ext4.
--list, -l [Options]
List distributions.
Options:
--all
List all distributions, including those currently being installed or uninstalled.
--running
List only currently running distributions.
--quiet, -q
Display only the distribution names.
--verbose, -v
Display detailed information about the distributions.
--online, -o
Display a list of available distributions for installation using "wsl --install".
--set-default, -s <Distro>
Set the distribution as the default.
--set-version <Distro> <Version>
Change the version of the specified distribution.
--terminate, -t <Distro>
Terminate the specified distribution.
--unregister <Distro>
Unregister the distribution and delete the root filesystem.
@Ethan-Chen-plus Try wsl --update --pre-release
because you already have wsl installed.
(I'm not affiliated with the WSL team, just happened upon this from reading release notes and thought I'd try to help while the MS staff are away for the holidays).
@mosullivan93 Thank you, this works.However there's another issue occurred
PS C:\Users\25122> wsl --update --pre-release
Checking for updates.
Updating Windows Subsystem for Linux to version: 2.0.15.
(Here are some progress bars displayed.)
Checking for updates.
Updating Windows Subsystem for Linux to version: 2.0.15.
PS C:\WINDOWS\system32> wsl
wsl: Safe mode is enabled - many features will be disabled
Catastrophic failure
Error code: Wsl/Service/CreateInstance/E_UNEXPECTED
@benhillis Thanks. But there're still errors:
PS C:\WINDOWS\system32> wsl --update --pre-release
Checking for updates.
Updating Windows Subsystem for Linux to version: 2.1.0.
PS C:\WINDOWS\system32> wsl
wsl: Secure mode is enabled - many features will be disabled
Critical error
Error code: Wsl/Service/CreateInstance/E_UNEXPECTED
PS C:\WINDOWS\system32>
Thank you @Ethan-Chen-plus. This is interesting. Can you collect updated /logs with 2.1.0 ?
I have the same problem as this issue. I have upgraded the version to 2.1.0.0, but it still freezes when running.I have sent the log by email and hope to get a reply as soon as possible
@OneBlue Thank you for reopening the issue, however there was a promble: debug-shell
couldn't be used now:
PS C:\Users\25122> wsl.exe --debug-shell
The system cannot find the file specified.
Error code: Wsl/DebugShell/ERROR_FILE_NOT_FOUND
So I can't collect the logs.
Thanks @Ethan-Chen-plus. The debug shell is only available if WSL is already running. Can you try to start wsl first ?
@OneBlue Sorry but I can't start wsl first as below shown:
PS C:\Users\25122> wsl
wsl: Safe mode is enabled - many features will be disabled
Catastrophic failure
Error code: Wsl/Service/CreateInstance/E_UNEXPECTED
PS C:\Users\25122> wsl
Catastrophic failure
Error code: Wsl/Service/CreateInstance/E_UNEXPECTED
PS C:\Users\25122> wsl
Catastrophic failure
Error code: Wsl/Service/CreateInstance/E_UNEXPECTED
PS C:\Users\25122> wsl.exe --debug-shell
The system cannot find the file specified.
Error code: Wsl/DebugShell/ERROR_FILE_NOT_FOUND
@Ethan-Chen-plus: Interesting, it looks like wsl is just failing to start.
Can you collect regular /logs in this case ?
@OneBlue The logs: WslLogs-2024-01-20_10-28-13.zip
Terminal1:
PS C:\WINDOWS\system32> Set-ExecutionPolicy Bypass -Scope Process -Force
PS C:\WINDOWS\system32> .\collect-wsl-logs.ps1
Directory: C:\WINDOWS\system32
Operation completed successfully.
Operation completed successfully.
Operation completed successfully.
Operation completed successfully.
Log collection is running. Please reproduce the problem and press any key to save the logs.
Saving logs...
100% [>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>]
Logs saved in: C:\WINDOWS\system32\WslLogs-2024-01-20_10-28-13.zip. Please attach that file to the GitHub issue.
At the same time I reproduced the error in Terminal2:
PS C:\Users\25122> wsl
Catastrophic failure
Error code: Wsl/Service/CreateInstance/E_UNEXPECTED
PS C:\Users\25122> wsl
Catastrophic failure
Error code: Wsl/Service/CreateInstance/E_UNEXPECTED
PS C:\Users\25122> wsl.exe --debug-shell
The system cannot find the file specified.
Error code: Wsl/DebugShell/ERROR_FILE_NOT_FOUND
PS C:\Users\25122> wsl.exe --debug-shell
The system cannot find the file specified.
Error code: Wsl/DebugShell/ERROR_FILE_NOT_FOUND
PS C:\Users\25122> wsl.exe --debug-shell
The system cannot find the file specified.
Error code: Wsl/DebugShell/ERROR_FILE_NOT_FOUND
Hope the can help to find the reason.
Hey, even I'm facing the same problem, wsl
command, not showing any output. Also not abe to access the remote wsl window on vscode using esl extension. I have checked that everything including the wsl settings is enabled, and Vitualization is also enabled in BIOS settings.
Still not able to figure out. Also when running this command -> wsl --update --pre-release
I'm getting some errors, will share the error logs.
This is the Error i'm getting:
Error logs: wsl-install-logs.txt
VSCode extension not working, not opening remote wsl:
WSL enabled:
Powershell not giving any response on any wsl
command:
Stuck in this since days, still not getting what's wrong here.
Would be helpful if anyone finds a solution to this. Thanks for your time.
@OneBlue Hi! 👋 Are you still here?
same issue but i fix with turn off ntfs compress
it can't change compress option but can be able to copy and remove old
I had the same problem. I was able to solve it by restarting Windows with as few programs as possible and only with absolutely necessary hardware and then running the wsl --update --pre-release with an administrator cmd.exe. Previously, this command always ended with errors. I think it is due to a USB drive that is also not visible in wsl Linux under /mnt, but now I can't get the negative case to work either.
I had the same problem. I was able to solve it by restarting Windows with as few programs as possible and only with absolutely necessary hardware and then running the wsl --update --pre-release with an administrator cmd.exe. Previously, this command always ended with errors. I think it is due to a USB drive that is also not visible in wsl Linux under /mnt, but now I can't get the negative case to work either.
formerly, I worked it great, but I install a usb-driver for wsl can use usb to download Bin. Then, it be stuck when i install usb driver. i try to uninstall everything about wsl, close Windows's virtual platform then open it , restart many times and so forth. after this, i find what i was doing was not working.
Windows Version
10.0.25977.1000
WSL Version
0.0.0.0
Are you using WSL 1 or WSL 2?
Kernel Version
No response
Distro Version
Ubuntu 1804
Other Software
'wsl' works well before, and I enjoy it. However, these days I can't open it.
Repro Steps
just using command
wsl
.Expected Behavior
it should come into the ‘/home/kewei’ and show dedtails.
Actual Behavior
Diagnostic Logs
No response
the log file as the attachment: WslLogs-2023-12-02_22-25-54.zip
I have tried these, but none of them works: