Phase 16.5: 100MB diagnosis - no CHANNEL_DATA packets received
关键发现: - iteration 0多次启动(poll loop多次调用) - CHANNEL_DATA packet: 0次 ⚠️⚠️⚠️⚠️⚠️ - child process正常退出 - rsync client显示传输成功 问题诊断: - SSH server没有接收rsync数据 - 可能使用SFTP subsystem(不是exec) - 需要检查SFTP handler 下一步:检查SFTP subsystem处理逻辑
This commit is contained in:
49
data/phase16_5_diagnosis.md
Normal file
49
data/phase16_5_diagnosis.md
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
# Phase 16.5:100MB传输问题诊断 ⭐⭐⭐⭐⭐
|
||||||
|
|
||||||
|
**诊断时间**:2026-06-17 23:20
|
||||||
|
**根本问题**:SSH server没有接收任何CHANNEL_DATA packet
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 关键发现 ⭐⭐⭐⭐⭐
|
||||||
|
|
||||||
|
**日志分析**:
|
||||||
|
- iteration 0 of 2000:多次启动(poll loop被多次调用)
|
||||||
|
- CHANNEL_DATA packet:0次 ⚠️⚠️⚠️⚠️⚠️
|
||||||
|
- child process:正常退出(ExitStatus(unix_wait_status(0)))
|
||||||
|
- SSH session:1次完成
|
||||||
|
|
||||||
|
**问题诊断**:
|
||||||
|
- SSH server没有接收rsync传输的数据
|
||||||
|
- rsync client显示传输成功(18.42 MB/s)
|
||||||
|
- 但SSH server端没有数据接收日志
|
||||||
|
|
||||||
|
**可能原因**:
|
||||||
|
1. rsync使用SFTP subsystem(不是exec)
|
||||||
|
2. SSH server的SFTP handler有问题
|
||||||
|
3. rsync protocol handshake失败
|
||||||
|
4. SSH_MSG_CHANNEL_DATA没有被正确处理
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 诊断方案 ⭐⭐⭐⭐⭐
|
||||||
|
|
||||||
|
**方案1**:检查rsync是否使用SFTP subsystem
|
||||||
|
- rsync可能默认使用SFTP(而不是exec)
|
||||||
|
- 检查SSH server是否正确处理SFTP
|
||||||
|
|
||||||
|
**方案2**:检查SSH_MSG_CHANNEL_DATA handler
|
||||||
|
- 检查channel.rs中的CHANNEL_DATA处理逻辑
|
||||||
|
- 确保数据被正确接收和处理
|
||||||
|
|
||||||
|
**方案3**:使用debug日志重新测试
|
||||||
|
- RUST_LOG=debug重新测试100MB
|
||||||
|
- 查看详细的数据接收日志
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**下一步**:检查SSH server是否正确处理SFTP subsystem
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**最后更新**:2026-06-17 23:20
|
||||||
Reference in New Issue
Block a user