ipython / ipython/ipykernel

process_one catches wrong QueueEmpty exception type

未關閉
#751 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
主要語言
Python
星號
734
分支
412
平均合併
1 天 5 小時
30 天內合併 PR
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 摘要。