You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I've got a Humble docker container that's raising xmlrpc.client.ResponseError errors when I try to echo topics. It doesn't make any difference if the topics are published inside or outside the container.
This started happening on July 3; prior to that topics appeared to echo correctly. I see there was a new release on or around July 2, so depending on the exact timing of when that release was made available and when I built the first image to exhibit this error it could be related? I definitely was able to echo topics properly with images made early in the morning (EDT) on July 2, but since pulling the latest ros:humble image things seem to have broken.
Exception details:
$ docker exec -it ${CONTAINER_HASH} bash
root@HOST:/# source ros_entrypoint.sh
root@HOST:/# ros2 topic echo /test
Traceback (most recent call last):
File "/opt/ros/humble/bin/ros2", line 33, in <module>
sys.exit(load_entry_point('ros2cli==0.18.10', 'console_scripts', 'ros2')())
File "/opt/ros/humble/lib/python3.10/site-packages/ros2cli/cli.py", line 91, in main
rc = extension.main(parser=parser, args=args)
File "/opt/ros/humble/lib/python3.10/site-packages/ros2topic/command/topic.py", line 41, in main
return extension.main(args=args)
File "/opt/ros/humble/lib/python3.10/site-packages/ros2topic/verb/echo.py", line 220, in main
qos_profile = self.choose_qos(node, args)
File "/opt/ros/humble/lib/python3.10/site-packages/ros2topic/verb/echo.py", line 146, in choose_qos
pubs_info = node.get_publishers_info_by_topic(args.topic_name)
File "/usr/lib/python3.10/xmlrpc/client.py", line 1122, in __call__
return self.__send(self.__name, args)
File "/usr/lib/python3.10/xmlrpc/client.py", line 1464, in __request
response = self.__transport.request(
File "/usr/lib/python3.10/xmlrpc/client.py", line 1166, in request
return self.single_request(host, handler, request_body, verbose)
File "/usr/lib/python3.10/xmlrpc/client.py", line 1182, in single_request
return self.parse_response(resp)
File "/usr/lib/python3.10/xmlrpc/client.py", line 1348, in parse_response
p.feed(data)
File "/usr/lib/python3.10/xmlrpc/client.py", line 451, in feed
self._parser.Parse(data, False)
File "../Modules/pyexpat.c", line 416, in StartElement
File "/usr/lib/python3.10/xmlrpc/client.py", line 689, in start
raise ResponseError("unknown tag %r" % tag)
xmlrpc.client.ResponseError: ResponseError("unknown tag 'rclpy.type_hash.TypeHash'")
The /test topic above was generated with ros2 topic pub inside the container:
$ docker exec -it ${CONTAINER_HASH} bash
root@HOST:/# source /ros_entrypoint.sh
root@HOST:/# ros2 topic pub /test std_msgs/String 'data: "This is a test"' -r 1
publisher: beginning loop
publishing #1: std_msgs.msg.String(data='This is a test')
...
Docker build files, and relevant files included in volumes are below:
Dockerfile:
FROM ros:humble
# Add ROS 2 testing server (create3 republisher is not on main yet)
RUN echo "deb [ signed-by=/usr/share/keyrings/ros2-latest-archive-keyring.gpg ] http://packages.ros.org/ros2-testing/ubuntu jammy main" > /etc/apt/sources.list.d/ros2-testing.list
# install ros packages
RUN apt-get update && apt-get install -y \
ros-${ROS_DISTRO}-irobot-create-msgs \
ros-${ROS_DISTRO}-create3-republisher \
git \
nano && \
rm -rf /var/lib/apt/lists/*
I've tried another image that does not include the testing server, and it too is exhibiting the same bug when I try to echo topics inside the container. So it's not the presence of the testing server that's causing this.
The DDS profile is to restrict traffic from the Turtlebot4 from going anywhere other than to the Raspberry Pi the container is running on; the goal is for the Pi to be republishing all of the Create3 topics/services/actions using this container.
The text was updated successfully, but these errors were encountered:
Aha! I solved my own problem. For anyone in the future who finds this, the Python crash appears to be related to SHM. Modifying my docker container's DDS profile to
appears to have fixed the issue; I'm now able to echo topics without crashing.
EDIT
After rebuilding the containers, it turns out the above did not actually fix the issue; I'm still seeing the exact same Python error when trying to echo a topic inside the container, even with the DDS profile above.
I've got a Humble docker container that's raising
xmlrpc.client.ResponseError
errors when I try to echo topics. It doesn't make any difference if the topics are published inside or outside the container.This started happening on July 3; prior to that topics appeared to echo correctly. I see there was a new release on or around July 2, so depending on the exact timing of when that release was made available and when I built the first image to exhibit this error it could be related? I definitely was able to echo topics properly with images made early in the morning (EDT) on July 2, but since pulling the latest
ros:humble
image things seem to have broken.Exception details:
The
/test
topic above was generated withros2 topic pub
inside the container:Docker build files, and relevant files included in volumes are below:
Dockerfile:
I've tried another image that does not include the testing server, and it too is exhibiting the same bug when I try to echo topics inside the container. So it's not the presence of the testing server that's causing this.
build.sh
Pretty standard build for a container.
docker-compose.yml
I'm using
docker compose --profile republisher up
to start my container.config/create3.env:
config/fastrtps-repub.xml
The DDS profile is to restrict traffic from the Turtlebot4 from going anywhere other than to the Raspberry Pi the container is running on; the goal is for the Pi to be republishing all of the Create3 topics/services/actions using this container.
The text was updated successfully, but these errors were encountered: