ipython / ipython/ipykernel

process_one catches wrong QueueEmpty exception type

オープン
#751 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
Python
スター
734
フォーク
412
平均マージ
1日 5時間
マージ済み PR(30日)
8

説明

The `process_one` function [catches](https://github.com/ipython/ipykernel/blob/db5f708f66277110e4336cb4210a12d05323c564/ipykernel/kernelbase.py#L444) `asyncio.QueueEmpty`, but `msg_queue` is a tornado Queue and `get_nowait` [raises](https://github.com/tornadoweb/tornado/blob/aa9d32d5e89b290dad69e0c6655b7497ea492e45/tornado/queues.py#L272) its own [QueueEmpty](https://github.com/tornadoweb/tornado/blob/aa9d32d5e89b290dad69e0c6655b7497ea492e45/tornado/queues.py#L47) type, not the one in asyncio. This looks like it was part of the native async refactor for ipykernel 6, so I don't know if it's as simple as changing what type is caught, or if some other change needs to be made.

ipykernel 6.2, tornado 6.1

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

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

調査の方向性

Start at ipykernel/kernelbase.py around process_one and compare its caught exception with tornado/queues.py's get_nowait and QueueEmpty definitions linked in the issue. Run the relevant ipykernel tests, and consider the issue done when an empty msg_queue is handled without the wrong exception escaping.

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

評価

技術スタック
python
領域
backend
issue の種類
バグ
難易度
2/5
見積もり時間
1〜3時間
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
45/100

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

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