microsoft / vscode

Visual Studio Code
https://code.visualstudio.com
MIT License
164.72k stars 29.46k forks source link

Endless loop in the Extensions view on macOS #98496

Closed RA80533 closed 4 years ago

RA80533 commented 4 years ago

Issue Type: Bug

Clicking on the Extensions icon normally opens the Extensions side menu which displays the currently enabled extensions, etc., and displays recommended extensions. If the Extensions view is opened after VS Code is reloaded either via the command pallete or through the button prompt in various areas of the application (for example, when an extension is uninstalled), the Extensions view will be stuck in an endless loop; while local extensions are shown, it seems the application is stuck retrieving the recommended extensions, however.

On macOS, closing the workspace and window (without natively quitting the application) and reopening a VS Code window does not seem to remediate the issue as the Extensions view remains stuck afterwards; quitting and relaunching the application, however, seems to fix the issue and the Extensions view no longer gets stuck.

VS Code version: Code - Insiders 1.46.0-insider (2591ede95a52400d5d22989b16706f9b8b4831da, 2020-05-22T21:12:04.233Z) OS version: Darwin x64 18.7.0

System Info |Item|Value| |---|---| |CPUs|Intel(R) Core(TM) i7-8559U CPU @ 2.70GHz (8 x 2700)| |GPU Status|2d_canvas: enabled
flash_3d: enabled
flash_stage3d: enabled
flash_stage3d_baseline: enabled
gpu_compositing: enabled
metal: disabled_off
multiple_raster_threads: enabled_on
oop_rasterization: disabled_off
opengl: enabled_on
protected_video_decode: unavailable_off
rasterization: enabled
skia_renderer: disabled_off_ok
video_decode: enabled
viz_display_compositor: enabled_on
webgl: enabled
webgl2: enabled| |Load (avg)|1, 2, 2| |Memory (System)|16.00GB (1.88GB free)| |Process Argv|| |Screen Reader|no| |VM|0%|
Extensions (11) Extension|Author (truncated)|Version ---|---|--- vscode-ruby-test-adapter|con|0.7.1 EditorConfig|Edi|0.15.1 vscode-codeql|Git|1.2.0 vscode-pull-request-github|Git|0.16.1 vscode-test-explorer|hbe|2.18.1 dotenv|mik|1.0.1 vscode-typescript-tslint-plugin|ms-|1.2.3 ruby|reb|0.27.0 vscode-yaml|red|0.8.0 vscodeintellicode|Vis|1.2.7 vscode-ruby|win|0.27.0 (1 theme extensions excluded)
brunolm commented 4 years ago

Potentially related: https://github.com/microsoft/vscode/issues/98581

After a while my Extensions Host crashed

VS Code version: Code - Insiders 1.46.0-insider (8687508aa689b1f16d5f6ff317eb25bcf4544586, 2020-05-26T05:47:43.684Z) OS version: Windows_NT x64 10.0.18362

System Info |Item|Value| |---|---| |CPUs|Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz (12 x 2592)| |GPU Status|2d_canvas: enabled
flash_3d: enabled
flash_stage3d: enabled
flash_stage3d_baseline: enabled
gpu_compositing: enabled
multiple_raster_threads: enabled_on
oop_rasterization: disabled_off
opengl: enabled_on
protected_video_decode: enabled
rasterization: enabled
skia_renderer: disabled_off_ok
video_decode: enabled
viz_display_compositor: enabled_on
webgl: enabled
webgl2: enabled| |Load (avg)|undefined| |Memory (System)|31.85GB (16.90GB free)| |Process Argv|-n .| |Screen Reader|no| |VM|0%|
Extensions (39) Extension|Author (truncated)|Version ---|---|--- Bookmarks|ale|11.2.0 tinypng|and|0.3.3 ng-template|Ang|0.901.9 path-intellisense|chr|1.4.2 regex|chr|0.2.0 vscode-svgviewer|css|2.0.0 vscode-eslint|dba|2.1.5 githistory|don|0.6.5 gitlens|eam|10.2.1 EditorConfig|Edi|0.15.1 prettier-vscode|esb|4.7.0 vscode-pull-request-github|Git|0.16.1 gc-excelviewer|Gra|2.1.34 rest-client|hum|0.23.2 reg|ion|1.0.1 vscode-styled-components|jpo|0.0.29 json-to-ts|Mar|1.7.5 Angular-BeastCode|Mik|8.1.2 dotenv|mik|1.0.1 vscode-docker|ms-|1.2.0 csharp|ms-|1.21.18 python|ms-|2020.5.80290 remote-wsl|ms-|0.44.2 powershell|ms-|2020.4.0 vscode-typescript-tslint-plugin|ms-|1.2.3 vsliveshare|ms-|1.0.2236 debugger-for-chrome|msj|4.12.8 sqltools|mtx|0.21.8 vscode-paste-image|mus|1.0.4 language-liquid|nei|0.1.1 vscode-graphql|Pri|0.2.14 ejs-language-support|Qas|0.0.1 typescript-hero|rbb|3.0.0 partial-diff|ryu|1.4.1 mdx|sil|0.1.0 addDocComments|ste|0.0.8 vscode-icons|vsc|10.1.1 change-case|wma|1.0.0 copy-with-line-numbers|yas|0.0.4
robertrossmann commented 4 years ago

I have noticed that VS Code sends different queries to the https://marketplace.visualstudio.com/_apis/public/gallery/extensionquery service. ⚠️

This is the query that VS Code sends when I first open the Extensions view immediately after a fresh VS Code start:

Request URL: https://marketplace.visualstudio.com/_apis/public/gallery/extensionquery
Request Method: POST
Status Code: 200 
Remote Address: 13.107.42.18:443
Referrer Policy: no-referrer-when-downgrade

{
  "filters": [
    {
      "criteria": [
        {
          "filterType": 8,
          "value": "Microsoft.VisualStudio.Code"
        },
        {
          "filterType": 12,
          "value": "4096"
        },
        {
          "filterType": 7,
          "value": "oracle.oracledevtools"
        },
        {
          "filterType": 7,
          "value": "ms-vscode.cpptools"
        },
        {
          "filterType": 7,
          "value": "austin.code-gnu-global"
        },
        {
          "filterType": 7,
          "value": "hookyqr.beautify"
        },
        {
          "filterType": 7,
          "value": "msjsdiag.debugger-for-chrome"
        },
        {
          "filterType": 7,
          "value": "ms-azuretools.vscode-azureterraform"
        },
        {
          "filterType": 7,
          "value": "christian-kohler.npm-intellisense"
        },
        {
          "filterType": 7,
          "value": "azuredevspaces.azds"
        },
        {
          "filterType": 7,
          "value": "ms-kubernetes-tools.vscode-kubernetes-tools"
        }
      ],
      "pageNumber": 1,
      "pageSize": 9,
      "sortBy": 0,
      "sortOrder": 0
    }
  ],
  "assetTypes": [],
  "flags": 914
}

And this is the query that is sent after VS Code is reloaded and Extensions view is opened. Note that this request stalls indefinitely and never runs to completion. Regardless of what's going on on VS Code's side, I think someone from the Azure team should be notified as well since keeping so many requests in this pending state with no timeout is surely not ideal for the server. 💣 🔥

Request URL: https://marketplace.visualstudio.com/_apis/public/gallery/extensionquery
Referrer Policy: no-referrer-when-downgrade

{
  "filters": [
    {
      "criteria": [
        {
          "filterType": 8,
          "value": "Microsoft.VisualStudio.Code"
        },
        {
          "filterType": 12,
          "value": "4096"
        },
        {
          "filterType": 4,
          "value": "b689fcc8-d494-4dbf-a228-2c694a578afc"
        },
        {
          "filterType": 4,
          "value": "1b747f06-3789-4ebd-ac99-f1fe430c3347"
        },
        {
          "filterType": 4,
          "value": "04f49bfc-8330-4eee-8237-ea938fb755ef"
        },
        {
          "filterType": 4,
          "value": "583b2b34-2c1e-4634-8c0b-0b82e283ea3a"
        },
        {
          "filterType": 4,
          "value": "a8b13f02-1f31-4cac-b176-85033db00ad0"
        },
        {
          "filterType": 4,
          "value": "4de763bd-505d-4978-9575-2b7696ecf94e"
        },
        {
          "filterType": 4,
          "value": "f60a60a6-95ba-42d4-b41c-3d24c1b89588"
        },
        {
          "filterType": 4,
          "value": "ae9e3eb0-3357-4cc0-90ee-598d2d384757"
        },
        {
          "filterType": 4,
          "value": "43335a8d-5929-408b-874a-65f08362642c"
        },
        {
          "filterType": 4,
          "value": "66ed4827-7677-462f-85a9-d09d0f6a71a5"
        },
        {
          "filterType": 4,
          "value": "69ddd764-339a-4ecc-97c1-9c4ece58e36d"
        },
        {
          "filterType": 4,
          "value": "261cac81-cd7b-4555-bb41-0c2d2bcd3e70"
        },
        {
          "filterType": 4,
          "value": "d165ee3e-9bb1-4d30-b415-b6592cfffc3f"
        },
        {
          "filterType": 4,
          "value": "16c44458-f8a5-434f-9d65-b658dea51b0f"
        },
        {
          "filterType": 4,
          "value": "ff96f1b4-a4b8-45ef-8ecf-c232c0cb75c8"
        },
        {
          "filterType": 4,
          "value": "733c7fa7-f39a-44d2-a5d8-b1e7d413306e"
        },
        {
          "filterType": 4,
          "value": "a85a8ec7-f543-4625-8da7-d21ac04487a0"
        },
        {
          "filterType": 4,
          "value": "3c32cd05-98c2-4904-a85b-2c754c0b3e75"
        },
        {
          "filterType": 4,
          "value": "39757d2a-1a37-40b9-b8b8-aa7ebd6e0cf9"
        },
        {
          "filterType": 4,
          "value": "3e8a391a-f3f0-44b2-8631-7847b0c8839a"
        },
        {
          "filterType": 4,
          "value": "1c56dff4-0d89-4021-9af9-537c2470bd8c"
        },
        {
          "filterType": 4,
          "value": "b1b0f283-8246-4e90-832e-a6c409d378d1"
        },
        {
          "filterType": 4,
          "value": "4a23294b-fd16-4c51-9759-da9936474cf8"
        },
        {
          "filterType": 4,
          "value": "8476972c-078a-45ba-8756-b8ce15669cb9"
        },
        {
          "filterType": 4,
          "value": "438221f8-1107-4ccd-a6fe-f3b7fe0856b7"
        },
        {
          "filterType": 4,
          "value": "532533c9-a894-4a58-9eee-bbfbe7c06f71"
        },
        {
          "filterType": 4,
          "value": "4b6540da-bfa3-4b88-b9e3-df8f2d161124"
        },
        {
          "filterType": 4,
          "value": "0479fc1c-3d67-49f9-b087-fb9069afe48f"
        },
        {
          "filterType": 4,
          "value": "93ce222b-5f6f-49b7-9ab1-a0463c6238df"
        },
        {
          "filterType": 4,
          "value": "607fd052-be03-4363-b657-2bd62b83d28a"
        },
        {
          "filterType": 4,
          "value": "bfeaf631-bcff-4908-93ed-fda4ef9a0c5c"
        },
        {
          "filterType": 4,
          "value": "23d72dfc-8dd1-4e30-926e-8783b4378f13"
        },
        {
          "filterType": 4,
          "value": "d6f6cfea-4b6f-41f4-b571-6ad2ab7918da"
        },
        {
          "filterType": 4,
          "value": "76169c6c-5d43-4560-93d8-95e15125880d"
        },
        {
          "filterType": 4,
          "value": "5a6dc0d5-dc02-4121-8e24-cad33a2ff0af"
        },
        {
          "filterType": 4,
          "value": "6a2bbab0-d8f0-43fa-9b26-e6a3b7892a0b"
        },
        {
          "filterType": 4,
          "value": "121396ad-85a1-45ec-9fd1-d95028a847f5"
        },
        {
          "filterType": 4,
          "value": "5db78037-f674-459f-a236-db622c427c5b"
        },
        {
          "filterType": 4,
          "value": "2061917f-f76a-458a-8da9-f162de22b97e"
        },
        {
          "filterType": 4,
          "value": "3fb77af3-b8b3-4cb9-9137-f555bd80e2b1"
        },
        {
          "filterType": 4,
          "value": "5f2bb8f7-dc95-49f9-be2f-0278fa401434"
        },
        {
          "filterType": 4,
          "value": "188277b8-e4bc-4c10-92fa-d6959b4243ea"
        },
        {
          "filterType": 4,
          "value": "e337c67b-55c2-4fef-8949-eb260e7fb7fd"
        },
        {
          "filterType": 4,
          "value": "afc7b7f6-486c-4560-94cb-6130ea88cdb8"
        },
        {
          "filterType": 4,
          "value": "d58b4691-21e7-45b7-93c6-ee7e164288cc"
        },
        {
          "filterType": 4,
          "value": "b24a13f5-4e50-4d9a-ab0a-87f47d9fdfcb"
        },
        {
          "filterType": 4,
          "value": "ac7a8f0c-bdd8-40df-a13a-d6c01115b8cf"
        },
        {
          "filterType": 4,
          "value": "f95d8fff-f70a-4ae5-bb06-5c47ddbc8fc6"
        },
        {
          "filterType": 4,
          "value": "2b2535e4-d0cd-4b0a-9a18-5db6d6fb0c31"
        },
        {
          "filterType": 4,
          "value": "9d8c32ab-354c-4daf-a9bf-20b633734435"
        },
        {
          "filterType": 4,
          "value": "876e8f93-74d0-4f4f-91b7-34a09f19f444"
        },
        {
          "filterType": 4,
          "value": "7f147721-ec06-4043-9e37-c9ffbecbccd1"
        },
        {
          "filterType": 4,
          "value": "c46b0018-f317-4b6c-a785-d2039b27338f"
        },
        {
          "filterType": 4,
          "value": "a2cec723-5349-460d-9de9-0fd1f8d3456f"
        },
        {
          "filterType": 4,
          "value": "98790d67-10fa-497c-9113-f6c7489207b2"
        }
      ],
      "pageNumber": 1,
      "pageSize": 55,
      "sortBy": 0,
      "sortOrder": 0
    }
  ],
  "assetTypes": [],
  "flags": 914
}
sandy081 commented 4 years ago

@RA80533 Can you please provide us following logs to see what activity is happening

RA80533 commented 4 years ago

@sandy081

Version: 1.46.0-insider Commit: b26e0bcf39c1b8faaf770265391b5a387d1d9172 Date: 2020-05-26T17:07:53.549Z Electron: 8.3.0 Chrome: 80.0.3987.165 Node.js: 12.13.0 V8: 8.0.426.27-electron.0 OS: Darwin x64 18.7.0

Log (Shared) ```console [2020-05-26 15:08:07.018] [sharedprocess] [info] main {"machineId":"32fa2fc4c1b2a073ae64c1d87b4bf60866f995d5ffb7a72a4c79abce948f298f","windowId":2} [2020-05-26 15:08:47.035] [sharedprocess] [info] Starting to clean up unused language packs. [2020-05-26 15:10:50.807] [sharedprocess] [info] Uninstalling extension: ms-vscode.vscode-typescript-tslint-plugin [2020-05-26 15:10:51.214] [sharedprocess] [info] Successfully uninstalled extension: ms-vscode.vscode-typescript-tslint-plugin ```
Log (Window) ```log ```
RA80533 commented 4 years ago

Steps to reproduce upon launching the application:

sandy081 commented 4 years ago

@RA80533 Tried above steps and everything seems normal to me.

Please follow this wiki https://github.com/microsoft/vscode/wiki/Performance-Issues to provide more info

brunolm commented 4 years ago

I haven't had this issue since yesterday after I killed the process that was using 20% CPU. I tried restarting Code many times and also restarting my computer. I can no longer reproduce it.

Could it be that some service was hanging yesterday causing some part of the code to loop or something?

sandy081 commented 4 years ago

I am sorry that I cannot speculate. Closing this and please reopen it if you see again.

RA80533 commented 4 years ago

@sandy081

Did you try to replicate the issue with respect to my OS? I can still replicate the issue on a guest account on macOS 10.14.6 with the current version of VS Code - Insiders (see below). I can produce a short clip of it happening if you're willing to reopen this issue.

Version: 1.46.0-insider Commit: 876f2e70f9a2e1988887f8ca82294418afac15a2 Date: 2020-05-27T05:41:02.088Z (1 day ago) Electron: 7.2.4 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Darwin x64 18.7.0

brunolm commented 4 years ago

@RA80533 follow these instructions https://github.com/microsoft/vscode/wiki/Performance-Issues Because that provides information they need, more than you provided initially.

sandy081 commented 4 years ago

@RA80533 I cannot repro this, but if you are able to can you please provide following info:

Please follow these steps

robertrossmann commented 4 years ago

@sandy081 Here are exact repro steps with a video recording showing the problem.

  1. Start VS Code
  2. Open Extensions view
  3. Disable an active extension (something that requires a reload to be fully disabled)
  4. Click the Reload Required button that shows in the extension's list item's row
  5. Observe Extensions view trying to load information for currently installed extensions that will never finish

From the network panel, it is clear that VS Code fires two HTTP requests to get extension information which never run to completion - the requests stall forever. I think this is the reason why we see the loading spinner forever. I believe the reported higher-than-usual CPU usage is actually just a consequence of the loading spinner's animation being rendered at 60fps.

I have previously shared the details about the request that hangs in a comment above. Here's the actual video (.mov).

robertrossmann commented 4 years ago

I just upgraded to latest Insider and I can no longer reproduce this on ⬇️

Version: 1.46.0-insider
Commit: 1bfa086adb9271ff56be11821da686e4cfffb672
Date: 2020-06-02T08:10:00.819Z
Electron: 7.3.0
Chrome: 78.0.3904.130
Node.js: 12.8.1
V8: 7.8.279.23-electron.0
OS: Darwin x64 19.5.0
sandy081 commented 4 years ago

@deepak1556 Any idea why the requests user mentioned in above comment are not getting finished? Please let user know if there is a way to debug and find more info?

deepak1556 commented 4 years ago

@RA80533 @robertrossmann can you launch vscode with --log-net-log=netlog.json, perform the usual operations you had outlined that leads to the stalled requests, quit the app and please attach the log here. Thanks!

robertrossmann commented 4 years ago

@deepak1556 @sandy081 ~Sadly~ Thankfully, I can no longer reproduce this after I have updated to the latest Insider build. 🤷‍♂️ 🤔

RA80533 commented 4 years ago

You crazy kids! It looks like someone fixed it. I can no longer reproduce the issue.

sandy081 commented 4 years ago

Ok, closing this as it cannot be repro.

Please reopen and provide the necessary information that is asked for if you see it again.