Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error when running single_stream sample application in Docker container created using DockerFile.deepstream.ros2.eloquent #8

Open
ctslick opened this issue Sep 26, 2022 · 0 comments

Comments

@ctslick
Copy link

ctslick commented Sep 26, 2022

I've built a Docker container using this Dockerfile from the repo:
https://github.com/NVIDIA-AI-IOT/ros2_jetson/blob/main/docker/DockerFile.deepstream.ros2.eloquent

I then follow steps here (to run an example) inside the container:
https://github.com/NVIDIA-AI-IOT/ros2_deepstream

  1. cd /workspace/ros2_ws/src/ros2_deepstream/
  2. colcon build
  3. source /opt/ros/eloquent/setup.bash
  4. . install/setup.bash
  5. ros2 run single_stream_pkg single_stream --ros-args -p input_source:="/dev/video0"

Steps 1-4 run fine, but running step #5 I receive this error:

** (process:139): WARNING **: 18:44:29.567: Failed to load shared library 'libgstreamer-1.0.so.0' referenced by the typelib: /lib/aarch64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /usr/lib/aarch64-linux-gnu/libgstreamer-1.0.so.0)
Traceback (most recent call last):
File "/workspace/ros2_ws/src/ros2_deepstream/install/single_stream_pkg/lib/single_stream_pkg/single_stream", line 11, in
load_entry_point('single-stream-pkg==0.0.0', 'console_scripts', 'single_stream')()
File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 480, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 2693, in load_entry_point
return ep.load()
File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 2324, in load
return self.resolve()
File "/usr/lib/python3/dist-packages/pkg_resources/init.py", line 2330, in resolve
module = import(self.module_name, fromlist=['name'], level=0)
File "/workspace/ros2_ws/src/ros2_deepstream/install/single_stream_pkg/lib/python3.6/site-packages/single_stream_pkg/single_stream.py", line 24, in
from single_stream_pkg.single_stream_class import InferencePublisher
File "/workspace/ros2_ws/src/ros2_deepstream/install/single_stream_pkg/lib/python3.6/site-packages/single_stream_pkg/single_stream_class.py", line 39, in
from gi.repository import GObject, Gst
File "", line 971, in _find_and_load
File "", line 955, in _find_and_load_unlocked
File "", line 656, in _load_unlocked
File "", line 626, in _load_backward_compatible
File "/usr/lib/python3/dist-packages/gi/importer.py", line 146, in load_module
dynamic_module = load_overrides(introspection_module)
File "/usr/lib/python3/dist-packages/gi/overrides/init.py", line 125, in load_overrides
override_mod = importlib.import_module(override_package_name)
File "/usr/lib/python3.6/importlib/init.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "/usr/lib/python3/dist-packages/gi/overrides/Gst.py", line 58, in
class Bin(Gst.Bin):
File "/usr/lib/python3/dist-packages/gi/module.py", line 181, in getattr
interfaces = tuple(interface for interface in get_interfaces_for_object(info)
File "/usr/lib/python3/dist-packages/gi/module.py", line 105, in get_interfaces_for_object
interfaces.append(getattr(module, name))
File "/usr/lib/python3/dist-packages/gi/overrides/init.py", line 39, in getattr
return getattr(self.introspection_module, name)
File "/usr/lib/python3/dist-packages/gi/module.py", line 220, in getattr
wrapper = metaclass(name, bases, dict
)
File "/usr/lib/python3/dist-packages/gi/types.py", line 234, in init
register_interface_info(cls.info.get_g_type())
TypeError: must be an interface

This shared object file () is located here (inside the container);
root@ubuntu:/# find . -name libgstreamer-1.0.so.0
./usr/lib/aarch64-linux-gnu/libgstreamer-1.0.so.0
./usr/lib/aarch64-linux-gnu/tegra/libgstreamer-1.0.so.0

So I tried:

  • export LD_LIBRARY_PATH=/usr/lib/aarch64-linux-gnu/libgstreamer-1.0.so.0:$LD_LIBRARY_PATH
  • (receive same error as above)
  • export LD_LIBRARY_PATH=/usr/lib/aarch64-linux-gnu/tegra/libgstreamer-1.0.so.0:$LD_LIBRARY_PATH
  • (receive same error as above)

I'm not sure where to go from here. It seems the container is not built correctly to run code from the ros2_deepstream repo, even though that is the intended purpose of these containers?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant