matplotlib / ipympl

Matplotlib Jupyter Integration
https://matplotlib.org/ipympl/
BSD 3-Clause "New" or "Revised" License
1.59k stars 225 forks source link

ipympl crashes when panning/zooming #531

Open cuernodegazpacho opened 1 year ago

cuernodegazpacho commented 1 year ago

Describe the issue

After a plot gets displayed in a notebook, I select either the zoom or pan button, move the cursor over the plot, and drag it to execute the operation. The plot correctly responds for a little while, but soon the server crashes with this error:

[E 16:08:31.532 NotebookApp] Uncaught exception, closing connection.
    Traceback (most recent call last):
      File "/Users/busko/Projects/software/miniconda3/envs/astro/lib/python3.10/site-packages/tornado/iostream.py", line 702, in _handle_events
        self._handle_write()
      File "/Users/busko/Projects/software/miniconda3/envs/astro/lib/python3.10/site-packages/tornado/iostream.py", line 976, in _handle_write
        self._write_buffer.advance(num_bytes)
      File "/Users/busko/Projects/software/miniconda3/envs/astro/lib/python3.10/site-packages/tornado/iostream.py", line 182, in advance
        assert 0 < size <= self._size
    AssertionError
Exception in callback None()
handle: <Handle cancelled>
Traceback (most recent call last):
  File "/Users/busko/Projects/software/miniconda3/envs/astro/lib/python3.10/asyncio/events.py", line 80, in _run
    self._context.run(self._callback, *self._args)
  File "/Users/busko/Projects/software/miniconda3/envs/astro/lib/python3.10/site-packages/tornado/platform/asyncio.py", line 206, in _handle_events
    handler_func(fileobj, events)
  File "/Users/busko/Projects/software/miniconda3/envs/astro/lib/python3.10/site-packages/tornado/iostream.py", line 702, in _handle_events
    self._handle_write()
  File "/Users/busko/Projects/software/miniconda3/envs/astro/lib/python3.10/site-packages/tornado/iostream.py", line 976, in _handle_write
    self._write_buffer.advance(num_bytes)
  File "/Users/busko/Projects/software/miniconda3/envs/astro/lib/python3.10/site-packages/tornado/iostream.py", line 182, in advance
    assert 0 < size <= self._size
AssertionError
[W 16:08:31.533 NotebookApp] zmq message arrived on closed channel

Versions

I suppose I'm using the latest versions of everything (under Python 3.10.9), sinceI just installed everything from scratch on a new Mac M1 (which has the developer tools and rosetta).

bash-3.2$ python -c "import sys; print('\n',sys.version); import ipympl; print('ipympl version:', ipympl.__version__)" && jupyter --version && jupyter nbextension list && jupyter labextension list

 3.10.9 (main, Jan 11 2023, 09:18:20) [Clang 14.0.6 ]
ipympl version: 0.9.3
Selected Jupyter core packages...
IPython          : 8.14.0
ipykernel        : 6.24.0
ipywidgets       : 8.0.7
jupyter_client   : 8.3.0
jupyter_core     : 5.3.1
jupyter_server   : 2.7.0
jupyterlab       : not installed
nbclient         : 0.8.0
nbconvert        : 7.7.1
nbformat         : 5.9.1
notebook         : 6.5.4
qtconsole        : 5.4.3
traitlets        : 5.9.0
Known nbextensions:
  config dir: /Users/busko/Projects/software/miniconda3/envs/astro/etc/jupyter/nbconfig
    notebook section
      jupyter-matplotlib/extension  enabled 
      - Validating: OK
      jupyter-js-widgets/extension  enabled 
      - Validating: OK
usage: jupyter [-h] [--version] [--config-dir] [--data-dir] [--runtime-dir] [--paths] [--json] [--debug] [subcommand]

Jupyter: Interactive Computing

positional arguments:
  subcommand     the subcommand to launch

options:
  -h, --help     show this help message and exit
  --version      show the versions of core jupyter packages and exit
  --config-dir   show Jupyter config dir
  --data-dir     show Jupyter data dir
  --runtime-dir  show Jupyter runtime dir
  --paths        show all Jupyter paths. Add --json for machine-readable format.
  --json         output paths as machine-readable json
  --debug        output debug information about paths

Available subcommands: bundlerextension console dejavu events execute kernel kernelspec migrate nbclassic nbconvert nbextension
notebook qtconsole run server serverextension troubleshoot trust

Jupyter command `jupyter-labextension` not found.