VSCode CodeQL update breaks the CodeQL CLI installation either in Windows or WSL (Linux on Windows)

Open
#1,464 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
35/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
typescript, vscode
Domain
devtools

Research direction

Reproduce the installation flow by installing the VSCode CodeQL extension in Windows and WSL, then compare the globalStorage distribution folders shown in the report. Start with the QL toolbar download path and verify that updating one environment does not make the other look for the wrong distribution directory.

Written by the indexing model from the issue text.

Description

bug VSCode

Describe the bug
VSCode allows opening WSL folders and working with them from Windows. VSCode has native support for running extensions in this scenario and allows to select which extensions installed in Windows should also be installed in WSL:
image
However VSCode CodeQL extension shares some global state, because installing the extension in WSL breaks the installation on Windows and reinstallation of it in Windows breaks it in WSL.

Version
All of them, it bugs me already for a while.

To reproduce

  1. Install VSCode CodeQL extension in VSCode in Windows. Make sure the CodeQL CLI is downloaded and installed (I usually click on the QL toolbar button to trigger it.). See it succeeded. Close the VSCode window.
  2. Open your WSL Linux terminal and run code . It opens VSCode with the current WSL folder opened.
  3. Go to extensions, search for the CodeQL extension and click Install in WSL. Click QL button in the toolbar to trigger CodeQL CLI download. See it succeeded.
  4. Close VSCode. Open the VSCode in Windows (Note that you need to open a folder in Windows, otherwise it opens the last known session, i.e. the WSL one.). Click on QL button in toolbar and see that VSCode fails to find CodeQL CLI path.

Expected behavior
Updating CodeQL in WSL doesn't break it in Windows. It is completely independent from the version in Windows or updated together.

Additional context
It looks like CodeQL extension generates incremental folder names for the CLI installation. So when my Windows installation is put to c:\Users\name\AppData\Roaming\Code\User\globalStorage\github.vscode-codeql\distribution30\ folder, the WSL installation is put into ~/.vscode-server/data/User/globalStorage/github.vscode-codeql/distribution31/. When I open VSCode in Windows it fails to find CodeQL CLI with a message WARNING: Expected to find a CodeQL CLI executable at c:\Users\name\AppData\Roaming\Code\User\globalStorage\github.vscode-codeql\distribution31\codeql\codeql.exe but one was not found. Will try PATH.. Note the distribution31 in the path.

Related to https://github.com/github/vscode-codeql/issues/1380

Dominant language
TypeScript
Stars
539
Forks
240
Avg merge
2d 6h
Merged PRs (30d)
29

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.

More from github/vscode-codeql

All issues in github/vscode-codeql

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.