Please provide complete information as applicable to your setup.
• Hardware Platform (Jetson / GPU): RTX2080
• DeepStream Version 6.2 (6.2-devel image)
• NVIDIA GPU Driver Version: 525.105.17
I’m having kind of the same issue as this recently closed issue: GST_ELEMENT_FACTORY gstelementfactory.c:458:gst_element_factory_make: no such element factory "nvmsgconv"!
I can run a deepstream app that’s sending some messages using Kafka to the localhost. However, I would like to customize the messages which means I need to compile the nvmsgconv plugin in /opt/nvidia/deepstream/deepstream/sources/libs/nvmsgconv. However, even when I don’t change anything and compile it with make, and consequently run make install (basically copying it to /opt/nvidia/deepstream/deepstream-6.2/lib), it doesn’t work.
Running with GST_DEBUG=3 gives the following result:
I’ll add it as text as well so it’s searchable or can be copied:
0:00:00.086869355 9674 0x1b75530 WARN GST_PLUGIN_LOADING gstplugin.c:792:_priv_gst_plugin_load_file_for_registry: module_open failed: ///opt/nvidia/deepstream/deepstream-6.2/lib/libnvds_msgconv.so: undefined symbol: descriptor_table_google_2fprotobuf_2ftimestamp_2eproto
(python3:9674): GStreamer-WARNING **: 13:59:34.160: Failed to load plugin ‘/usr/lib/x86_64-linux-gnu/gstreamer-1.0/deepstream/libnvdsgst_msgconv.so’: ///opt/nvidia/deepstream/deepstream-6.2/lib/libnvds_msgconv.so: undefined symbol: descriptor_table_google_2fprotobuf_2ftimestamp_2eproto
0:00:00.086913736 9674 0x1b75530 WARN GST_PLUGIN_LOADING gstplugin.c:1330:gst_plugin_load_by_name: load_plugin error: Opening module failed: ///opt/nvidia/deepstream/deepstream-6.2/lib/libnvds_msgconv.so: undefined symbol: descriptor_table_google_2fprotobuf_2ftimestamp_2eproto
0:00:00.086919097 9674 0x1b75530 WARN GST_PLUGIN_LOADING gstpluginfeature.c:132:gst_plugin_feature_load: Failed to load plugin containing feature ‘nvmsgconv’.
0:00:00.086924874 9674 0x1b75530 WARN GST_ELEMENT_FACTORY gstelementfactory.c:398:gst_element_factory_create: loading plugin containing feature nvmsg-converter returned NULL!
Unable to create msgconv
Did you run the command below to install the protobuf?
sudo apt-get install libglib2.0-dev libjson-glib-dev uuid-dev libyaml-cpp-dev protobuf-compiler
Did you install the deepstream on your host or just use a docker? If you install it on your host, you can refer to the link below first:
https://docs.nvidia.com/metropolis/deepstream/dev-guide/text/DS_Quickstart.html#dgpu-setup-for-ubuntu
Yes I did as instructed in the README in the plugin. By the way I’m using the de deepstream-6.2-devel image
Could you try to run sudo apt-get install libprotobuf-dev
? It seems like relating to the dependencies of protobuf in your environment.
Still same error, I am using the docker container so I am running everything as root.
Maybe it’s also good to note that initially (both with and without the -dev) it didn’t compile at all. It said:
./deepstream_schema/schema.pb.h:10:10: fatal error: google/protobuf/port_def.inc: No such file or directory
10 | #include <google/protobuf/port_def.inc>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
In file included from deepstream_schema/eventmsg_payload.cpp:22:
deepstream_schema/schema.pb.h:10:10: fatal error: google/protobuf/port_def.inc: No such file or directory
10 | #include <google/protobuf/port_def.inc>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
In file included from deepstream_schema/dsmeta_payload.cpp:22:
deepstream_schema/schema.pb.h:10:10: fatal error: google/protobuf/port_def.inc: No such file or directory
10 | #include <google/protobuf/port_def.inc>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
In file included from deepstream_schema/schema.pb.cc:4:
deepstream_schema/schema.pb.h:10:10: fatal error: google/protobuf/port_def.inc: No such file or directory
10 | #include <google/protobuf/port_def.inc>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
Then I found that because I ran “apt-get install libprotobuf” (with or without -dev) as root it got installed in /root/.local/. So I’ve added : “CFLAGS+= -I/root/.local/include” to the Makefile. Then it was able to compile the code, however I still have the error when running the pipeline.
I use the image too: nvcr.io/nvidia/deepstream:6.2-devel . It worked well in my environment. Could you use ldd command to investigate what dependent libraries are missing in your environment? Like ldd -r libnvds_msgconv.so
.
I included a text file in which I’ve documented all steps I took to get here from a new container.
however, ldd -r libnvds_msgconv.so returns the following:
linux-vdso.so.1 (0x00007ffd24ebf000)
libjson-glib-1.0.so.0 => /lib/x86_64-linux-gnu/libjson-glib-1.0.so.0 (0x00007fc6b90a5000)
libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007fc6b8f7c000)
libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007fc6b8f73000)
libyaml-cpp.so.0.6 => /lib/x86_64-linux-gnu/libyaml-cpp.so.0.6 (0x00007fc6b8f18000)
libprotobuf.so.17 => /lib/x86_64-linux-gnu/libprotobuf.so.17 (0x00007fc6b8c1f000)
libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fc6b8a3d000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fc6b8a20000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fc6b89fd000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fc6b880b000)
libgio-2.0.so.0 => /lib/x86_64-linux-gnu/libgio-2.0.so.0 (0x00007fc6b862a000)
libgobject-2.0.so.0 => /lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007fc6b85ca000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007fc6b8557000)
/lib64/ld-linux-x86-64.so.2 (0x00007fc6b9225000)
libz.so.1 => /root/.local/lib/libz.so.1 (0x00007fc6b8534000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fc6b83e5000)
libgmodule-2.0.so.0 => /lib/x86_64-linux-gnu/libgmodule-2.0.so.0 (0x00007fc6b83df000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fc6b83d9000)
libmount.so.1 => /lib/x86_64-linux-gnu/libmount.so.1 (0x00007fc6b8379000)
libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007fc6b834e000)
libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007fc6b8330000)
libffi.so.7 => /lib/x86_64-linux-gnu/libffi.so.7 (0x00007fc6b8324000)
libblkid.so.1 => /lib/x86_64-linux-gnu/libblkid.so.1 (0x00007fc6b82cd000)
libpcre2-8.so.0 => /lib/x86_64-linux-gnu/libpcre2-8.so.0 (0x00007fc6b823c000)
undefined symbol: descriptor_table_google_2fprotobuf_2ftimestamp_2eproto (./libnvds_msgconv.so)
undefined symbol: _ZN6google8protobuf8internal17kGlobalEmptyTableE (./libnvds_msgconv.so)
undefined symbol: _ZN6google8protobuf8internal17kGlobalEmptyTableE (./libnvds_msgconv.so)
undefined symbol: _ZNK6google8protobuf13RepeatedFieldIfE4sizeEv (./libnvds_msgconv.so)
undefined symbol: _ZN6google8protobuf8internal24ComputeUnknownFieldsSizeERKNS1_16InternalMetadataEmPNS1_10CachedSizeE (./libnvds_msgconv.so)
undefined symbol: _ZN6google8protobuf8internal17AssignDescriptorsEPKNS1_15DescriptorTableEb (./libnvds_msgconv.so)
undefined symbol: _ZN6google8protobuf8internal10VerifyUTF8ENS0_11StringPieceEPKc (./libnvds_msgconv.so)
undefined symbol: _ZN6google8protobuf13RepeatedFieldIfE3AddERKf (./libnvds_msgconv.so)
undefined symbol: _ZN6google8protobuf8internal16ReadSizeFallbackEPKcj (./libnvds_msgconv.so)
undefined symbol: _ZN6google8protobuf13RepeatedFieldIfEC1EPNS0_5ArenaE (./libnvds_msgconv.so)
undefined symbol: _ZN6google8protobuf8internal15ThreadSafeArena10AddCleanupEPvPFvS3_E (./libnvds_msgconv.so)
undefined symbol: _ZN6google8protobuf8internal14ArenaStringPtr12ClearToEmptyEv (./libnvds_msgconv.so)
undefined symbol: _ZN6google8protobuf8internal17UnknownFieldParseEjPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcPNS1_12ParseContextE (./libnvds_msgconv.so)
undefined symbol: _ZN6google8protobuf5Arena23AllocateAlignedWithHookEmPKSt9type_info (./libnvds_msgconv.so)
undefined symbol: _ZN6google8protobuf8internal10WireFormat37InternalSerializeUnknownFieldsToArrayERKNS0_15UnknownFieldSetEPhPNS0_2io19EpsCopyOutputStreamE (./libnvds_msgconv.so)
undefined symbol: _ZN6google8protobuf13RepeatedFieldIfE5ClearEv (./libnvds_msgconv.so)
undefined symbol: _ZN6google8protobuf8internal17UnknownFieldParseEmPNS0_15UnknownFieldSetEPKcPNS1_12ParseContextE (./libnvds_msgconv.so)
undefined symbol: _ZNK6google8protobuf8internal15ThreadSafeArena14SpaceAllocatedEv (./libnvds_msgconv.so)
undefined symbol: _ZN6google8protobuf8internal14ArenaStringPtr7MutableB5cxx11ENS2_12EmptyDefaultEPNS0_5ArenaE (./libnvds_msgconv.so)
undefined symbol: _ZN6google8protobuf2io19EpsCopyOutputStream16WriteRawFallbackEPKviPh (./libnvds_msgconv.so)
undefined symbol: _ZN6google8protobuf8internal15ReadTagFallbackEPKcj (./libnvds_msgconv.so)
undefined symbol: _ZN6google8protobuf8internal14ArenaStringPtr3SetENS2_12EmptyDefaultEONSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPNS0_5ArenaE (./libnvds_msgconv.so)
undefined symbol: _ZN6google8protobuf2io19EpsCopyOutputStream18WriteStringOutlineEjRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPh (./libnvds_msgconv.so)
undefined symbol: _ZN6google8protobuf13RepeatedFieldIfEC1ERKS2_ (./libnvds_msgconv.so)
undefined symbol: _ZN6google8protobuf8internal18EpsCopyInputStream18ReadStringFallbackEPKciPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE (./libnvds_msgconv.so)
undefined symbol: _ZN6google8protobuf8internal14ArenaStringPtr3SetEPKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERS9_PNS0_5ArenaE (./libnvds_msgconv.so)
undefined symbol: _ZNK6google8protobuf13RepeatedFieldIfE4dataEv (./libnvds_msgconv.so)
undefined symbol: _ZN6google8protobuf2io19EpsCopyOutputStream30WriteStringMaybeAliasedOutlineEjRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPh (./libnvds_msgconv.so)
undefined symbol: _ZN6google8protobuf8internal20AddDescriptorsRunnerC1EPKNS1_15DescriptorTableE (./libnvds_msgconv.so)
undefined symbol: _ZN6google8protobuf8internal17PackedFloatParserEPvPKcPNS1_12ParseContextE (./libnvds_msgconv.so)
undefined symbol: _ZN6google8protobuf2io19EpsCopyOutputStream19EnsureSpaceFallbackEPh (./libnvds_msgconv.so)
undefined symbol: _ZN6google8protobuf8internal18EpsCopyInputStream12DoneFallbackEii (./libnvds_msgconv.so)
undefined symbol: _ZN6google8protobuf8internal14ArenaStringPtr3SetENS2_12EmptyDefaultERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPNS0_5ArenaE (./libnvds_msgconv.so)
undefined symbol: _ZN6google8protobuf5Arena26AllocateAlignedWithCleanupEmPKSt9type_info (./libnvds_msgconv.so)
undefined symbol: _ZN6google8protobuf8internal24InlineGreedyStringParserEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcPNS1_12ParseContextE (./libnvds_msgconv.so)
undefined symbol: _ZNK6google8protobuf9Timestamp18_InternalSerializeEPhPNS0_2io19EpsCopyOutputStreamE (./libnvds_msgconv.so)
undefined symbol: _ZN6google8protobuf9Timestamp14_InternalParseEPKcPNS0_8internal12ParseContextE (./libnvds_msgconv.so)
all_steps.txt (13.8 KB)
yuweiw
May 25, 2023, 10:47am
9
About the first step, how do you start a docker with json file? Did you try to use docker run command to use docker directly?
It is a way to start and mount a directory directly into a container from visual studio code.
I got it from How To Develop and Optimize Edge AI apps with NVIDIA DeepStream | NVIDIA On-Demand
starting from 19:26
I took a look at the vscode logs and under the hood it is running:
docker run --sig-proxy=false -a STDOUT -a STDERR --mount type=bind,source=/home/bkos/test_msgconv,target=/workspaces/test_msgconv --mount type=volume,src=vscode,dst=/vscode -l devcontainer.local_folder=/home/bkos/test_msgconv -l devcontainer.config_file=/home/bkos/test_msgconv/.devcontainer/devcontainer.json --gpus all --name=test_msgconv --net=host -it -v /tmp/.X11-unix:/tmp/.X11-unix --env-file .devcontainer/devcontainer.env --entrypoint /bin/sh -l devcontainer.metadata= nvcr.io/nvidia/deepstream:6.2-devel -c echo Container started
yuweiw
May 25, 2023, 11:16am
11
Is your host using Ubuntu system and what is the version?
We haven’t started docker like that before. Could you try to just use the command below to start docker and have a try?
docker run --rm -it --gpus device=0 --runtime=nvidia nvcr.io/nvidia/deepstream:6.2-devel
You’re right. The way I’m starting the docker container adds “/usr/bin:/vscode/vscode-server/bin/linux-x64/b3e4e68a0bc097f0ae7907b217c1119af9e03435/bin/remote-cli:/root/.local/bin” in front of the PATH variable. In the image there is also a protoc binary present in /root/.local/bin, this is why it uses the wrong installation. Simply using “export PATH=/usr/bin:$PATH” adding the /usr/bin directory in front solves it.
Thank you so much for your help! It is greatly appreciated, have a nice day!
system
Closed
June 8, 2023, 1:23pm
13
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.