-
Notifications
You must be signed in to change notification settings - Fork 29.3k
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
Update to 1.82.0, VSCode takes more time to kill processes after quit #192742
Comments
Initial findings:
@bpasero @lramos15 this is a return of #172967 but we have reliable repro this time. @lramos15 do we run any telemetry network requests from inside the extension host, if so can you point me to the code. |
Great findings 👏 , I am not sure if this is relevant here, but I do have noticed for quite some time now that quitting "Code OSS" (i.e. when I run out of sources and develop) takes a lot longer now to return back to the terminal. I was almost about to file an issue but maybe its the same? Would this repro even out of sources? |
Yup it repos in out of sources as well as the product builds |
Extensions can run telemetry from within the ext host (including built-in ones), but our core telemetry is all proxied over IPC vscode/src/vs/workbench/api/browser/mainThreadTelemetry.ts Lines 16 to 17 in f766dc2
|
Where do the network requests for these originate from, do they still get issued from the shared process ? Can you point to this code path as well. |
I'm just talking about how each extension can send telemetry by instantiating its own reporter which uses the built-in http node module. |
Regression started with Further debugging narrowed it to the following callsite https://github.com/microsoft/vscode-extension-telemetry/blob/80cfe9538a0f1512de3fe8b4a1e1f1e34d9b2efa/src/common/1dsClientFactory.ts#L80-L85 which queues network requests when disposing the telemetry client causing the event loop to be busy. Currently we have logic in extension host destruction code path to wait for 5s and allow extensions to cleanly dispose themselves before killing the extension host via vscode/src/vs/workbench/api/common/extHostExtensionService.ts Lines 268 to 278 in 1edc9a7
One thing I found interesting is that, the old @lramos15 I leave to you to decide the best way forward for this issue. |
on m2 pro - speed for close out in the dock is somewhat variable (not sure if this is an issue, it's still faster, but anywhere from 3-4 seconds). |
Did you disable all extensions? |
correction: works fine in insiders, very quick within 2 seconds of quitting. |
Type: Bug
In this video, I quit VSCode at 7 seconds, but it (Dock Icon) was killed at 12 seconds.
2023-09-11.15.15.06.mov
VS Code version: Code 1.82.0 (8b617bd, 2023-09-06T22:09:41.364Z)
OS version: Darwin x64 22.5.0
Modes:
System Info
canvas_oop_rasterization: disabled_off
direct_rendering_display_compositor: disabled_off_ok
gpu_compositing: enabled
multiple_raster_threads: enabled_on
opengl: enabled_on
rasterization: enabled
raw_draw: disabled_off_ok
video_decode: enabled
video_encode: enabled
vulkan: disabled_off
webgl: enabled
webgl2: enabled
webgpu: enabled
Extensions (2)
A/B Experiments
The text was updated successfully, but these errors were encountered: