Similarly, not once did we have issues with discovery or service calls on CycloneDDS on galactic. Everything rmw related just worked automagically. But as shared memory support in FastDDS is more mature and more out of the box, we have turned to FastDDS for performance gains. However, we have encountered not just one, but many issues with basic behavior in FastDDS in a very short amount of time after migrating, first on Galactic, and then on Humble. Examples:
- Multiple publishers to a transient local topic gives Problem reserving CacheChange in reader · Issue #2799 · eProsima/Fast-DDS · GitHub
- Shared mem partition fills up after many runs: how to garbage collect? · Issue #2790 · eProsima/Fast-DDS · GitHub
- guard_condition argument is null on fastrtps only · Issue #624 · ros2/rmw_fastrtps · GitHub
- ros2 node list doesn't work with containers · Issue #615 · ros2/rmw_fastrtps · GitHub
- lifecycle manager wait for service should have a finite, or at least configurable, timeout. · Issue #3033 · ros-planning/navigation2 · GitHub
EDIT: I have also not had much success with shared memory support in CycloneDDS via iceoryx. But it should be noted that some (but not all) of these FastDDS issues are not even shared memory specific (which is enabled by default, but can be disabled).