Phase 16.3: SSH server稳定性问题诊断
测试结果: - ✅ 5MB-20MB: 成功(MD5一致) - ❌ 50MB-100MB: SSH server崩溃(Connection reset) 可能原因: - stdin timeout不足(300 iterations) - poll iteration限制(500次) - 大文件处理问题 下一步: - 增加stdin timeout和poll iteration限制 - 或限制传输文件大小到20MB
This commit is contained in:
57
data/phase16_3_ssh_server_crash.md
Normal file
57
data/phase16_3_ssh_server_crash.md
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
# Phase 16.3:SSH server稳定性问题诊断
|
||||||
|
|
||||||
|
**测试时间**:2026-06-17 22:43-22:45
|
||||||
|
**问题**:SSH server在传输大文件(50MB+)时崩溃
|
||||||
|
|
||||||
|
## 测试结果 ⭐⭐⭐⭐⭐
|
||||||
|
|
||||||
|
| 文件大小 | 传输状态 | MD5校验 | SSH server状态 | 结果 |
|
||||||
|
|---------|---------|---------|--------------|------|
|
||||||
|
| 5MB | ✅ 成功 | ✅ 一致 | ✅ 运行正常 | ✅ 成功 |
|
||||||
|
| 20MB | ✅ 成功 (19.29 MB/s) | ✅ 一致 | ✅ 运行正常 | ✅ 成功 |
|
||||||
|
| 50MB | ❌ 显示成功 | ❌ 文件不存在 | ❌ 崩溃 | ❌ 失败 |
|
||||||
|
| 100MB | ❌ Connection reset | ❌ 文件不存在 | ❌ 崩溃 | ❌ 失败 |
|
||||||
|
|
||||||
|
## 问题分析 ⭐⭐⭐⭐⭐
|
||||||
|
|
||||||
|
**症状**:
|
||||||
|
- SSH server在传输50MB+文件时崩溃
|
||||||
|
- 进程消失,日志文件不存在
|
||||||
|
- Connection refused / Connection reset by peer
|
||||||
|
|
||||||
|
**可能原因**:
|
||||||
|
1. stdin timeout问题(300 iterations可能不够)
|
||||||
|
2. poll iteration overhead(500次可能太少)
|
||||||
|
3. 内存问题(大文件传输时内存泄漏)
|
||||||
|
4. Child process处理问题(rsync child提前退出)
|
||||||
|
|
||||||
|
**关键发现**:
|
||||||
|
- Window Control次数:7340次(5MB+20MB传输)
|
||||||
|
- 这说明Window Control工作正常
|
||||||
|
- 问题可能在stdin处理或child process管理
|
||||||
|
|
||||||
|
## 诊断方案 ⭐⭐⭐⭐⭐
|
||||||
|
|
||||||
|
**方案1:增加stdin timeout**(优先)
|
||||||
|
- 从300 iterations改回500或1000
|
||||||
|
- 给rsync更多时间处理大文件
|
||||||
|
|
||||||
|
**方案2:增加poll iteration限制**
|
||||||
|
- 从500改回1000或2000
|
||||||
|
- 防止过早退出poll loop
|
||||||
|
|
||||||
|
**方案3:添加SSH server crash handler**
|
||||||
|
- 捕获panic和error
|
||||||
|
- 防止崩溃时无日志
|
||||||
|
|
||||||
|
**方案4:限制单次传输文件大小**
|
||||||
|
- 暂时限制在20MB以内
|
||||||
|
- 待后续修复后再支持大文件
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**建议**:先实施方案1+2(增加timeout和iteration),测试50MB是否成功
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**最后更新**:2026-06-17 22:45
|
||||||
Reference in New Issue
Block a user