diff --git a/data/phase16_iteration_limit_issue.md b/data/phase16_iteration_limit_issue.md new file mode 100644 index 0000000..b2b61ae --- /dev/null +++ b/data/phase16_iteration_limit_issue.md @@ -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