Phase 16: iteration limit exceeded (10504 vs 2000)
根本原因: - iteration次数:10504次(超出2000限制) - 导致100MB传输中断 症状: - SSH server异常退出 - 文件保存失败 修复方案: - 修正iteration计数逻辑 - 或移除iteration限制 - 或暂时接受50MB限制
This commit is contained in:
55
data/phase16_iteration_limit_issue.md
Normal file
55
data/phase16_iteration_limit_issue.md
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
# Phase 16:iteration limit超出问题 ⭐⭐⭐⭐⭐
|
||||||
|
|
||||||
|
**发现问题**:2026-06-17 23:15
|
||||||
|
**根本原因**:poll iteration次数超出限制
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 问题分析 ⭐⭐⭐⭐⭐
|
||||||
|
|
||||||
|
**日志发现**:
|
||||||
|
- iteration次数:10504次
|
||||||
|
- max_poll_iterations限制:2000次
|
||||||
|
- **超出限制**:10504 / 2000 = 5.25倍 ⚠️⚠️⚠️⚠️⚠️
|
||||||
|
|
||||||
|
**症状**:
|
||||||
|
- SSH server在iteration超过2000后可能异常退出
|
||||||
|
- 导致100MB文件传输中断
|
||||||
|
- 文件保存失败
|
||||||
|
|
||||||
|
**根本原因**:
|
||||||
|
- poll timeout 100ms
|
||||||
|
- 实际传输时间:5秒
|
||||||
|
- 理论iteration次数:5秒 / 0.1秒 = 50次
|
||||||
|
- 实际iteration次数:10504次 ⚠️⚠️⚠️⚠️⚠️
|
||||||
|
|
||||||
|
**问题诊断**:
|
||||||
|
- poll loop有bug,iteration计数不正确
|
||||||
|
- 或者有多个channel同时poll,累计iteration次数
|
||||||
|
- 或者poll返回timeout但iteration仍递增
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 修复方案 ⭐⭐⭐⭐⭐
|
||||||
|
|
||||||
|
**方案1**:移除iteration限制(无限循环)
|
||||||
|
- 不限制iteration次数
|
||||||
|
- 仅依赖stdin timeout(150秒)
|
||||||
|
- 风险:可能导致死循环
|
||||||
|
|
||||||
|
**方案2**:修正iteration计数逻辑
|
||||||
|
- 检查poll loop代码
|
||||||
|
- 确保iteration计数正确
|
||||||
|
- 或改为时间限制(秒数)
|
||||||
|
|
||||||
|
**方案3**:暂时接受50MB限制
|
||||||
|
- 50MB已验证成功
|
||||||
|
- 100MB需要进一步调试
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**推荐方案2**:修正iteration计数逻辑
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**最后更新**:2026-06-17 23:15
|
||||||
Reference in New Issue
Block a user