Skip to content

Unable to view source code files in a CodeQL database over SSH remote session #872

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

Open
electricworry opened this issue May 27, 2021 · 3 comments
Labels
bug Something isn't working VSCode

Comments

@electricworry
Copy link

Describe the bug
When connecting from VSCode (Linux) to a remote Linux server over SSH, it is not possible to view the source files contained in a CodeQL database. This includes browsing the archive in the Explorer, and also following links in CodeQL results. An error such as the following will be shown:

Unable to open 'format_g726.c (read-only)': Unable to read file 'codeql-zip-archive://0-46/home/electricworry/projects/fuzzing/asterisk-db/src.zip/home/electricworry/projects/fuzzing/asterisk/formats/format_g726.c' (TypeError: Cannot read property 'pipes' of undefined).

Version
CodeQL extension version: 1.4.8
CodeQL CLI version: 2.4.6
Platform: linux x64

Version: 1.56.2
Commit: 054a9295330880ed74ceaedda236253b4f39a335
Date: 2021-05-12T16:45:26.313Z
Electron: 12.0.4
Chrome: 89.0.4389.114
Node.js: 14.16.0
V8: 8.9.255.24-electron.0
OS: Linux x64 5.8.0-53-generic

To reproduce

  • Install latest vscode from debian repositories (currently 1.56.2).
  • Install Remote SSH and CodeQL extensions.
  • Connect to a remote Linux host.
  • Add a codeql database folder (such as one present on the remote host)
  • In the Explorer, expand the database. Files are browsable. But select any file and an error will be thrown.

Expected behavior
The source file should be opened.

Additional context
This works correctly when working locally on both Linux hosts. It's only when working over SSH remotely that I have experienced this.

@electricworry electricworry added the bug Something isn't working label May 27, 2021
@aeisenberg
Copy link
Contributor

Thanks for reporting. We are aware that the extension does not work well when used with the remote ssh extension. When we fix these issues, we will be sure that your use case is working as well.

@Manouchehri
Copy link

Hmm, is there a way we could disable the Choose Database from Archive / codeQLDatabases.chooseDatabaseArchive command in the UI just for remote users?

https://code.visualstudio.com/api/advanced-topics/remote-extensions#varying-behaviors-when-running-remotely-or-in-the-codespaces-browser-editor

I tried to see if I could add this myself, but not sure how to do it when the UI button is referenced here in a JSON file (instead of TypeScript):

{
"command": "codeQLDatabases.chooseDatabaseArchive",
"title": "Choose Database from Archive",
"icon": {
"light": "media/light/archive-plus.svg",
"dark": "media/dark/archive-plus.svg"
}
},

@aeisenberg
Copy link
Contributor

That code snippet is the declaration of the command. The command is bound to an action in this code:

this.push(
commandRunnerWithProgress(
'codeQLDatabases.chooseDatabaseArchive',
this.handleChooseDatabaseArchive,
{
title: 'Adding database from archive',
}
)
);

If you wanted to change behaviour depending on the workspace kind, you would wrap the code above in some sort of if statement.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working VSCode
Projects
None yet
Development

No branches or pull requests

3 participants