Did ros-galactic-example-interfaces break?
It seems like a new version of ros-galactic-example-interfaces was released today, version 0.9.2-2focal.20220430.122855, or possibly/likely one of its dependencies. And suddenly, my example code in a container (which fetches example-interfaces via rosdep install), no longer works. It produces the following error when I attempt to run it:
$ docker run -it --rm my/ros:app
Traceback (most recent call last):
File “/opt/ros/galactic/lib/python3.8/site-packages/rosidl_generator_py/import_type_support_impl.py”, line 46, in import_type_support
return importlib.import_module(module_name, package=pkg_name)
File “/usr/lib/python3.8/importlib/init.py”, line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File “”, line 1014, in _gcd_import
File “”, line 991, in _find_and_load
File “”, line 975, in _find_and_load_unlocked
File “”, line 657, in _load_unlocked
File “”, line 556, in module_from_spec
File “”, line 1166, in create_module
File “”, line 219, in _call_with_frames_removed
ImportError: /opt/ros/galactic/lib/libexample_interfaces__rosidl_generator_c.so: undefined symbol: rosidl_runtime_c__double__Sequence__are_equal
I'm not sure whom I should inform. I see that a container built from the same Dockerfile a few days ago has version 0.9.2-2focal.20220210.222214 of ros-galactic-example-interfaces and that has been working fine for me all week.
--wpd
Same problem here :(
Looking at the CHANGELOG, it's unlikely this is something local to
example_interfaces
(there aren't really any changes to the code itself, just metadata). Github's diff seems to agree.Seeing as
rosidl
is involved, perhaps the problem is there?And according to rosidl_generator_c (the one that seems to be throwing the error) there has been some changes the 28th of April.
Yes, agreed. Likely candidate: ros2/rosidl#648.
I would suggest a rebuild of the workspace(s) that started failing.
In general there is no ABI-compatibility guarantee, so a rebuild of a workspace you have after an update is always recommended.
Just a note for the rebuild, go into your workspace and remove
build
install
andlog
and then build again.Rebuilding doesn't work for me... at least, rebuilding the docker container that pulls in the prebuilt Ubuntu .deb files doesn't work for me. This seems to be a problem with the distributed .deb files. Who should I inform about this?
I would not draw any conclusion yet and just report the symptoms you observe on the rosidl issue tracker.
If it turns out to be an issue elsewhere, the maintainers there will most likely direct you to a more suitable tracker/venue.
Do mention you've already posted on ROS Answers about this in your issue, so discussions remain linked/visible.
Seeing as you're using a Docker image: make sure there are no outstanding
apt
updates.I've seen this problem happen on systems where only some packages had been updated, but others were at older versions.
You can check whether there are outstanding updates with
apt update && apt list --upgradable
.