ros2 / rmw_cyclonedds

ROS 2 RMW layer for Eclipse Cyclone DDS
Apache License 2.0
117 stars 90 forks source link

Incorrect initial callback event count with KEEP_ALL history policy #509

Open bmartin427 opened 3 months ago

bmartin427 commented 3 months ago

Bug report

When using the callback API (EventsExecutor) on a subscription with KEEP_ALL history policy, the event count passed to the initial callback is inappropriately limited to the QoS history depth value, which is zero for this QoS type. This causes the callback not to take any of the pending subscription data. The data taken by the subscription callback following this point is stale indefinitely; i.e. the original data is only taken upon a subsequent new event, and that data is only taken on yet another subsequent event.

Required Info:

Steps to reproduce issue

Expected behavior

Actual behavior

Additional information

An identical subscriber node works as expected when RMW_IMPLEMENTATION=rmw_fastrtps_cpp