FAQ#

General#

How to add new extension?#

See the Extension Development Workflow for information on adding new extension.

Registry#

How can I know which extensions synchronized to registry cache correspond to a specific repository?#

The extn list -r <repo-name> cli command lists all the extension for a specific repository.

The registry failed to perform an operation and reported an error message. How can I get more information on why the operation failed?#

The registry logs all of its operations in /tmp/gxf_registry.log file. You can use this to view the debug logs.

How can I change the location of the registry logs?#

Currently, registry logs are located at /tmp. You can change this location by setting an environment variable called TMPDIR to an existing directory. e.g. $mkdir -p /home/$USER/tmp && export TMPDIR=/home/$USER/tmp

Container Builder#

In the main control section, why is the field container_builder required?#

It is used to distinguish the main control and the stage sections. Any name for container_builder should be ok.

In the list of local_copy_files, if src is a folder, Any difference for dst ends with ‘/’ or not?#

No. There is no difference for dst. It must be a folder to store src content.

What happens if unsupported fields are added into each section of the YAML file?#

Container builder would skip all unsupported fields in YAML config. Users should take responsibility to set correct fields and values. For example, if entrypoint is added into compile_stage, it would be skipped.

During container builder installing graphs, sometimes there are unexpected errors happening while downloading manifests or extensions from registry. And once it happens, container builder may return errors again and again. How to clean and restart?#

Some timeout errors during extensions downloads in the registry might cause information loss. This could stop container builder to re-add repos into registry. Just restarting the container builder may not solve the issue. When it happens, users need to manually clean up the registry repo and restart container builder again. For example, use cmdline gxf_registry repo remove --name  [repo_name] to remove the repo. Read more details from Registry section.

Regarding git source code compiling in compile_stage, Is it possible to compile source from HTTP archives?#

You may add compile cmdline into post_cmd. Then copy the compiled binary into the final stage.

 ---
unique_stage: compile
base_image: "ubuntu:22.04"
stage_model: compile_stage
http_archives:
- url: https://host:port/source.tar.bz2
post_cmd: "tar -jxvf source.tar.bz2 && make && make install"
---
unique_stage: final
base_image: "ubuntu:22.04"
stage_model: clean_stage
stage_copy_files:
- src_stage: "compile"
src: "/usr/local/bin/binary"
src: "/usr/bin/binary”

Container builder fails to run with the following error:#

ContainerBuilder.__main__ - ERROR - gRPC client: StatusCode.UNAVAILABLE- failed to connect to all addresses.
Please check if connecting to the correct port or  close all connections to the port and restart the server.

You need to start gxf server for Container Builder to run. Use systemctl --user start gxf_server to start the gxf server.

Composer#

What is the GPU requirement for running the Composer?#

There is no specific GPU requirement to run the Composer. A more powerful NVIDIA dGPU will provide better user experience.

Can I run Composer on iGPU?#

Yes, Composer is supported on Intel GPUs (HD Graphics 540) or higher. It can be run using command prompt or terminal, by running command composer.exe --enable-vulkan.

Why can’t I paste a component after copied one?#

To successfully paste a component, you must first select its containing node.

Why I cannot run WebSocket Streaming with Composer?#

WebSocket Streaming is no longer supported with Composer.

Unable to start the composer in deepstream development docker?#

  1. Allow access to X server using xhost +.

  2. Launch the docker using the following arguments:

    docker run -it --rm --net=host --gpus all -e DISPLAY=$DISPLAY -v /tmp/.X11-unix/:/tmp/.X11-unix --privileged -v /var/run/docker.sock:/var/run/docker.sock <DOCKER-REPOSITORY>:<TAG>

  3. Launch the composer using composer.

Unable to right-click in composer when run through ov-streaming?#

This is a known limitation of omniverse streaming. Users are advised to use the Menu bar and the Toolbar.

Composer throws the error Registry Model update failed in the console#

You need to run the gxf_server systemd service in order for Composer to sync extensions from Registry, for Container Builder to run and to execute graphs.

Extension Developement#

Why am I getting Error: libcudart.so.12: cannot open shared object file: No such file or directory?#

Most likely you don’t have CUDA 12 installed. Please follow the instructions here to install it.

GXF server#

How do I start, stop and restart the GXF Server?#

The GXF Server is managed by systemd, which controls the starting, stopping, and restarting of the service. You can use the following systemctl commands to interact with the gxf server.

Start the GXF Server: systemctl --user start gxf_server

Stop the GXF Server: systemctl --user stop gxf_server

Restart the GXF Server: systemctl --user restart gxf_server

Is the GXF Server automatically restarted if it fails?#

Yes, the GXF Server is configured to automatically restart if it fails or stops for any reason.

How can I view the logs for the GXF Server?#

To troubleshoot or monitor the GXF Server, you can view its logs using the journalctl command: journalctl --user-unit=gxf_server This command will display all the logs related to the gxf server, including startup messages, error reports, and other runtime information.

Additionally,

To view the most recent logs: journalctl --user-unit=gxf_server -n 50

To follow the logs in real-time: journalctl --user-unit=gxf_server -f

To search for specific terms or patterns within the logs: journalctl --user-unit=gxf_server | grep "keyword" ( Replace “keyword” with the term you’re looking for )