Issue with Hailo GStreamer Pipeline on reComputer AI R2000: Multi-process-service Error

Hi,

I’m running the Hailo GStreamer pipeline on a Seeed reComputer AI R2000 using Docker. My Dockerfile is based on the dtcooper/raspberrypi-os:bookworm image. Here’s the command I use to run the Docker container:

sudo docker run --privileged --network host -it \
  -v /dev:/dev \
  -v /lib/firmware:/lib/firmware \
  -v /lib/modules:/lib/modules \
  --device=/dev/hailo0:/dev/hailo0 \
  -v /run/systemd/system:/run/systemd/system \
  -v /var/run/dbus/system_bus_socket:/var/run/dbus/system_bus_socket \
  -v /etc:/etc \
  -v /var/lib:/var/lib \
  -v /var/log:/var/log \
  -v /home/eli/oshadha/docker2/qube-fastapi-poc/ai_pipeline_hailo/src/object-detection-hailo.py:/backend/src/ai_pipeline_hailo/src/object-detection-hailo.py \
  hailo /bin/bash

When I enable the multi-process-service=true option in the hailonet element of my pipeline, I receive the following error:

[HailoRT] [error] CHECK_GRPC_STATUS failed with error code: 14.
[HailoRT] [warning] Make sure HailoRT service is enabled and active!
[HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_RPC_FAILED(77)
[HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_RPC_FAILED(77)
[HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_RPC_FAILED(77)
[HailoRT] [error] CHECK_SUCCESS failed with status=HAILO_RPC_FAILED(77)
CHECK_EXPECTED failed with status=77

This is how I use the multi-process-service=true in the hailonet element of the pipeline:

pipeline_string += f"hailonet hef-path={self.hef_path} batch-size={self.batch_size} {self.thresholds_str} force-writable=true multi-process-service=true device-count=1 vdevice-group-id=1 ! "

However, when I remove the multi-process-service=true flag, the pipeline runs successfully. Also, outside of Docker, the pipeline works fine even with multi-process-service=true enabled.

Since I need to run multiple streams, I must enable multi-process-service=true. Can anyone suggest a solution or provide guidance on how to resolve this issue?

Thanks in advance!

Hey @Oshadha_Eshan ,

Welcome to the Hailo Community!

Here’s what’s happening: When you use multi-process-service=true with hailonet, it needs the HailoRT gRPC service running to handle the communication. In Docker, you need to explicitly share this service with your container.

Two ways to fix this:

  1. Run the service on your host (this is better):

    • Start it with: sudo systemctl start hailort-service
    • Make it start automatically: sudo systemctl enable hailort-service
    • Add this to your docker run: -v /tmp/hailort-service:/tmp/hailort-service
  2. Run the service inside the container:

    • Make sure it’s installed in your image
    • Start it manually: /usr/bin/hailort-service &
    • Then run your pipeline

You can check if it’s working with:

HAILO_SOCK_PATH=/tmp/hailort-service hailortcli info