matplotlib / matplotlib/ipympl
ipympl crashes when panning/zooming
まだ誰も着手していません。
- 主要言語
- Jupyter Notebook
- スター
- 1.7k
- フォーク
- 234
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
## 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:
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.
```
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
報告されている Python 3.10.9 と ipympl 0.9.3 のセットアップを使用し、ノートブックでプロットを表示してズームまたはパンのコントロールを使ってドラッグすることで、クラッシュを再現します。Tornado のアサーションと、記載されている Jupyter パッケージのバージョンから始めます。サーバーまたは接続がクラッシュすることなく、パンとズームを継続できれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- jupyter, jupyter-notebook, matplotlib, python
- 領域
- data-visualization
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 35/100