-
Notifications
You must be signed in to change notification settings - Fork 118
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
Service discovery not working reliable #792
Comments
we have more than 100 nodes running in the embedded system. we have not had this issue yet.
for subscription, QoS history is set with did you actually try to increase the depth and that mitigates the problem reproduction rate? |
Yes, I changes the depth to 100, that did not change anything. This reader seems only to be used for node discovery. The readers and writers are discovered by something within fastDDS. |
@MiguelCompany builtin discovery traffic is always done with UDP/TCP by default, is that correct? so this is really discovery issue without SHM transport, right? |
@MiguelCompany How can I narrow this down ? |
Bug report
Required Info:
Steps to reproduce issue
This issue is reproducible by starting our software stack. I did not manage to
get a reproducer that I can share.
Expected behavior
All services are returned as available
Actual behavior
Some services are discovered some not.
Additional information
I already tried to debug this down. My findings so far :
rclcpp;:Client::service_is_ready() returns false, as
rmw_fastrtps/rmw_fastrtps_shared_cpp/src/rmw_service_server_is_available.cpp
Lines 84 to 88 in 1128b57
is hit.
I added some debug, and found out, that entities are added to the rmw_dds_common::GraphCache, but not all.
As far as I can see, the graph is populated by
rmw_fastrtps/rmw_fastrtps_shared_cpp/include/rmw_fastrtps_shared_cpp/custom_participant_info.hpp
Line 183 in 1128b57
But I can't figure out how the discovery exactly works, and where the problem might originate from.
I found a potential bug here :
rmw_fastrtps/rmw_fastrtps_cpp/src/init_rmw_context_impl.cpp
Line 118 in 1128b57
The subscriber has currently a depth of 1. Is this depth per publisher ? If yes this should be fine. If not, we got a potential race.
Note, that we have a BIG stack > 80 Nodes.
Also note, that everything works as expected if cycloneDDS is used.
The text was updated successfully, but these errors were encountered: