ipykernel icon indicating copy to clipboard operation
ipykernel copied to clipboard

Status bar showing idle status for a busy kernel when switching notebooks

Open kiranik opened this issue 2 years ago • 1 comments

Description

Jupyter lab status bar is showing that the kernel is idle even though the kernel is busy as seen in the top right kernel status tab. This occurs when we switch between an idle notebook and a busy notebook.

Reproduce

  1. Create a new notebook named notebook_1.ipynb. Add a long running script in a cell and execute the same.
  2. Create a second notebook named notebook_2.ipynb. Assign a kernel and wait until kernel is idle.
  3. Switch between notebook_1.ipynb and notebook_2.ipynb.
  4. Check status bar of notebook_1.ipynb. Kernel status will be shown as idle instead of busy.

Expected behaviour

Kernel status of busy notebook should be shown as busy instead of idle.

Context

  • Operating System and version: macOS Monterey, version 12.6.4
  • Browser and version: Chrome 113.0.5672.92
  • JupyterLab version: 3.6.3 and 4.0.0
  • ipykernel version : 6.16.2
  • ipython version : 7.34.0
package versions
aiofiles==22.1.0
aiosqlite==0.19.0
anyio==3.6.2
appnope==0.1.3
argon2-cffi==21.3.0
argon2-cffi-bindings==21.2.0
arrow==1.2.3
attrs==23.1.0
Babel==2.12.1
backcall==0.2.0
beautifulsoup4==4.12.2
bleach==6.0.0
cached-property==1.5.2
certifi==2023.5.7
cffi==1.15.1
charset-normalizer==3.1.0
debugpy==1.6.7
decorator==5.1.1
defusedxml==0.7.1
entrypoints==0.4
fastjsonschema==2.17.1
fqdn==1.5.1
idna==3.4
importlib-metadata==6.6.0
importlib-resources==5.12.0
ipykernel==6.16.2
ipython==7.34.0
ipython-genutils==0.2.0
isoduration==20.11.0
jedi==0.18.2
Jinja2==3.1.2
json5==0.9.14
jsonpointer==2.3
jsonschema==4.17.3
jupyter-events==0.6.3
jupyter-server==1.24.0
jupyter-ydoc==0.2.4
jupyter_client==7.4.9
jupyter_core==4.12.0
jupyter_server_fileid==0.9.0
jupyter_server_ydoc==0.8.0
jupyterlab==3.6.3
jupyterlab-pygments==0.2.2
jupyterlab_server==2.22.1
MarkupSafe==2.1.2
matplotlib-inline==0.1.6
mistune==2.0.5
nbclassic==1.0.0
nbclient==0.7.4
nbconvert==7.4.0
nbformat==5.8.0
nest-asyncio==1.5.6
notebook==6.5.4
notebook_shim==0.2.3
packaging==23.1
pandocfilters==1.5.0
parso==0.8.3
pexpect==4.8.0
pickleshare==0.7.5
pkgutil_resolve_name==1.3.10
prometheus-client==0.16.0
prompt-toolkit==3.0.38
psutil==5.9.5
ptyprocess==0.7.0
pycparser==2.21
Pygments==2.15.1
pyrsistent==0.19.3
python-dateutil==2.8.2
python-json-logger==2.0.7
pytz==2023.3
PyYAML==6.0
pyzmq==25.0.2
requests==2.30.0
rfc3339-validator==0.1.4
rfc3986-validator==0.1.1
Send2Trash==1.8.2
six==1.16.0
sniffio==1.3.0
soupsieve==2.4.1
terminado==0.17.1
tinycss2==1.2.1
tomli==2.0.1
tornado==6.2
traitlets==5.9.0
typing_extensions==4.5.0
uri-template==1.2.0
urllib3==2.0.2
wcwidth==0.2.6
webcolors==1.13
webencodings==0.5.1
websocket-client==1.5.2
y-py==0.5.9
ypy-websocket==0.8.2
zipp==3.15.0

https://github.com/jupyterlab/jupyterlab/assets/6435143/46594eec-75e3-4fcb-9ece-4b25360dedbd

Original issue was opened as jupyterlab/jupyterlab#14578. Migration requested by brijsiyag IOpub messages received twice with alternate execution_state as idle and busy. This leads to the inconsistent behaviour.

kiranik avatar Jun 08 '23 09:06 kiranik

I commented on the original issue in JupyterLab. I don't think this is a problem with ipykernel; rather, JupyterLab is not properly handling IOPub status messages from multiple channels in the client.

Zsailer avatar Jun 15 '23 14:06 Zsailer