microsoft / microsoft/vscode-remote-release

Ripgrep pinned at 100% cpu when connecting to remote server.

Open
#11,220 2 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

ssh
Dominant language
Dockerfile
Stars
4.2k
Forks
469
Avg merge
1d 1h
Merged PRs (30d)
1

Description

Is there an existing issue for this bug?
  • I have searched the existing open issues and found none that apply.
  • If I find any issue of interest that is related or closed, I will included a link to it in this issue.
Required Troubleshooting Steps
  • I have read and performed the troubleshooting steps
  • I have tried both values of the remote.SSH.useLocalServer setting
  • My issue was not covered in the Tips and Tricks linked from the Troubleshooting Wiki.
  • I will include a complete copy of my Remote - SSH logs by running Remote-SSH: Show Log in the command palette or from View > Output in the menu bar
[Optional] Diagnose with Copilot

I did not ask the @remote-ssh participant for help

In step 2 of the troubleshooting wiki, what was the result of running the generated SSH command verbatim outside of VS Code?

I COULD successfully SSH to the remote machine with the generated SSH command

Remote-SSH Log
Remote-SSH Log

[12:15:24.152] Log Level: 2
[12:15:24.169] VS Code version: 1.104.2
[12:15:24.169] Remote-SSH version: remote-ssh@0.120.0
[12:15:24.169] win32 x64
[12:15:24.171] SSH Resolver called for "ssh-remote+unraid", attempt 1
[12:15:24.172] remote.SSH.useLocalServer = false
[12:15:24.172] remote.SSH.useExecServer = true
[12:15:24.172] remote.SSH.bindHost = {}
[12:15:24.172] remote.SSH.showLoginTerminal = false
[12:15:24.173] remote.SSH.remotePlatform = {"unraid":"linux","UniMachine":"linux","Phorge":"linux","phorge":"linux","192.168.1.173":"linux","4.212.240.190":"linux","172.205.210.121":"linux"}
[12:15:24.173] remote.SSH.path = undefined
[12:15:24.173] remote.SSH.configFile = undefined
[12:15:24.173] remote.SSH.useFlock = true
[12:15:24.173] remote.SSH.lockfilesInTmp = false
[12:15:24.173] remote.SSH.localServerDownload = auto
[12:15:24.173] remote.SSH.remoteServerListenOnSocket = false
[12:15:24.173] remote.SSH.defaultExtensions = []
[12:15:24.173] remote.SSH.defaultExtensionsIfInstalledLocally = []
[12:15:24.173] remote.SSH.loglevel = 2
[12:15:24.173] remote.SSH.enableDynamicForwarding = true
[12:15:24.173] remote.SSH.enableRemoteCommand = false
[12:15:24.174] remote.SSH.serverPickPortsFromRange = {}
[12:15:24.174] remote.SSH.serverInstallPath = {}
[12:15:24.174] remote.SSH.permitPtyAllocation = false
[12:15:24.174] remote.SSH.preferredLocalPortRange = undefined
[12:15:24.174] remote.SSH.useCurlAndWgetConfigurationFiles = false
[12:15:24.174] remote.SSH.experimental.chat = false
[12:15:24.174] remote.SSH.experimental.enhancedSessionLogs = false
[12:15:24.174] remote.SSH.httpProxy = {}
[12:15:24.174] remote.SSH.httpsProxy = {}
[12:15:24.185] SSH Resolver called for host: unraid
[12:15:24.185] Setting up SSH remote "unraid"
[12:15:24.194] Using commit id "e3a5acfb517a443235981655413d566533107e92" and quality "stable" for server
[12:15:24.194] Extensions to install: 
[12:15:24.201] Install and start server if needed
[12:15:24.204] Checking ssh with "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\bin\x64\ssh.exe -V"
[12:15:24.206] Got error from ssh: spawn C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\bin\x64\ssh.exe ENOENT
[12:15:24.206] Checking ssh with "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\bin\ssh.exe -V"
[12:15:24.207] Got error from ssh: spawn C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v13.0\bin\ssh.exe ENOENT
[12:15:24.207] Checking ssh with "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\bin\ssh.exe -V"
[12:15:24.208] Got error from ssh: spawn C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\bin\ssh.exe ENOENT
[12:15:24.208] Checking ssh with "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\libnvvp\ssh.exe -V"
[12:15:24.209] Got error from ssh: spawn C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.9\libnvvp\ssh.exe ENOENT
[12:15:24.209] Checking ssh with "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8\bin\ssh.exe -V"
[12:15:24.210] Got error from ssh: spawn C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8\bin\ssh.exe ENOENT
[12:15:24.210] Checking ssh with "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8\libnvvp\ssh.exe -V"
[12:15:24.211] Got error from ssh: spawn C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8\libnvvp\ssh.exe ENOENT
[12:15:24.211] Checking ssh with "C:\Program Files\Microsoft SDKs\Azure\CLI2\wbin\ssh.exe -V"
[12:15:24.211] Got error from ssh: spawn C:\Program Files\Microsoft SDKs\Azure\CLI2\wbin\ssh.exe ENOENT
[12:15:24.211] Checking ssh with "C:\WINDOWS\system32\ssh.exe -V"
[12:15:24.212] Got error from ssh: spawn C:\WINDOWS\system32\ssh.exe ENOENT
[12:15:24.212] Checking ssh with "C:\WINDOWS\ssh.exe -V"
[12:15:24.213] Got error from ssh: spawn C:\WINDOWS\ssh.exe ENOENT
[12:15:24.213] Checking ssh with "C:\WINDOWS\System32\Wbem\ssh.exe -V"
[12:15:24.214] Got error from ssh: spawn C:\WINDOWS\System32\Wbem\ssh.exe ENOENT
[12:15:24.214] Checking ssh with "C:\WINDOWS\System32\WindowsPowerShell\v1.0\ssh.exe -V"
[12:15:24.215] Got error from ssh: spawn C:\WINDOWS\System32\WindowsPowerShell\v1.0\ssh.exe ENOENT
[12:15:24.215] Checking ssh with "C:\WINDOWS\System32\OpenSSH\ssh.exe -V"
[12:15:24.253] > OpenSSH_for_Windows_9.5p2, LibreSSL 3.8.2

[12:15:24.270] Running script with connection command: "C:\WINDOWS\System32\OpenSSH\ssh.exe" -T -D 50235 unraid sh
[12:15:24.271] Generated SSH command: 'type "C:\Users\MJERVE~1\AppData\Local\Temp\vscode-linux-multi-line-command-unraid-502498570.sh" | "C:\WINDOWS\System32\OpenSSH\ssh.exe" -T -D 50235 unraid sh'
[12:15:24.272] Using connect timeout of 17 seconds
[12:15:24.272] Terminal shell path: C:\WINDOWS\System32\cmd.exe
[12:15:24.510] > 
[12:15:24.510] Got some output, clearing connection timeout
[12:15:25.337] > dd67e4ae88cc: running
[12:15:25.360] > Script executing under PID: 101373
> Found existing installation at /root/.vscode-server...
> Starting VS Code CLI...
> Removing old logfile at /root/.vscode-server/.cli.e3a5acfb517a443235981655413d566533107e92.log
> Spawned remote CLI: 101426
> Waiting for server log...
[12:15:25.374] > dd67e4ae88cc: start
> listeningOn==127.0.0.1:45363==
> osReleaseId==unraid-os==
> arch==x86_64==
> vscodeArch==x64==
> bitness==64==
> tmpDir==/run/user/0==
> platform==linux==
> unpackResult====
> didLocalDownload==0==
> downloadTime====
> installTime====
> serverStartTime==36==
> execServerToken==11a11a11-aa1a-1aa1-1a1a-a111a1111111==
> platformDownloadPath==cli-alpine-x64==
> SSH_AUTH_SOCK====
> DISPLAY====
> dd67e4ae88cc: end
[12:15:25.375] Received install output: 
listeningOn==127.0.0.1:45363==
osReleaseId==unraid-os==
arch==x86_64==
vscodeArch==x64==
bitness==64==
tmpDir==/run/user/0==
platform==linux==
unpackResult====
didLocalDownload==0==
downloadTime====
installTime====
serverStartTime==36==
execServerToken==11a11a11-aa1a-1aa1-1a1a-a111a1111111==
platformDownloadPath==cli-alpine-x64==
SSH_AUTH_SOCK====
DISPLAY====

[12:15:25.375] Remote server is listening on port 45363
[12:15:25.375] Parsed server configuration: {"serverConfiguration":{"remoteListeningOn":{"port":45363},"osReleaseId":"unraid-os","arch":"x86_64","sshAuthSock":"","display":"","tmpDir":"/run/user/0","platform":"linux","execServerToken":"11a11a11-aa1a-1aa1-1a1a-a111a1111111"},"serverStartTime":36,"installUnpackCode":""}
[12:15:25.378] Starting forwarding server. local port 50239 -> socksPort 50235 -> remotePort 45363
[12:15:25.379] Forwarding server listening on port 50239
[12:15:25.379] Waiting for ssh tunnel to be ready
[12:15:25.381] [Forwarding server port 50239] Got connection 0
[12:15:25.382] Tunneled port 45363 to local port 50239
[12:15:25.382] Resolved "ssh-remote+unraid" to "port 50239"
[12:15:25.388] Initizing new exec server for ssh-remote+unraid
[12:15:25.388] Resolving exec server at port 50239
[12:15:25.389] [Forwarding server port 50239] Got connection 1
[12:15:25.537] Exec server for ssh-remote+unraid created and cached
[12:15:25.537] Extensions to install: 
[12:15:25.544] ------




[12:15:25.544] No hints found in the recent session.
[12:15:25.599] [server] Checking /root/.vscode-server/cli/servers/Stable-e3a5acfb517a443235981655413d566533107e92/log.txt and /root/.vscode-server/cli/servers/Stable-e3a5acfb517a443235981655413d566533107e92/pid.txt for a running server...
[12:15:25.599] [server] Found running server (pid=28869)
[12:15:39.697] Opening exec server for ssh-remote+unraid
[12:15:39.764] Verified and reusing cached exec server for ssh-remote+unraid
[12:15:39.765] No hints found in the recent session.
[12:15:42.206] Opening exec server for ssh-remote+unraid
[12:15:42.256] Verified and reusing cached exec server for ssh-remote+unraid
[12:15:42.256] No hints found in the recent session.
[12:15:42.305] Opening exec server for ssh-remote+unraid
[12:15:42.359] Verified and reusing cached exec server for ssh-remote+unraid
[12:15:42.359] No hints found in the recent session.

Expected Behavior

Connects to server and works normally without bringing servers to it's knees.

Actual Behavior

Connects to server and pins cpu to 100% for the first 10-15 minutes while ripgrep does ~something.

Image
Steps To Reproduce
  1. Connect to remote server as / path
  2. open htop or top and see that ripgrep is trying to grep all files on the file system
  3. wait 10-15 minutes until it to finish a load disappear of server.
Anything else?

I should note that I am connecting to a /mnt/nvme/appdata folder where all the data for ~40 docker containers reside. I assume it's trying to parse all this data and build a cache using it. (240 GB of files), but i assume this same issue would occur with large mono repos as well.

This might also be an edge case but would be a nice to have to solve so it vscode doesn't being servers to their knees when you connect to them for debugging.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the Remote-SSH log and the generated SSH command, then reproduce the connection while monitoring the remote host with htop or top. Investigate which Remote-SSH startup step launches ripgrep and how it scans the /mnt/nvme/appdata tree; done means connecting without sustained 100% CPU or a 10–15 minute scan.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker
Domain
devtools
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.