根本原因: - iteration次数:10504次(超出2000限制) - 导致100MB传输中断 症状: - SSH server异常退出 - 文件保存失败 修复方案: - 修正iteration计数逻辑 - 或移除iteration限制 - 或暂时接受50MB限制
56 lines
1.3 KiB
Markdown
56 lines
1.3 KiB
Markdown
# 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
|