-
Notifications
You must be signed in to change notification settings - Fork 49
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
feat: introduce the advanced publisher and subscriber #368
Conversation
e0c490f
to
1f9357f
Compare
Update: The deadlock fix has been merged. Mark this PR as ready for review. |
Test Failure
No new failure is found. |
Update: bump up zenoh-cpp version to include the memory leak fix eclipse-zenoh/zenoh-cpp#363. |
Will rebase once #405 is merged. |
08b0906
to
b76ee4c
Compare
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.
Please see feedback inline.
I have the following additional questions
- It looks like this PR does not fix [Test Failure] rclcpp_action / test_client #326. But from my experience, it changes the behavior from deterministically failing to failing sometimes. ie, the test is now flaky. Do you observe the same?
- With
AdvancedSubscribers
do we no longer need to callGet()
when we detect anAdvancedPublisher
with publication cache? This was needed to fix Subscribers sometimes not getting messages from topics using durability transient_local #263.
b76ee4c
to
9cc776b
Compare
Here’s an improved version of your paragraph with clearer phrasing and a more professional tone:
|
Redid the test with the repos. No new failures were found.
|
9cc776b
to
9f72ee8
Compare
Now we set the advanced pub/sub to map the ROS2 QoS according to the following table.
Tested against Yadunund/ros2@87d1477. No regression was found. |
We discussed this today and we agreed to hold merging this PR until we test the changes here on more complex applications to gauge whether the constants adopted are appropriate. |
We discussed this again today and agreed to convert this to a draft PR until eclipse-zenoh/zenoh#1753 is merged and zenoh version here is updated. Along with this change, we will also be disabling recovery and sample missed options as it does not fit the typical ROS use case. |
c199a39
to
60042bf
Compare
The recovery option has been removed in 0e4b99d |
I created #457 to address the possible usage of As soon as #456 (that includes eclipse-zenoh/zenoh#1753) is merged, I think this PR is good to go. |
0e4b99d
to
df169c8
Compare
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.
Tested with latest zenoh bump and I can confirm that rclcpp_action/test_client passes 🎉
However, I'm concerned with one change which i've flagged below.
ab8a7aa
to
6068096
Compare
Signed-off-by: Yadunund <[email protected]>
15d522a
to
b1b2dd8
Compare
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 iterating on this PR to find the right fix! We can finally close out #326
@Mergifyio backport jazzy humble |
✅ Backports have been created
|
* feat: introduce the advanced publisher/subscriber * chore: ament_uncrustify and ament_cpplint * trigger CI * refactor: remove the unneeded querying callbacks * fix: reorder the advanced pub/sub options to match the ROS2 QoS * chore: add tmp * chore: apply the QoS mapping * style: ament_cpplint + ament_uncrustify * trigger CI * refactor: remove the recovery option as it exceeds typical ROS use cases * chore: remove the QoS for end-to-end reliability * style: ament_uncrustify * Cleanup Signed-off-by: Yadunund <[email protected]> --------- Signed-off-by: Yadunund <[email protected]> Co-authored-by: Yadunund <[email protected]> (cherry picked from commit 77561d8) # Conflicts: # rmw_zenoh_cpp/src/detail/rmw_publisher_data.cpp
* feat: introduce the advanced publisher/subscriber * chore: ament_uncrustify and ament_cpplint * trigger CI * refactor: remove the unneeded querying callbacks * fix: reorder the advanced pub/sub options to match the ROS2 QoS * chore: add tmp * chore: apply the QoS mapping * style: ament_cpplint + ament_uncrustify * trigger CI * refactor: remove the recovery option as it exceeds typical ROS use cases * chore: remove the QoS for end-to-end reliability * style: ament_uncrustify * Cleanup Signed-off-by: Yadunund <[email protected]> --------- Signed-off-by: Yadunund <[email protected]> Co-authored-by: Yadunund <[email protected]> (cherry picked from commit 77561d8) # Conflicts: # rmw_zenoh_cpp/src/detail/rmw_publisher_data.cpp
…#469) * feat: introduce the advanced publisher and subscriber (#368) * feat: introduce the advanced publisher/subscriber * chore: ament_uncrustify and ament_cpplint * trigger CI * refactor: remove the unneeded querying callbacks * fix: reorder the advanced pub/sub options to match the ROS2 QoS * chore: add tmp * chore: apply the QoS mapping * style: ament_cpplint + ament_uncrustify * trigger CI * refactor: remove the recovery option as it exceeds typical ROS use cases * chore: remove the QoS for end-to-end reliability * style: ament_uncrustify * Cleanup Signed-off-by: Yadunund <[email protected]> --------- Signed-off-by: Yadunund <[email protected]> Co-authored-by: Yadunund <[email protected]> (cherry picked from commit 77561d8) # Conflicts: # rmw_zenoh_cpp/src/detail/rmw_publisher_data.cpp * Fixed merge Signed-off-by: Alejandro Hernandez Cordero <[email protected]> --------- Signed-off-by: Alejandro Hernandez Cordero <[email protected]> Co-authored-by: Yuyuan Yuan <[email protected]> Co-authored-by: Alejandro Hernandez Cordero <[email protected]>
With this PR, we replace the
QueryingSubscriber
andPublicationCache
(+ a normal publisher)with the
AdvancedSubscriber
andAdvancedPublisher
.NOTE: A deadlock is found when undeclaring advanced subscribers. It will be fixed once eclipse-zenoh/zenoh#1685 is merged and synced with zenoh-c.