Node Registration Failure

Symptom

If logs such as Call timeout and init failed are displayed in the terminal window, the node may fail to be registered.

Possible Causes

  • Process exception
  • Duplicate node names exist. As a result, subsequent nodes cannot take effect.

Solution

  1. Check whether the DataMaster and queue_schedule processes exist. If any of the processes does not exist, an exception occurs. Run the following command to check the processes. The processes may be restarted repeatedly. You can check whether the process ID changes for several times.
    ps -ef | grep -E "DataMaster|queue_schedule" 
    • If the process is normal, the fault is rectified. No further action is required.
    • If the process is abnormal, go to Step 2.
  2. Check whether duplicate node names exist. View the slog file. If the message "Duplicate node name" exists, the node name already exists. Change the node name.
    • If the fault is rectified, no further action is required.
    • If the fault persists, go to Step 3.
  3. Check whether the shared memory block in /dev/shm is deleted. If the block is deleted, the communication between the node and DataMaster may fail. In this case, you can register the node again.
    • If the fault is rectified, no further action is required.
    • If the fault persists, go to Step 4.
  4. Check whether DataMaster fails to deliver the subscribe-publish queue binding relationship.

    View the slog file. Pay attention to the DataMaster process logs, especially the logs containing queue error information. Rectify the fault based on the logs.

    The default slog log paths are as follows:

    • /var/log/npu/slog/debug/device-os
    • /var/log/npu/slog/run/device-os
    • If the fault is rectified, no further action is required.
    • If the fault persists, go to Step 5.
  5. Check whether the initialization fails due to other exceptions on the node. Run the export ROS_LOG_MODE=print command to enable the OpenHiva log display, run the node on the same terminal, view the error logs generated during node startup, and rectify the fault based on the logs.