matplotlib / matplotlib/ipympl

RuntimeError: libpng signaled error

オープン
#127 コメント 16 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

主要言語
Jupyter Notebook
スター
1.7k
フォーク
234
PR マージ指標
30日以内にマージされた PR はありません

説明

Sometimes I am getting this error with the trunk version. Not sure what a MWE would be. Has anyone encountered this?
Thanks, Chaffra

RuntimeError                              Traceback (most recent call last)
/usr/local/lib/python3.6/dist-packages/ipympl/backend_nbagg.py in _handle_message(self, object, content, buffers)
    178             self.manager.resize(w, h)
    179         else:
--> 180             self.manager.handle_json(content)
    181 
    182     def send_json(self, content):

/usr/local/lib/python3.6/dist-packages/matplotlib/backends/backend_webagg_core.py in handle_json(self, content)
    437 
    438     def handle_json(self, content):
--> 439         self.canvas.handle_event(content)
    440 
    441     def refresh_all(self):

/usr/local/lib/python3.6/dist-packages/matplotlib/backends/backend_webagg_core.py in handle_event(self, event)
    238         handler = getattr(self, 'handle_{0}'.format(e_type),
    239                           self.handle_unknown_event)
--> 240         return handler(event)
    241 
    242     def handle_unknown_event(self, event):

/usr/local/lib/python3.6/dist-packages/matplotlib/backends/backend_webagg_core.py in handle_draw(self, event)
    254 
    255     def handle_draw(self, event):
--> 256         self.draw()
    257 
    258     def _handle_mouse(self, event):

/usr/local/lib/python3.6/dist-packages/matplotlib/backends/backend_webagg_core.py in draw(self)
    151             super().draw()
    152         finally:
--> 153             self.manager.refresh_all()  # Swap the frames.
    154 
    155     def draw_idle(self):

/usr/local/lib/python3.6/dist-packages/matplotlib/backends/backend_webagg_core.py in refresh_all(self)
    441     def refresh_all(self):
    442         if self.web_sockets:
--> 443             diff = self.canvas.get_diff_image()
    444             if diff is not None:
    445                 for s in self.web_sockets:

/usr/local/lib/python3.6/dist-packages/matplotlib/backends/backend_webagg_core.py in get_diff_image(self)
    199             buff = _png.write_png(
    200                 output.view(dtype=np.uint8).reshape(output.shape + (4,)),
--> 201                 None, compression=6, filter=_png.PNG_FILTER_NONE)
    202 
    203             # Swap the renderer frames

RuntimeError: libpng signaled error

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

ipympl の backend_nbagg.py と、matplotlib の backend_webagg_core.py における handle_draw()、refresh_all()、get_diff_image() を通る処理経路、特に traceback に示されている _png.write_png の呼び出しから始めます。報告されている Python、ipympl、matplotlib、libpng のバージョンで失敗を再現し、その後、エラーが発生しなくなったことを示す最小例と回帰テストのカバレッジを定義します。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
jupyter-notebook, python
領域
backend, web-dev
issue の種類
バグ
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。