microsoft / vscode-remote-release

Visual Studio Code Remote Development: Open any folder in WSL, in a Docker container, or on a remote machine using SSH and take advantage of VS Code's full feature set.
https://aka.ms/vscode-remote
Other
3.67k stars 292 forks source link

pylance extension does not install to devcontainer (most of the time) #10473

Open omlnaut opened 3 months ago

omlnaut commented 3 months ago

Does this issue occur when all extensions are disabled?: Yes/No

The python extension sometimes fails to install into a devcontainer, but not always. I tried narrowing down a specific combination of extensions that causes this, but couldn't find any. I.e. the error occurs when ms-python.python and eamodio.gitlens are the only extensions active. But then again, sometimes it just works to install both.

Steps to Reproduce:

  1. Initialize a devcontainer configuration pointing to a local docker file (which derives from python:3.11-bookworm)
  2. Add list of extensions to .devcontainer.json (see below)
  3. "Rebuilt without cache" a couple of times. Most of the time it fails to install debugpy (and the whole python extension as a result)

List of extensions: "extensions": [ "ms-python.python", "ms-toolsai.jupyter", "ms-python.black-formatter", "mhutchie.git-graph", "github.copilot", "github.copilot-chat", "felipecaputo.git-project-manager", "gitlab.gitlab-workflow", "eamodio.gitlens" ]

When the installation fails, the log shows: [27774 ms] rejected promise not handled within 1 second: Extract: ENOENT: no such file or directory, open '/root/.vscode-server/extensionsCache/ms-python.vscode-pylance-2024.7.1' stack trace: Error: ENOENT: no such file or directory, open '/root/.vscode-server/extensionsCache/ms-python.vscode-pylance-2024.7.1' at v (/vscode/vscode-server/bin/linux-x64/f1e16e1e6214d7c44d078b1f0607b2388f29d729/out/vs/server/node/server.main.js:106:25808) at /vscode/vscode-server/bin/linux-x64/f1e16e1e6214d7c44d078b1f0607b2388f29d729/out/vs/server/node/server.main.js:106:27251 at /vscode/vscode-server/bin/linux-x64/f1e16e1e6214d7c44d078b1f0607b2388f29d729/node_modules/yauzl/index.js:37:21 at FSReqCallback.oncomplete (node:fs:191:23) [27775 ms] [11:30:02] Error: ENOENT: no such file or directory, open '/root/.vscode-server/extensionsCache/ms-python.vscode-pylance-2024.7.1' at v (/vscode/vscode-server/bin/linux-x64/f1e16e1e6214d7c44d078b1f0607b2388f29d729/out/vs/server/node/server.main.js:106:25808) at /vscode/vscode-server/bin/linux-x64/f1e16e1e6214d7c44d078b1f0607b2388f29d729/out/vs/server/node/server.main.js:106:27251 at /vscode/vscode-server/bin/linux-x64/f1e16e1e6214d7c44d078b1f0607b2388f29d729/node_modules/yauzl/index.js:37:21 at FSReqCallback.oncomplete (node:fs:191:23) { code: 'Extract', name: 'Extract' }

[32298 ms] [11:30:06] Error while installing extensions: ENOENT: no such file or directory, open '/root/.vscode-server/extensionsCache/ms-python.vscode-pylance-2024.7.1' [32300 ms] [11:30:06] Error: ENOENT: no such file or directory, open '/root/.vscode-server/extensionsCache/ms-python.vscode-pylance-2024.7.1' at v (/vscode/vscode-server/bin/linux-x64/f1e16e1e6214d7c44d078b1f0607b2388f29d729/out/vs/server/node/server.main.js:106:25808) at /vscode/vscode-server/bin/linux-x64/f1e16e1e6214d7c44d078b1f0607b2388f29d729/out/vs/server/node/server.main.js:106:27251 at /vscode/vscode-server/bin/linux-x64/f1e16e1e6214d7c44d078b1f0607b2388f29d729/node_modules/yauzl/index.js:37:21 at FSReqCallback.oncomplete (node:fs:191:23) { code: 'Extract', name: 'Extract' }

sandy081 commented 1 month ago

@chrmarti I guess there is an issue with the Extensions Cache which I believe you are populating

 Extract: ENOENT: no such file or directory, open '/root/.vscode-server/extensionsCache/ms-python.vscode-pylance-2024.7.1'
stack trace: Error: ENOENT: no such file or directory, open '/root/.vscode-server/extensionsCache/ms-python.vscode-pylance-2024.7.1'
at v (/vscode/vscode-server/bin/linux-x64/f1e16e1e6214d7c44d078b1f0607b2388f29d729/out/vs/server/node/server.main.js:106:25808)
goksgie commented 1 day ago

Hello @sandy081 @chrmarti , is there any progress on the investigation? I'd like to +1 on the original report, and would like to add more that issue doesn't seem to be specific to python extension, but can happen randomly for other extensions too:

[81892 ms] [12:19:15] Error while installing extensions: ENOENT: no such file or directory, open '/home/vscode/.vscode-server/extensionsCache/ms-azuretools.vscode-azureresourcegroups-0.9.9', ENOENT: no such file or directory, open '/home/vscode/.vscode-server/extensionsCache/twxs.cmake-0.0.17', ENOENT: no such file or directory, open '/home/vscode/.vscode-server/extensionsCache/ms-vscode.cpptools-themes-2.0.0'
[81893 ms] [12:19:15] Extract: ENOENT: no such file or directory, open '/home/vscode/.vscode-server/extensionsCache/ms-azuretools.vscode-azureresourcegroups-0.9.9', ENOENT: no such file or directory, open '/home/vscode/.vscode-server/extensionsCache/twxs.cmake-0.0.17', ENOENT: no such file or directory, open '/home/vscode/.vscode-server/extensionsCache/ms-vscode.cpptools-themes-2.0.0'
    at Oc.M (file:///vscode/vscode-server/bin/linux-x64/e8653663e8840adaf45af01eab5c627a5af81807/out/server-main.js:50:15944)
    at async Oc.I (file:///vscode/vscode-server/bin/linux-x64/e8653663e8840adaf45af01eab5c627a5af81807/out/server-main.js:50:11861)
    at async Oc.installGalleryExtensions (file:///vscode/vscode-server/bin/linux-x64/e8653663e8840adaf45af01eab5c627a5af81807/out/server-main.js:50:7237)
    at async zc.g (file:///vscode/vscode-server/bin/linux-x64/e8653663e8840adaf45af01eab5c627a5af81807/out/server-main.js:64:591)
    at async zc.installExtensions (file:///vscode/vscode-server/bin/linux-x64/e8653663e8840adaf45af01eab5c627a5af81807/out/server-main.js:63:35244) {
  code: 'Extract'
}
[81895 ms] [12:19:15] Marked extension as uninstalled ms-azuretools.vscode-azurestorage-0.16.1
[81915 ms] [12:19:15] Marked extension as uninstalled ms-vscode.cmake-tools-1.19.52
chrmarti commented 21 hours ago

Could you check the contents of /vscode/vscode-server/extensionsCache in the container? How many files does that have?