Files
markbase/data/phase16_iteration_limit_issue.md
Warren d956bda64a
Some checks failed
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
Phase 16: iteration limit exceeded (10504 vs 2000)
根本原因:
- iteration次数:10504次(超出2000限制)
- 导致100MB传输中断

症状:
- SSH server异常退出
- 文件保存失败

修复方案:
- 修正iteration计数逻辑
- 或移除iteration限制
- 或暂时接受50MB限制
2026-06-17 23:10:17 +08:00

1.3 KiB
Raw Blame History

Phase 16iteration 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有bugiteration计数不正确
  • 或者有多个channel同时poll累计iteration次数
  • 或者poll返回timeout但iteration仍递增

修复方案

方案1移除iteration限制无限循环

  • 不限制iteration次数
  • 仅依赖stdin timeout150秒
  • 风险:可能导致死循环

方案2修正iteration计数逻辑

  • 检查poll loop代码
  • 确保iteration计数正确
  • 或改为时间限制(秒数)

方案3暂时接受50MB限制

  • 50MB已验证成功
  • 100MB需要进一步调试

推荐方案2修正iteration计数逻辑


最后更新2026-06-17 23:15