关键发现: - iteration 0多次启动(poll loop多次调用) - CHANNEL_DATA packet: 0次 ⚠️⚠️⚠️⚠️⚠️ - child process正常退出 - rsync client显示传输成功 问题诊断: - SSH server没有接收rsync数据 - 可能使用SFTP subsystem(不是exec) - 需要检查SFTP handler 下一步:检查SFTP subsystem处理逻辑
1.3 KiB
1.3 KiB
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端没有数据接收日志
可能原因:
- rsync使用SFTP subsystem(不是exec)
- SSH server的SFTP handler有问题
- rsync protocol handshake失败
- 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