节点注册失败
问题描述
当终端窗口出现Call timeout、init failed等日志,可能是节点注册失败。
可能的原因
- 进程异常导致节点注册失败。
- 重复出现相同的节点名,导致后续节点无法生效。
处理方案
- 检查DataMaster和queue_schedule进程是否存在,正常情况下均存在,否则异常。执行如下命令查看进程,该进程可能在不断重启中,可以多查看几次观察进程号是否变化。
ps -ef | grep -E "DataMaster|queue_schedule"
- 如果进程正常,问题解决,处理完毕。
- 如果进程异常,问题未解决,请执行步骤2。
- 检查是否出现同名节点。查看slog日志,若存在“Duplicate node name”提示,说明存在相同node name,请自行修改节点名。
- 如果问题解决,处理完毕。
- 如果问题未解决,请执行步骤3。
- 检查/dev/shm里的共享内存块是否被误删。若误删,可能会导致节点和DataMaster通信失败,可以重新注册节点。
- 如果问题解决,处理完毕。
- 如果问题未解决,请执行步骤4。
- 检查DataMaster下发订阅/发布队列绑定关系是否失败。
查看slog日志,重点关注DataMaster进程日志,尤其是带有“queue”错误信息提示的打印,请根据信息提示解决问题。
默认的slog日志路径如下:
- /var/log/npu/slog/debug/device-os
- /var/log/npu/slog/run/device-os
- 如果问题解决,处理完毕。
- 如果问题未解决,请执行步骤5。
- 检查节点内是否发生其他异常导致初始化失败。先执行“export ROS_LOG_MODE=print”命令开启OpenHiva日志屏显,再运行节点(需在同一个终端界面运行),查看节点启动时的错误日志,并根据日志提示修复异常。
父主题: OpenHiva常见问题