Files
markbase/data/phase16_5_diagnosis.md
Warren d585a5ee96
Some checks failed
Test / test (push) Has been cancelled
Test / build (push) Has been cancelled
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处理逻辑
2026-06-18 00:11:12 +08:00

1.3 KiB
Raw Blame History

Phase 16.5100MB传输问题诊断

诊断时间2026-06-17 23:20 根本问题SSH server没有接收任何CHANNEL_DATA packet


关键发现

日志分析

  • iteration 0 of 2000多次启动poll loop被多次调用
  • CHANNEL_DATA packet0次 ⚠️⚠️⚠️⚠️⚠️
  • child process正常退出ExitStatus(unix_wait_status(0)))
  • SSH session1次完成

问题诊断

  • 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