Runtime errors from Deepstream 7.1 via GXF on Jetson Xavier NX

Please provide complete information as applicable to your setup.

• Hardware Platform (Jetson / GPU): Jetson Xavier NX
• DeepStream Version: 7.1
• JetPack Version (valid for Jetson only): R35 (release), REVISION: 4.1
• TensorRT Version: 10.3.0
• NVIDIA GPU Driver Version (valid for GPU only): 550.107.02(CUDA version: 12.4)
• Issue Type( questions, new requirements, bugs): bugs
• Docker Version: Docker version 27.0.3-1, build 7d4bcd863a4c863e650eed02a550dfeb98560b83
• OS: Ubuntu 22.04.4 LTS (amd64)
• Graph Composer and Runtime Version: 4.1.0
• How to reproduce the issue ? (This is for bugs. Including which sample app is using, the configuration files content, the command line used and other details for reproducing)

Whenever I run the deepstream-test1 reference graph example on my Jetson board with the following docker compose file

  deepstream-test1:
    image: <registry>:deepstream-test1-jetson
    runtime: nvidia
    network_mode: host
    environment:
      - DISPLAY=:0
    tty: true
    stdin_open: true
    volumes:
      - /tmp/.X11-unix:/tmp/.X11-unix:rw
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
      - /tmp/argus_socket:/tmp/argus_socket

I am presented with the following error:

Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: nvidia-container-runtime did not terminate successfully: exit status 1: time="2024-10-23T21:38:11-04:00" level=error msg="failed to create NVIDIA Container Runtime: failed to construct OCI spec modifier: requirements not met: unsatisfied condition: cuda>=12.2 (cuda=11.4)" : unknown

This seems self explanatory, but if I were to build from a prior base image such as nvcr.io/nvidia/deepstream-l4t:6.4-triton-multiarch, I get the following error while running the container:

deepstream-1  | 2024-10-24 04:05:20.643 INFO  gxf/gxe/gxe.cpp@183: Creating context
deepstream-1  | 2024-10-24 04:05:20.790 ERROR gxf/std/extension_loader.cpp@114: Failed to load extension /workspace/deepstream-test1/deepstream/nvdsbase/libgxf_nvdsbase.so Error: libnvbufsurface.so: cannot open shared object file: No such file or directory
deepstream-1  | 2024-10-24 04:05:20.791 ERROR gxf/gxe/gxe.cpp@255: LoadExtensionManifest Error: GXF_EXTENSION_FILE_NOT_FOUND
deepstream-1 exited with code 1

And the following if i use nvcr.io/nvidia/deepstream-l4t:6.2-triton

deepstream-1  | gxe: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by gxe)
deepstream-1  | gxe: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by gxe)
deepstream-1  | gxe: /lib/aarch64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by gxe)
deepstream-1  | gxe: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /opt/nvidia/graph-composer/libgxf_core.so)
deepstream-1  | gxe: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /opt/nvidia/graph-composer/libgxf_core.so)
deepstream-1  | gxe: /lib/aarch64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /opt/nvidia/graph-composer/libgxf_core.so)
deepstream-1 exited with code 1

How did you generate the “deepstream-test1-jetson” image? How did you run the image in your Jetson board?

Thanks for the reply. I used the container-builder cli as noted in the README enclosed with the reference graph, i.e. container_builder build -c ds_test1_container_builder_jetson.yaml -d aarch64 -wd $(pwd). I also made sure to update the docker_push.url field in order to push my image to my docker registry.

I ran the image using the compose file snippet in my earlier post via docker compose up deepstream-test1
The docker version on my Jetson board is Docker version 24.0.7, build 24.0.7-0ubuntu2~20.04.1

Tried in our AGX Orin board.

xhost +
sudo docker run -it --rm --net=host --runtime nvidia  -e DISPLAY=$DISPLAY -v /tmp/.X11-unix/:/tmp/.X11-unix deepstream-test1-jetson

It works.

Would you be kind enough to try on a device with JetPack version R35 (release), REVISION: 4.1 preferably on the Jetson Xavier NX. Also may I also know what base image you are using to build the example/changes to your container builder config?

DeepStream 7.1 version does not support Jetson Xavier NX.

Graph Composer 4.1.0 does not support Jetson Xavier NX either.

Please use DeepStream 6.3 and Graph Composer 3.0.0 with Jetson Xavier NX. Container Builder — DeepStream 6.3 Release documentation

I get the following error if i use Deepstream 6.3 with Graph Composer 3.0.0

deepstream-1  | gxe: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by gxe)
deepstream-1  | gxe: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by gxe)
deepstream-1  | gxe: /lib/aarch64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by gxe)
deepstream-1  | gxe: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by /opt/nvidia/graph-composer/libgxf_core.so)
deepstream-1  | gxe: /lib/aarch64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by /opt/nvidia/graph-composer/libgxf_core.so)
deepstream-1  | gxe: /lib/aarch64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /opt/nvidia/graph-composer/libgxf_core.so)
deepstream-1 exited with code 1

And the following if i use Deepstream 6.1 with Graph Composer 3.0.0

deepstream-1  | 2024-10-30 15:22:13.370 ERROR extensions/nvdssource/nvurisrcbin.hpp@36: Could not create GStreamer element 'nvurisrcbin'
deepstream-1  | 2024-10-30 15:22:13.370 ERROR gxf/std/program.cpp@519: Couldn't run async. Deactivating...
deepstream-1  | 2024-10-30 15:22:13.373 ERROR gxf/core/runtime.cpp@1392: Graph run failed with error: GXF_FAILURE
deepstream-1  | 2024-10-30 15:22:13.373 ERROR gxf/gxe/gxe.cpp@269: GxfGraphRunAsync Error: GXF_FAILURE
deepstream-1 exited with code 1

Is the deepstream-test1-jetson docker generate by Graph Composer 3.0.0 too?

Yes it is.

Graph Composer 3.0.0 can only work with DeepStream 6.3+JetPack 5.1.2 GA. It means the Jetson host should be installed with JP5.1.2 GA. Why did you mention DeepStream 6.1 + Graph Composer 3.0.0?

Please install your board with JP 5.1.2GA +DeepStream 6.3+ Graph Composer 3.0.0 and build the deepstream-test1 container according to Container Builder — DeepStream 6.3 Release documentation

Such errors show that the needed libraries are not built in the container or the gxf libraries copied to the container are not compatible to the base images.

Pardon the delay in responding, I used Deepstream 6.1 as the documentation seems to support its use, although it does not mention the version of the Graph Composer.

The JetPack SDK release notes for 5.1.2 mentions support for Deepstream 6.2. This can be found under Supported SDKs and Tools. I assumed this version should’ve been compatible. I decided to use the targeted release version (Deepstream 6.1) when i encountered errors with 6.2.

Moreover, it was my understanding that the container builder will find and use the appropriate version of the extensions populated via the registry. i.e. If my target device is aarch64 ubuntu_20.04, where my graph uses the NvDsInferenceUtilsExt extension, my minimum Deepstream version should be 6.3 or above as defined in its target.yaml(~/.cache/nvgraph_registry/NvDsInferenceUtilsExt/1.3.0/1.3.0-linux-aarch64-ubuntu_20.04-ds-6.3/target.yaml)

This led me to understand that in order to also get this to work on a graph designed in the latest DS versions, I had to manually change the extension versions in my graph to match the target required for Deepstream 6.3. i.e. Changed the version fields in my graph to 1.3.0.

The example almost works but i encounter the following error:

deepstream-1  | 2024-11-05 12:16:09.543 ERROR extensions/nvdssource/nvurisrcbin.hpp@36: Could not create GStreamer element 'nvurisrcbin'
deepstream-1  | 2024-11-05 12:16:09.543 ERROR gxf/std/program.cpp@519: Couldn't run async. Deactivating...
deepstream-1  | 2024-11-05 12:16:09.545 ERROR gxf/core/runtime.cpp@1392: Graph run failed with error: GXF_FAILURE
deepstream-1  | 2024-11-05 12:16:09.545 ERROR gxf/gxe/gxe.cpp@269: GxfGraphRunAsync Error: GXF_FAILURE
deepstream-1 exited with code 1

You may use “gst-inspect-1.0 nvurisrcbin” command to check whether nvurisrcbin is supported in the platform. There is no “nvurisrcbin” in DeepStream 6.1.