-
Notifications
You must be signed in to change notification settings - Fork 32
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
[Bug] zenoh_bridge_ros2dds doesn't announce a subscriber #337
Comments
Hi @yuma-m Since the issue might not be reproduced easily, it would be great if you could provide the log in zenoh-bridge-ros2dds while the issue happens (Please add
I suppose you also have
Do you build the ROS 2 Humble by yourself? I guess ROS 2 Humble doesn't support Ubuntu 20.04. |
Hi @evshary, Thank you for your quick response. Let me clarify our configuration.
Actually, I have
Sorry, this is a bit wrong. I'm running ROS nodes and
It is difficult to share the whole logs as there can be confidential information, so let me extract general logs lines and lines include Logs of
|
Looking at your logs of
So it seems the issue lies in the DDS discovery between the bridge on host A and your If the bridge is well receiving the SEDP message (DDS discovery message) for the
If the Node is well announcing its Subscriber, you should see such log:
|
@JEnoch Thank you so much for helping me investigate this issue. I've collected the logs from CycloneDDS of both hosts when the issue happened. From logs of host A, I found the SEDP message for
However, I couldn't find logs of announcing Subscriber around the time when the When I ran
What do you think from these results? Is this issue originated from CycloneDDS's discovery failure? |
Can you clarify which processes are showing those respective logs (bridge or which Node) ? If the bridge is logging the reception of SEDP Reader message for However I just merged a bug fix (#346) that might be an explanation to the issue you experience. Could please you try with the latest commit from If you still experience the issue, I think a would need the complete logs from both bridges running with such environment variables:
You can grep the resulting logs with |
Describe the bug
We use
zenoh_bridge_ros2dds
standalone executable to bridge ROS messages between two hosts (host A and host B) with the commands below. Host A and B are connected with a wired network.zenoh_bridge_ros2dds -l tcp/0.0.0.0:7447 -c <Path to the config below>
zenoh_bridge_ros2dds -e tcp/<Host A's IP>:7447
Our config file is like below.
The
diagnostic_aggregator
node on host A subscribes to the/diagnostics
topic, and multiple nodes on both host A and B publishes messages to the/diagnostics
topic.With this setup, I found an issue that Zenoh sometimes doesn't transfer the
/diagnostics
topic from host B to host A even if there's a subscriber on host A. When the issue happens,zenoh_bridge_ros2dds
on host B doesn't subscribe to the/diagnostics
topic, and the remote bridge (on the host A) doesn't announce a subscriber for the/diagnostics
topic. If I manually runros2 topic echo /diagnostics
on host A,zenoh_bridge_ros2dds
starts to transfer the messages from host B to A, but if I stop theros2 topic echo
command, it stops transferring.This issue randomly happens when the ROS nodes on host A are launched. I also found the same issue happened on topics other than the
/diagnostics
(topic_c
andtopic_d
in the configuration above) randomly, so I suspect Zenoh can sometimes fail to find a subscriber to specific topics depending on the launching timing.Could you kindly guide me how to investigate this issue further or mitigate it?
To reproduce
I didn't find a simple way to reproduce the issue, but the issue sometimes happens in my environment with the configurations above. I can provide more information about the setup, logs, and so on, if you need.
System info
The text was updated successfully, but these errors were encountered: