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.