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

Open
#1,121 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
45/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
jupyter, python
Domain
backend

Research direction

Reproduce the issue by running a long cell in notebook_1.ipynb, leaving notebook_2.ipynb idle, and switching between them. Inspect the IOPub execution_state messages, which the report says arrive twice with alternating idle and busy states; done means the status bar consistently shows busy for the running notebook.

Written by the indexing model from the issue text.

Description

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.

Dominant language
Python
Stars
734
Forks
411
Avg merge
1d 2h
Merged PRs (30d)
9

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from ipython/ipykernel

All issues in ipython/ipykernel

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.