-
Notifications
You must be signed in to change notification settings - Fork 34
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improved conversion of time values between ROS and DDS formats #43
Conversation
Signed-off-by: Andrea Sorbini <asorbini@rti.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM pending green Galactic CI. CC'ing @cottsay for awareness.
On a related note, @emersonknapp the fact that we missed this suggests that when |
Yes, you're right - I didn't know about these tests. I'll take an action item to add a test there before the distro freeze. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM - thanks for taking this on
@hidmic Thank you for starting CI jobs, I was just about to do the same. FYI I think Linux-aarch64 can be omitted, since it doesn't test |
Good point. Aborted. |
There were some suspicious failures, I'll take a look
|
Signed-off-by: Andrea Sorbini <asorbini@rti.com>
Signed-off-by: Andrea Sorbini <asorbini@rti.com>
@asorbini Can you retarget this fix to the master branch? Assuming we are happy with it there, then we can backport to galactic. Thanks. |
@clalancette switched the target to |
2 failures on Linux:
|
I have verified locally that the failure in As a test, I was able to reproduce the failure with branch
At this point I tried to "speed up" the reliability protocol (using an XML similar to the one I posted in this comment), but I haven't been able to get rid of the warnings, nor to get the test to pass reliably. Regardless, I think this PR could be merged as is, and the test failure should be investigated separately. @clalancette what do you think? |
This output means that there are no publications on the That being said, we aren't seeing that on the nightlies. So there may be something going on with the interaction of At the end of the day, as long as this doesn't cause tests to go yellow with the default DDS vendor on the nightlies, and it has been approved, then I'm fine with this going in. |
The error only happens when the test is run with |
* Improved conversion of time values between ROS and DDS formats * Account for no lifespan when converting reader qos * Adjust guard for LifespanQosPolicy Signed-off-by: Andrea Sorbini <asorbini@rti.com>
This PR applies changes similar to ros2/rmw_connext#491 to properly handle value
RMW_DURATION_INFINITE
andRMW_DURATION_UNSPECIFIED
when converting time values between ROS and DDS formats.The conversion to ROS format uses helper function
rmw_dds_common::clamp_rmw_time_to_dds_time()
to make sure that the ROS time can be represented by DDS (note that the current implementation does not actually guarantee it, but it will after ros2/rmw_dds_common#48 is merged).I also took the chance to delete some commented out code, and made a small change to make sure users are informed with a warning that they are trying to configure lifespan qos on an RMW that doesn't support it (i.e.
rmw_connextddsmicro
).The need to open this PR for the
galactic
branch comes from ros2/rosbag2#756 and the fact thatros2 bag play
is currently broken withrmw_connextdds
in Galactic/Rolling.I will open another PR afterwards to merge this feature to
master
.