process_one catches wrong QueueEmpty exception type
- 主要言語
- 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