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