首先检查传输状态
传输必须从 down 状态经过协商进入 opened 状态,通道才能通信。永久 down 或失败的传输指向的是传输插件、其物理链路或其依赖初始化,而不是客户端通道。 传输插件负责:- 从物理传输读写数据
- 报告可读数据和可写空间
- 转换核心命令和载荷
- 干净地关闭传输
检查通道状态和回调
通道并不因为打开调用返回了句柄就已就绪。请确认:- 所请求的 edge、传输和通道名称与远端匹配。
- 收到了已连接通知。
- 接收端排队了足够大小的意图,能够容纳预期的报文。
- 触发了接收通知。
- 接收端调用了完成函数。
- 发送端收到了发送完成通知。
启用日志
GLink 核心和 loopback 服务器提供日志控制。支持的日志模式有:- Informational —— 默认信息性消息
- Debug —— 详细的协议和状态调试信息
- Performance —— 仅性能日志
诊断协商失败
两端独立启动版本协商。这不是竞争条件:只有两端协商序列都完成之后传输才会打开,两端最终会收敛于兼容的版本和特性集。 请检查:- 无版本确认
- 所选版本为零(未找到兼容版本)
- 对端未接受某些特性
- 协商在传输能可靠交换命令之前开始
- 传输配置声明了错误的支持版本
诊断缓冲区所有权
在每个阶段追踪传入的私有令牌:- 排队一个接收意图。
- 带数据的接收通知。
- 调用完成函数。
- 收到发送完成通知。
子系统重启的症状
一次重启可能影响连接到某条 edge 的所有通道。请确认重启路径:- 识别受影响的子系统及其 GLink edge
- 通知相关端点
- 关闭或中止受影响的通道
- 归还接收意图和发送私有数据
- 在重启完成前等待清理
- 在远端再次可用后重新打开通道

