-
Notifications
You must be signed in to change notification settings - Fork 418
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
[eloquent] Ensure rcl_clock accesses are thread-safe (ABI-safe version). #1056
Conversation
This is an alternative PR to #999 The code in this one is less nice, but it is ABI-safe. Thus, it can be used as a short-term workaround for users hurt by the problem now, and/or used as the solution for Eloquent. Signed-off-by: Chris Lalancette <clalancette@openrobotics.org>
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
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, with one issue raised.
Signed-off-by: Chris Lalancette <clalancette@openrobotics.org>
Signed-off-by: Chris Lalancette <clalancette@openrobotics.org>
@ros-pull-request-builder retest this please |
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 and CI's happy. I think this one's ready to go.
@mjcarroll correctly pointed out that https://ci.ros2.org/job/ci_linux/10124/testReport/junit/(root)/test_rclcpp/gtest_spin__rmw_connext_cpp_gtest_missing_result/ looks suspiciously like a regression from this patch. I wasn't able to reproduce locally, but I think it needs more looking into. |
After doing a bit of debugging here, it turns out that there are some accesses to the |
Signed-off-by: Chris Lalancette <clalancette@openrobotics.org>
Thanks to some help from @hidmic, I think we've solved the crash. Here is another CI on Linux (all packages, all tests, Eloquent/Bionic), to be sure: |
There are 194 failures in the Linux build. If I filter out all of the flake8 and pep257 ones, that leaves me with the following list:
I believe that the WString interoperability with Connext is a known issue, so we can ignore those. That leaves us with:
But if memory serves correctly, the Cyclone version in Eloquent didn't support liveliness or deadline. So overall, I think we're pretty good to go here. I'm going to run one last CI on the other platforms, then go ahead and merge this. |
While we could potentially slip this into Eloquent, I think it is too risky given that Eloquent is going EOL in 4-6 weeks. I'm just going to close this out; the fix is in Foxy and later. |
This is an alternative PR to #999
The code in this one is less nice, but it is ABI-safe. Thus,
it can be used as a short-term workaround for users hurt by
the problem now, and/or used as the solution for Eloquent.
Signed-off-by: Chris Lalancette clalancette@openrobotics.org
I'm still testing this, so consider this a request for comment on the approach. Once I run a full CI on it, I'll be more confident in it.