-
Notifications
You must be signed in to change notification settings - Fork 189
Description
Bug report
Required Info:
- Operating System:
- Windows 10
- Installation type:
- From source
- Version or commit hash:
- DDS implementation:
- RTI Connext
Steps to reproduce issue
Run timer tests using rmw_connext_cpp.
Expected behavior
Tests pass.
Actual behavior
Often, tests fail when rcl_wait() returns early when a timer awakes.
Additional information
For one, even though a clock is specified for timers, how rmw_wait() abides to the given timeout is not specified. This issue persists for both steady time and system time timers.
This issue does not occur when using rmw_fastrtps*_cpp or rmw_cyclonedds_cpp, as these return at the right time or (most often) past it.
Suspecting a bug in rmw_connext_cpp, I could confirm that the expected timeout is passed to RTI Connext's WaitSet::wait() API which nonetheless returns early for both steady time and system time clocks. However, I believe this is less of a bug in RTI Connext than a misuse of rmw_wait() for rcl timers' implementation, considering time resolution. The closest achievable timeout on a given OS is not necessarily greater than or equal than any one specified.