Closed
Description
System details:
Positron and OS details:
Positron Version: 2025.04.0 (Universal) build 109
Code - OSS Version: 1.97.0
Commit: 56a6c89ad24fbdeaa417ec9c03d05dbd9196c953
Date: 2025-03-17T11:31:23.496Z
Electron: 32.2.7
Chromium: 128.0.6613.186
Node.js: 20.18.1
V8: 12.8.374.38-electron.0
OS: Darwin arm64 24.3.0
Interpreter details:
works the same with all python versions i've tried
Describe the issue:
After a force quit in an interpreter, I can't seem to use that interpreter again until I restart Positron. I've tried using the +
, which will give an error that the session is active. I've also tried the interpreter dropdown and the Python: Select Interpreter
commands, neither of which seem to do anything.
stuck_session.mov
Maybe related to #6863
Steps to reproduce the issue:
import time; time.sleep(30)
- Try to restart session. This does nothing.
- Try to end session. This waits for a bit, then will have you force quit
- Try to start the same interpreter.
Expected or desired behavior:
I expected to be able to start up session again after a force quit.
Were there any error messages in the UI, Output panel, or Developer Tools console?
From Python 3.13.1 (Pyenv: positrondev): Console
2025-03-19 16:28:24.488 [info] Python 3.13.1 (Pyenv: positrondev) session 'python-44c6b1ee' created in /Users/isabelizimm/code/vetiver-python with command:
2025-03-19 16:28:24.488 [info] /Users/isabelizimm/.pyenv/versions/positrondev/bin/python /Applications/Positron.app/Contents/Resources/app/extensions/positron-python/python_files/posit/positron_language_server.py -f {connection_file} --logfile /var/folders/6b/9zj3cbn57s91v4hzdg5pgdf40000gn/T/kernel-Pb5v94/kernel.log --loglevel=debug --session-mode=console
2025-03-19 16:28:24.488 [debug] State: uninitialized => starting (invoking start API)
2025-03-19 16:28:24.997 [debug] No UI comm open yet; queueing request 'setConsoleWidth'
2025-03-19 16:28:27.481 [debug] Connecting to websocket: ws://localhost:65350/sessions/python-44c6b1ee/channels
2025-03-19 16:28:27.482 [debug] Connected to websocket ws://localhost:65350/sessions/python-44c6b1ee/channels.
2025-03-19 16:28:27.482 [info] Kernel is ready.
2025-03-19 16:28:27.482 [debug] State: starting => ready (new session)
2025-03-19 16:28:27.482 [debug] <<< RECV [kernel]: {"kind":"kernel","status":{"status":"starting","reason":"start API called"}}
2025-03-19 16:28:27.482 [debug] <<< RECV [kernel]: {"kind":"kernel","output":["stdout","NOTE: When using the `ipython kernel` entry point, Ctrl-C will not work.\n"]}
2025-03-19 16:28:27.482 [debug] <<< RECV [kernel]: {"kind":"kernel","output":["stdout","\n"]}
2025-03-19 16:28:27.482 [debug] <<< RECV [kernel]: {"kind":"kernel","output":["stdout","To exit, you will have to explicitly quit this process, by either sending\n"]}
2025-03-19 16:28:27.482 [debug] <<< RECV [kernel]: {"kind":"kernel","output":["stdout","\"quit\" from a client, or using Ctrl-\\ in UNIX-like environments.\n"]}
2025-03-19 16:28:27.482 [debug] <<< RECV [kernel]: {"kind":"kernel","output":["stdout","\n"]}
2025-03-19 16:28:27.482 [debug] <<< RECV [kernel]: {"kind":"kernel","output":["stdout","To read more about this, see https://github.com/ipython/ipython/issues/2049\n"]}
2025-03-19 16:28:27.482 [debug] <<< RECV [kernel]: {"kind":"kernel","output":["stdout","\n"]}
2025-03-19 16:28:27.482 [debug] <<< RECV [kernel]: {"kind":"kernel","output":["stdout","\n"]}
2025-03-19 16:28:27.482 [debug] <<< RECV [kernel]: {"kind":"kernel","output":["stdout","To connect another client to this kernel, use:\n"]}
2025-03-19 16:28:27.482 [debug] <<< RECV [kernel]: {"kind":"kernel","output":["stdout"," --existing /var/folders/6b/9zj3cbn57s91v4hzdg5pgdf40000gn/T/connection_python-44c6b1ee.json\n"]}
2025-03-19 16:28:27.482 [info] Starting Positron LSP server on port 50028
2025-03-19 16:28:27.482 [info] Starting LSP server positron-lsp-python-fc4a277d for 127.0.0.1:50028
2025-03-19 16:28:27.482 [debug] >>> SEND comm_open [shell]: {"target_name":"positron.lsp","comm_id":"positron-lsp-python-fc4a277d","data":{"client_address":"127.0.0.1:50028"}}
2025-03-19 16:28:27.482 [debug] >>> SEND comm_open [shell]: {"target_name":"positron.variables","comm_id":"positron-variables-python-24-692684b6","data":{}}
2025-03-19 16:28:27.483 [debug] >>> SEND comm_open [shell]: {"target_name":"positron.ui","comm_id":"positron-ui-python-25-44d3aed2","data":{}}
2025-03-19 16:28:27.483 [debug] >>> SEND comm_info_request [shell]: {"target_name":"positron.help"}
2025-03-19 16:28:27.483 [debug] <<< RECV [kernel]: {"kind":"kernel","status":{"status":"busy","reason":"comm_open"}}
2025-03-19 16:28:27.483 [debug] State: ready => busy (comm_open)
2025-03-19 16:28:27.483 [debug] <<< RECV status [iopub]: {"execution_state":"busy"}
2025-03-19 16:28:27.484 [debug] <<< RECV [kernel]: {"kind":"kernel","status":{"status":"idle","reason":"comm_open"}}
2025-03-19 16:28:27.484 [debug] State: busy => idle (comm_open)
2025-03-19 16:28:27.484 [debug] <<< RECV status [iopub]: {"execution_state":"idle"}
2025-03-19 16:28:27.484 [debug] Sending queued UI comm request 'setConsoleWidth' (1 of 1)
2025-03-19 16:28:27.484 [debug] >>> SEND comm_msg [shell]: {"comm_id":"positron-ui-python-25-44d3aed2","data":{"jsonrpc":"2.0","method":"call_method","params":{"method":"setConsoleWidth","params":[165]}}}
2025-03-19 16:28:27.485 [debug] >>> SEND comm_info_request [shell]: {"target_name":"positron.plot"}
2025-03-19 16:28:27.485 [debug] >>> SEND comm_info_request [shell]: {"target_name":""}
2025-03-19 16:28:27.485 [debug] <<< RECV [kernel]: {"kind":"kernel","status":{"status":"busy","reason":"comm_open"}}
2025-03-19 16:28:27.485 [debug] State: idle => busy (comm_open)
2025-03-19 16:28:27.486 [debug] <<< RECV status [iopub]: {"execution_state":"busy"}
2025-03-19 16:28:27.486 [debug] <<< RECV comm_msg [iopub]: {"comm_id":"positron-variables-python-24-692684b6","data":{"jsonrpc":"2.0","method":"refresh","params":{"length":0,"variables":[],"version":0}}}
2025-03-19 16:28:27.486 [debug] <<< RECV [kernel]: {"kind":"kernel","status":{"status":"idle","reason":"comm_open"}}
2025-03-19 16:28:27.486 [debug] State: busy => idle (comm_open)
2025-03-19 16:28:27.486 [debug] <<< RECV status [iopub]: {"execution_state":"idle"}
2025-03-19 16:28:27.487 [debug] <<< RECV [kernel]: {"kind":"kernel","status":{"status":"busy","reason":"comm_open"}}
2025-03-19 16:28:27.487 [debug] State: idle => busy (comm_open)
2025-03-19 16:28:27.487 [debug] <<< RECV status [iopub]: {"execution_state":"busy"}
2025-03-19 16:28:27.488 [debug] <<< RECV comm_msg [iopub]: {"comm_id":"positron-lsp-python-fc4a277d","data":{"content":{},"msg_type":"server_started"}}
2025-03-19 16:28:27.488 [debug] <<< RECV comm_msg [iopub]: {"comm_id":"positron-ui-python-25-44d3aed2","data":{"jsonrpc":"2.0","method":"working_directory","params":{"directory":"~/code/vetiver-python"}}}
2025-03-19 16:28:27.489 [debug] <<< RECV [kernel]: {"kind":"kernel","status":{"status":"idle","reason":"comm_open"}}
2025-03-19 16:28:27.489 [debug] State: busy => idle (comm_open)
2025-03-19 16:28:27.489 [debug] <<< RECV status [iopub]: {"execution_state":"idle"}
2025-03-19 16:28:27.490 [debug] <<< RECV [kernel]: {"kind":"kernel","status":{"status":"busy","reason":"comm_info_request"}}
2025-03-19 16:28:27.490 [debug] State: idle => busy (comm_info_request)
2025-03-19 16:28:27.490 [debug] <<< RECV status [iopub]: {"execution_state":"busy"}
2025-03-19 16:28:27.491 [debug] <<< RECV [kernel]: {"kind":"kernel","status":{"status":"idle","reason":"comm_info_request"}}
2025-03-19 16:28:27.491 [debug] State: busy => idle (comm_info_request)
2025-03-19 16:28:27.491 [debug] <<< RECV status [iopub]: {"execution_state":"idle"}
2025-03-19 16:28:27.491 [debug] <<< RECV comm_info_reply [shell]: {"comms":{},"status":"ok"}
2025-03-19 16:28:27.492 [debug] >>> SEND comm_open [shell]: {"target_name":"positron.help","comm_id":"positron-help-python-26-6b9a128c","data":{}}
2025-03-19 16:28:27.514 [info] Set initial console width to 165
2025-03-19 16:28:27.514 [debug] >>> SEND comm_msg [shell]: {"comm_id":"positron-ui-python-25-44d3aed2","data":{"jsonrpc":"2.0","method":"call_method","params":{"method":"setConsoleWidth","params":[165]}}}
2025-03-19 16:28:27.515 [debug] <<< RECV [kernel]: {"kind":"kernel","status":{"status":"busy","reason":"comm_msg"}}
2025-03-19 16:28:27.515 [debug] State: idle => busy (comm_msg)
2025-03-19 16:28:27.515 [debug] <<< RECV status [iopub]: {"execution_state":"busy"}
2025-03-19 16:28:27.515 [debug] <<< RECV comm_msg [iopub]: {"comm_id":"positron-ui-python-25-44d3aed2","data":{"jsonrpc":"2.0","result":null}}
2025-03-19 16:28:27.517 [debug] <<< RECV [kernel]: {"kind":"kernel","status":{"status":"idle","reason":"comm_msg"}}
2025-03-19 16:28:27.517 [debug] State: busy => idle (comm_msg)
2025-03-19 16:28:27.517 [debug] <<< RECV status [iopub]: {"execution_state":"idle"}
2025-03-19 16:28:27.518 [debug] <<< RECV [kernel]: {"kind":"kernel","status":{"status":"busy","reason":"comm_info_request"}}
2025-03-19 16:28:27.518 [debug] State: idle => busy (comm_info_request)
2025-03-19 16:28:27.518 [debug] <<< RECV status [iopub]: {"execution_state":"busy"}
2025-03-19 16:28:27.518 [debug] <<< RECV [kernel]: {"kind":"kernel","status":{"status":"idle","reason":"comm_info_request"}}
2025-03-19 16:28:27.518 [debug] State: busy => idle (comm_info_request)
2025-03-19 16:28:27.518 [debug] <<< RECV status [iopub]: {"execution_state":"idle"}
2025-03-19 16:28:27.519 [debug] <<< RECV comm_info_reply [shell]: {"comms":{},"status":"ok"}
2025-03-19 16:28:27.519 [debug] <<< RECV [kernel]: {"kind":"kernel","status":{"status":"busy","reason":"comm_info_request"}}
2025-03-19 16:28:27.519 [debug] State: idle => busy (comm_info_request)
2025-03-19 16:28:27.519 [debug] <<< RECV status [iopub]: {"execution_state":"busy"}
2025-03-19 16:28:27.520 [debug] <<< RECV [kernel]: {"kind":"kernel","status":{"status":"idle","reason":"comm_info_request"}}
2025-03-19 16:28:27.520 [debug] State: busy => idle (comm_info_request)
2025-03-19 16:28:27.520 [debug] <<< RECV status [iopub]: {"execution_state":"idle"}
2025-03-19 16:28:27.520 [debug] <<< RECV comm_info_reply [shell]: {"comms":{},"status":"ok"}
2025-03-19 16:28:27.521 [debug] <<< RECV [kernel]: {"kind":"kernel","status":{"status":"busy","reason":"comm_open"}}
2025-03-19 16:28:27.521 [debug] State: idle => busy (comm_open)
2025-03-19 16:28:27.521 [debug] <<< RECV status [iopub]: {"execution_state":"busy"}
2025-03-19 16:28:27.521 [debug] <<< RECV [kernel]: {"kind":"kernel","status":{"status":"idle","reason":"comm_open"}}
2025-03-19 16:28:27.521 [debug] State: busy => idle (comm_open)
2025-03-19 16:28:27.521 [debug] <<< RECV status [iopub]: {"execution_state":"idle"}
2025-03-19 16:28:27.522 [debug] <<< RECV [kernel]: {"kind":"kernel","status":{"status":"busy","reason":"comm_msg"}}
2025-03-19 16:28:27.522 [debug] State: idle => busy (comm_msg)
2025-03-19 16:28:27.522 [debug] <<< RECV status [iopub]: {"execution_state":"busy"}
2025-03-19 16:28:27.522 [debug] <<< RECV comm_msg [iopub]: {"comm_id":"positron-ui-python-25-44d3aed2","data":{"jsonrpc":"2.0","result":null}}
2025-03-19 16:28:27.522 [debug] <<< RECV [kernel]: {"kind":"kernel","status":{"status":"idle","reason":"comm_msg"}}
2025-03-19 16:28:27.522 [debug] State: busy => idle (comm_msg)
2025-03-19 16:28:27.522 [debug] <<< RECV status [iopub]: {"execution_state":"idle"}
2025-03-19 16:28:36.291 [debug] >>> SEND comm_msg [shell]: {"comm_id":"positron-ui-python-25-44d3aed2","data":{"jsonrpc":"2.0","method":"call_method","params":{"method":"setConsoleWidth","params":[122]}}}
2025-03-19 16:28:36.298 [debug] <<< RECV [kernel]: {"kind":"kernel","status":{"status":"busy","reason":"comm_msg"}}
2025-03-19 16:28:36.298 [debug] State: idle => busy (comm_msg)
2025-03-19 16:28:36.298 [debug] <<< RECV status [iopub]: {"execution_state":"busy"}
2025-03-19 16:28:36.300 [debug] <<< RECV comm_msg [iopub]: {"comm_id":"positron-ui-python-25-44d3aed2","data":{"jsonrpc":"2.0","result":null}}
2025-03-19 16:28:36.300 [debug] <<< RECV [kernel]: {"kind":"kernel","status":{"status":"idle","reason":"comm_msg"}}
2025-03-19 16:28:36.300 [debug] State: busy => idle (comm_msg)
2025-03-19 16:28:36.300 [debug] <<< RECV status [iopub]: {"execution_state":"idle"}
2025-03-19 16:28:39.870 [debug] >>> SEND comm_msg [shell]: {"comm_id":"positron-ui-python-25-44d3aed2","data":{"jsonrpc":"2.0","method":"call_method","params":{"method":"setConsoleWidth","params":[142]}}}
2025-03-19 16:28:39.874 [debug] <<< RECV [kernel]: {"kind":"kernel","status":{"status":"busy","reason":"comm_msg"}}
2025-03-19 16:28:39.874 [debug] State: idle => busy (comm_msg)
2025-03-19 16:28:39.874 [debug] <<< RECV status [iopub]: {"execution_state":"busy"}
2025-03-19 16:28:39.874 [debug] <<< RECV comm_msg [iopub]: {"comm_id":"positron-ui-python-25-44d3aed2","data":{"jsonrpc":"2.0","result":null}}
2025-03-19 16:28:39.875 [debug] <<< RECV [kernel]: {"kind":"kernel","status":{"status":"idle","reason":"comm_msg"}}
2025-03-19 16:28:39.875 [debug] State: busy => idle (comm_msg)
2025-03-19 16:28:39.875 [debug] <<< RECV status [iopub]: {"execution_state":"idle"}
2025-03-19 16:28:42.385 [debug] >>> SEND is_complete_request [shell]: {"code":"import time"}
2025-03-19 16:28:42.388 [debug] <<< RECV [kernel]: {"kind":"kernel","status":{"status":"busy","reason":"is_complete_request"}}
2025-03-19 16:28:42.388 [debug] State: idle => busy (is_complete_request)
2025-03-19 16:28:42.388 [debug] <<< RECV status [iopub]: {"execution_state":"busy"}
2025-03-19 16:28:42.389 [debug] <<< RECV [kernel]: {"kind":"kernel","status":{"status":"idle","reason":"is_complete_request"}}
2025-03-19 16:28:42.389 [debug] State: busy => idle (is_complete_request)
2025-03-19 16:28:42.389 [debug] <<< RECV status [iopub]: {"execution_state":"idle"}
2025-03-19 16:28:42.389 [debug] <<< RECV is_complete_reply [shell]: {"status":"complete"}
2025-03-19 16:28:42.393 [debug] >>> SEND execute_request [shell]: {"code":"import time","silent":false,"store_history":true,"user_expressions":{},"allow_stdin":true,"stop_on_error":false}
2025-03-19 16:28:42.396 [debug] <<< RECV [kernel]: {"kind":"kernel","status":{"status":"busy","reason":"execute_request"}}
2025-03-19 16:28:42.396 [debug] State: idle => busy (execute_request)
2025-03-19 16:28:42.396 [debug] <<< RECV status [iopub]: {"execution_state":"busy"}
2025-03-19 16:28:42.396 [debug] <<< RECV execute_input [iopub]: {"code":"import time","execution_count":1}
2025-03-19 16:28:42.399 [debug] <<< RECV execute_reply [shell]: {"execution_count":1,"payload":[],"status":"ok","user_expressions":{}}
2025-03-19 16:28:42.399 [debug] <<< RECV [kernel]: {"kind":"kernel","status":{"status":"idle","reason":"execute_request"}}
2025-03-19 16:28:42.399 [debug] State: busy => idle (execute_request)
2025-03-19 16:28:42.399 [debug] <<< RECV status [iopub]: {"execution_state":"idle"}
2025-03-19 16:28:45.207 [debug] >>> SEND is_complete_request [shell]: {"code":"time.sleep(30)"}
2025-03-19 16:28:45.212 [debug] <<< RECV [kernel]: {"kind":"kernel","status":{"status":"busy","reason":"is_complete_request"}}
2025-03-19 16:28:45.212 [debug] State: idle => busy (is_complete_request)
2025-03-19 16:28:45.212 [debug] <<< RECV status [iopub]: {"execution_state":"busy"}
2025-03-19 16:28:45.213 [debug] <<< RECV [kernel]: {"kind":"kernel","status":{"status":"idle","reason":"is_complete_request"}}
2025-03-19 16:28:45.213 [debug] State: busy => idle (is_complete_request)
2025-03-19 16:28:45.213 [debug] <<< RECV status [iopub]: {"execution_state":"idle"}
2025-03-19 16:28:45.213 [debug] <<< RECV is_complete_reply [shell]: {"status":"complete"}
2025-03-19 16:28:45.219 [debug] >>> SEND execute_request [shell]: {"code":"time.sleep(30)","silent":false,"store_history":true,"user_expressions":{},"allow_stdin":true,"stop_on_error":false}
2025-03-19 16:28:45.221 [debug] <<< RECV [kernel]: {"kind":"kernel","status":{"status":"busy","reason":"execute_request"}}
2025-03-19 16:28:45.221 [debug] State: idle => busy (execute_request)
2025-03-19 16:28:45.221 [debug] <<< RECV status [iopub]: {"execution_state":"busy"}
2025-03-19 16:28:45.222 [debug] <<< RECV execute_input [iopub]: {"code":"time.sleep(30)","execution_count":2}
2025-03-19 16:28:46.792 [debug] <<< RECV status [iopub]: {"execution_state":"busy"}
2025-03-19 16:28:46.793 [debug] <<< RECV comm_close [iopub]: {"comm_id":"positron-ui-python-25-44d3aed2","data":{}}
2025-03-19 16:28:47.187 [info] LSP startup timed out during interpreter restart
2025-03-19 16:28:47.552 [debug] <<< RECV comm_close [iopub]: {"comm_id":"positron-help-python-26-6b9a128c","data":{}}
2025-03-19 16:28:47.552 [debug] <<< RECV comm_close [iopub]: {"comm_id":"positron-lsp-python-fc4a277d","data":{}}
2025-03-19 16:28:47.552 [debug] <<< RECV comm_close [iopub]: {"comm_id":"positron-variables-python-24-692684b6","data":{}}
2025-03-19 16:28:47.552 [debug] <<< RECV shutdown_reply [iopub]: {"restart":true,"status":"ok"}
2025-03-19 16:28:47.552 [debug] <<< RECV shutdown_reply [control]: {"restart":true,"status":"ok"}
2025-03-19 16:28:47.553 [debug] <<< RECV [kernel]: {"kind":"kernel","status":{"status":"idle","reason":"shutdown_request"}}
2025-03-19 16:28:47.553 [debug] State: busy => idle (shutdown_request)
2025-03-19 16:28:47.553 [debug] <<< RECV status [iopub]: {"execution_state":"idle"}
2025-03-19 16:28:53.833 [debug] >>> SEND shutdown_request [control]: {"restart":false}
2025-03-19 16:29:06.616 [debug] <<< RECV [kernel]: {"kind":"kernel","status":{"status":"exited","reason":"child process exited"}}
2025-03-19 16:29:06.616 [debug] State: idle => exited (child process exited)
2025-03-19 16:29:06.616 [debug] <<< RECV [kernel]: {"kind":"kernel","exited":-1}
2025-03-19 16:29:06.616 [info] Kernel exited with code -1; waiting for restart to finish.
2025-03-19 16:29:06.617 [debug] <<< RECV [kernel]: {"kind":"kernel","status":{"status":"starting","reason":"start API called"}}
2025-03-19 16:29:06.617 [debug] State: exited => starting (start API called)
2025-03-19 16:29:06.617 [info] The kernel has started up after a restart.
2025-03-19 16:29:06.617 [info] Websocket closed with kernel in status starting: {}
2025-03-19 16:29:08.026 [info] Kernel is ready.
2025-03-19 16:29:08.027 [debug] State: starting => ready (restart complete)