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 am using the package domain bridge to try and bridge topics across domains. One of its features is "bidirectional mapping" in that nodes on say domains 0 and 1 can both publish and subscribe to the same topic. It relies on setting ignore_local_publications=true on the appropriate subscriber. In cyclone DDS, this results in the desired behavior, in the message is sent across the domains at the desired frequency. When using FastDDS, it results endless looping with publication rates > 1 kHz for a topic publishing at 1 Hz.
@smnogar According to the inline doc for ignore_local_publications, the definition of local is somewhat vague at the moment.
In the case of rmw_fastrtps local means published by a publisher in the same RMW context. I understand it is not enough for the use case of a domain bridge. In that case local should mean published by a publisher in the same process.
We could change the behavior to the second interpretation, but perhaps that would break other scenarios.
I think it might be a good idea to turn ignore_local_publications into an enumeration. This way the user could choose the desired behavior. I've added a point to the agenda of the next middleware WG to discuss this point.
In the mean time, you could check if changing this line to if (sample_writer_guid.is_on_same_process_as(info->data_reader_->guid()) { works as you expect.
@MiguelCompany Thanks for the response! I agree that it is a bit ambiguous what ignore_local_publications is supposed to do. I confirmed that your suggested change works the way I want.
Bug report
I am using the package domain bridge to try and bridge topics across domains. One of its features is "bidirectional mapping" in that nodes on say domains 0 and 1 can both publish and subscribe to the same topic. It relies on setting ignore_local_publications=true on the appropriate subscriber. In cyclone DDS, this results in the desired behavior, in the message is sent across the domains at the desired frequency. When using FastDDS, it results endless looping with publication rates > 1 kHz for a topic publishing at 1 Hz.
Required Info:
Steps to reproduce issue
In a new terminal
In a third terminal
Expected behavior
Publish rate of 1 Hz
Actual behavior
Publish rate > 1 kHz
Additional information
I'm not sure if the current FastDDS ignore_local_publications is the desired behavior. It would be nice if FastDDS could be used with domain bridge.
The text was updated successfully, but these errors were encountered: