microsoft / vscode-jupyter

VS Code Jupyter extension
https://marketplace.visualstudio.com/items?itemName=ms-toolsai.jupyter
MIT License
1.27k stars 284 forks source link

Display some error message about the fact that some remote kernels are no longer usable to avoid long spinnings of kernels in kernel picker #15931

Open p-i- opened 1 month ago

p-i- commented 1 month ago

Type: Bug

In my .ipynb I select a working kernel and can execute cells. However the kernel-picker spins for an additional 7+ minutes.

It turns out I had a dead/zombie kernel (http://10.3.0.1:6666/) -- removing it fixed the issue.

My own guess: When the kernel-picker is initially clicked, and the user has to choose which kernel to use, presumably VSCode attempts to communicate with each kernel in its list, in order to populate a list of available kernels. Maybe it launches a thread for each. And the kernel-picker icon is set to spin (šŸ”„) until ALL have completed.

SUGGESTION 1: Before the user has made a selection, for each kernel in the list indicate the STATE of that kernel, maybe with icons: āœ… (ready to use), šŸ”„ (spinning), āŒ (failed)

SUGGESTION 2: When the user selects a kernel, any other threads should be cancelled, and the kernel-picker icon should reflect the status of the SELECTED kernel.

PS Issue was originally reported in https://github.com/microsoft/vscode-jupyter/issues/15911

I'm creating a fresh issue as there's a lot of fluff in that thread (as @DonJayamanne and I figured out which symptoms are (ir)relevant).

VS Code version: Code 1.92.0 (b1c0a14de1414fcdaa400695b4db1c0799bc3124, 2024-07-31T23:26:45.634Z) OS version: Darwin arm64 23.5.0 Modes:

System Info |Item|Value| |---|---| |CPUs|Apple M2 (8 x 2400)| |GPU Status|2d_canvas: enabled
canvas_oop_rasterization: enabled_on
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
skia_graphite: disabled_off
video_decode: enabled
video_encode: enabled
webgl: enabled
webgl2: enabled
webgpu: enabled
webnn: disabled_off| |Load (avg)|1, 2, 2| |Memory (System)|24.00GB (2.35GB free)| |Process Argv|--crash-reporter-id f10d97cd-2115-4dba-a34a-07be9312995a| |Screen Reader|no| |VM|0%|
Extensions (21) Extension|Author (truncated)|Version ---|---|--- dvt-remote-ssh|ami|1.0.0 nestedtext|bma|2.0.0 githistory|don|0.6.20 copilot|Git|1.221.1038 copilot-chat|Git|0.19.2024073102 vsc-python-indent|Kev|1.18.0 rainbow-csv|mec|3.12.0 vscode-docker|ms-|1.29.1 debugpy|ms-|2024.10.0 python|ms-|2024.12.2 vscode-pylance|ms-|2024.8.1 jupyter|ms-|2024.7.0 jupyter-keymap|ms-|1.1.2 jupyter-renderers|ms-|1.0.19 vscode-jupyter-cell-tags|ms-|0.1.9 vscode-jupyter-slideshow|ms-|0.1.6 remote-containers|ms-|0.380.0 remote-ssh|ms-|0.113.1 remote-ssh-edit|ms-|0.86.0 remote-explorer|ms-|0.4.3 yaml-cloudformation-highlighter|paq|2.0.4 (1 theme extensions excluded)
A/B Experiments ``` vsliv368cf:30146710 vspor879:30202332 vspor708:30202333 vspor363:30204092 vstes627:30244334 vscorecescf:30445987 vscod805cf:30301675 binariesv615:30325510 vsaa593cf:30376535 py29gd2263:31024239 vscaac:30438847 c4g48928:30535728 azure-dev_surveyone:30548225 2i9eh265:30646982 962ge761:30959799 pythongtdpath:30769146 welcomedialog:30910333 pythonnoceb:30805159 asynctok:30898717 pythonregdiag2:30936856 pythonmypyd1:30879173 2e7ec940:31000449 pythontbext0:30879054 accentitlementst:30995554 dsvsc016:30899300 dsvsc017:30899301 dsvsc018:30899302 cppperfnew:31000557 dsvsc020:30976470 pythonait:31006305 dsvsc021:30996838 jg8ic977:31013176 pythoncenvpt:31062603 a69g1124:31058053 dvdeprecation:31068756 dwnewjupytercf:31046870 impr_priority:31102340 refactort:31108082 ccplc:31103425 pythonrstrctxt:31112756 wkspc-onlycs-c:31111717 wkspc-ranged-c:31111712 ```
vs-code-engineering[bot] commented 1 month ago

Thanks for creating this issue! It looks like you may be using an old version of VS Code, the latest stable release is 1.92.1. Please try upgrading to the latest version and checking whether this issue remains.

Happy Coding!

p-i- commented 1 month ago

@vs-code-engineering bot: I'm unable to easily reproduce, as I've since removed the zombie kernel.

DonJayamanne commented 1 month ago

@p-i- The other issues had all of the information and that was actually useful and was also in the correct repo Moving back to Jupiter extension

p-i- commented 1 month ago

My thinking was that there is a maybe a problem more fundamental than the failing to report unresponsive kernels -- the problem that once the user has selected a working kernel, the picker-icon is not reflecting the state of the selected kernel. And I think logically it should be.

Yes it would also be nice to be notified of any unresponsive kernel.

When the user clicks the picker to select a kernel, presumably they want to see a list of available kernels. And next to each item, an icon showing the status of this item, which I imagine would be something like:

And these stati would be refreshed in realtime. And whichever kernel they click, the ongoing status is now represented by the picker-icon.

I didn't want to dilute the original issue, so posted a fresh one, linking back to the original. Maybe was my mistake to close the original one.

Anyway, I have nothing further useful to contribute to this topic, and so will leave it in the capable hands and minds of the VSCode team (thankyou for all your hard work!).