emacs-jupyter / jupyter

An interface to communicate with Jupyter kernels.
GNU General Public License v3.0
914 stars 89 forks source link

`jupyter-session-with-random-ports` not terminating kernel #536

Open samJcrawford opened 2 months ago

samJcrawford commented 2 months ago

I've been struggling with issues similar to #527 and #471 on two different devices. I did a little digging and noticed that after I tried (and failed) to start a repl with jupyter-run-repl, there would be a bunch of python -m ipykernel_launcher ... processes hanging around. It seems that the interrupt-process call in jupyter-session-with-random-ports doesn't properly shut down the kernel.

As a workaround, I found that adding a (sit-for 1) immediately after (interrupt-process process) seems to work. But I imagine there should be a way to ensure that the process has been shutdown properly.

samJcrawford commented 1 month ago

Just a quick update to this, I tried moving the (sit-for 0.2) from the jupyter-launch method which calls this function to the same point immediately after (interrupt-process process), and that seems to have worked. Given that this wait was happening anyway, perhaps this is a valid workaround for now?

By the way, if you have any thoughts on a more robust solution for launching kernels without jupyter-session-with-random-ports I'd love to have a crack at that.