面板版本:宝塔linux面板 13.2.0
系统版本:Debian 12 (bookworm) arm64,内核 5.10.209
(宝塔 pyenv 自带 Python 3.11 + psutil 7.2.2)
浏览器版本:不涉及(服务端日志问题,与浏览器无关)
问题现象:
面板任务日志 task.log 无限膨胀,实测单文件增长至 29GB,占满磁盘分区。
日志中持续刷入以下错误,每秒多条,直至写满:
- [ERROR]获取进程信息失败: 'Process' object has no attribute 'io_counters'
- Traceback (most recent call last):
- File "/www/server/panel/task.py", line 2770, in _get_process_list
- io_counters = p.io_counters()
- AttributeError: 'Process' object has no attribute 'io_counters'
复制代码
根因:task.py 的 _get_process_list() 中无保护地直接调用 p.io_counters() ,但面板自带的 psutil 7.2.2 已不存在该方法(验证:hasattr(psutil.Process(), 'io_counters') 返回 `False)。
每次进程列表采集必然抛 AttributeError,异常堆栈被 write_log 无限写入 task.log,且 task.log 无任何轮转/大小上限机制。
当前 task.py:2771 仍为裸调用(文件更新时间 2026-11-04,即最新版本未修复):
- p_cpu_time = p.cpu_times()
- cpu_time = p_cpu_time.system + p_cpu_time.user
- io_counters = p.io_counters() # ← 此处抛异常
- memory_info = p.memory_info()
复制代码
|
|