Skip to content
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

rcl_send_response returns RCL_RET_TIMEOUT. #1048

Merged
merged 1 commit into from Aug 18, 2023

Conversation

fujitatomoya
Copy link
Collaborator

part of ros2/ros2#1253

@fujitatomoya
Copy link
Collaborator Author

for both rclcpp and rclpy need to check the return code, and throws exception accordingly. we would need to add exception for timeout for client interface. Behavior in client libraries need to be discussed before implementation.

@fujitatomoya
Copy link
Collaborator Author

see ros2/rmw#350 (comment)

@fujitatomoya
Copy link
Collaborator Author

CI:

  • Linux Build Status
  • Linux-aarch64 Build Status
  • Windows Build Status

Copy link
Member

@audrow audrow left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me!

kghost pushed a commit to kghost-ros2/rcl that referenced this pull request Jun 16, 2023
part of ros2/ros2#1253

We hit this problem where a broken client crashes the service executor.
With this change we can fix it in rclcpp.

Note: this is same as ros2#1048 which is
not taken attention for a while.
kghost pushed a commit to kghost-ros2/rcl that referenced this pull request Jun 16, 2023
part of ros2/ros2#1253

We hit this problem where a broken client crashes the service executor.
With this change we can fix it in rclcpp.

Note: this is same as ros2#1048 which is
not taken attention for a while.

Signed-off-by: Zang MingJie <zealot0630@gmail.com>
kghost pushed a commit to kghost-ros2/rcl that referenced this pull request Jun 16, 2023
part of ros2/ros2#1253

We hit this problem where a broken client crashes the service executor.
With this change we can fix it in rclcpp.

Note: this is same as ros2#1048 which is
not taken attention for a while.

Signed-off-by: Zang MingJie <zealot0630@gmail.com>
kghost pushed a commit to kghost-ros2/rcl that referenced this pull request Jun 16, 2023
part of ros2/ros2#1253

We hit this problem where a broken client crashes the service executor.
With this change we can fix it in rclcpp.

Note: this is same as ros2#1048 which is
not taken attention for a while.

Signed-off-by: Zang MingJie <zealot0630@gmail.com>
kghost added a commit to kghost-ros2/rcl that referenced this pull request Jun 16, 2023
part of ros2/ros2#1253

We hit this problem where a broken client crashes the service executor.
With this change we can fix it in rclcpp.

Note: this is same as ros2#1048 which is not been taken attention for a
while.

Signed-off-by: Zang MingJie <zealot0630@gmail.com>
@fujitatomoya
Copy link
Collaborator Author

@asorbini can i ask your help here?

so what we are trying to do here, if sending response times out, we will print the warning instead of generating exception for the client libraries, so that executor can proceed the next task.

as far as i see, rmw_connextdds does not return RMW_RET_TIMEOUT via rmw_send_response, it always returns RMW_RET_ERROR if anything wrong happens? (rmw_fastrtps and rmw_cyclonedds returns RMW_RET_TIMEOUT)

https://github.com/ros2/rmw_connextdds/blob/rolling/rmw_connextdds_common/src/ndds/dds_api_ndds.cpp#L709-L716

which i think that is fine because that is implementation detail, but just in case i wanted to share this with you since the same problem will exist with rmw_connextdds to generate the exception here.

just checking the behavior of rmw_connextdds to see if my understanding is correct.

thanks in advance,
Tomoya

@fujitatomoya
Copy link
Collaborator Author

CI:

  • Linux Build Status
  • Linux-aarch64 Build Status
  • Windows Build Status

Copy link
Contributor

@clalancette clalancette left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The code here looks good to me, but likely needs a rebase to pass CI.

@fujitatomoya fujitatomoya force-pushed the fujitatomoya/bugfix-ros2-issues-1253 branch from 9d9c3e9 to 7c18664 Compare July 11, 2023 01:44
@fujitatomoya
Copy link
Collaborator Author

@clalancette thanks for the review, i just did rebase on rolling.

@fujitatomoya
Copy link
Collaborator Author

CI:

  • Linux Build Status
  • Linux-aarch64 Build Status
  • Windows Build Status

@fujitatomoya
Copy link
Collaborator Author

CI:

  • Linux Build Status

windows failure is unrelated.

Signed-off-by: Tomoya Fujita <Tomoya.Fujita@sony.com>
@fujitatomoya fujitatomoya force-pushed the fujitatomoya/bugfix-ros2-issues-1253 branch from 7c18664 to 4374dea Compare August 17, 2023 05:01
@fujitatomoya
Copy link
Collaborator Author

CI:

  • Linux Build Status
  • Linux-aarch64 Build Status
  • Windows Build Status

@fujitatomoya fujitatomoya merged commit c7b394a into rolling Aug 18, 2023
3 checks passed
@delete-merged-branch delete-merged-branch bot deleted the fujitatomoya/bugfix-ros2-issues-1253 branch August 18, 2023 16:14
@fujitatomoya
Copy link
Collaborator Author

fujitatomoya commented Aug 18, 2023

Originally this issue was reported with Galactic which is already E.O.L. Now we can see many related issues, i think it would be better to backport these fixes to Humble/Iron as well. and there is no ABI break.

@fujitatomoya
Copy link
Collaborator Author

@Mergifyio backport iron humble

@mergify
Copy link

mergify bot commented Aug 18, 2023

backport iron humble

✅ Backports have been created

mergify bot pushed a commit that referenced this pull request Aug 18, 2023
Signed-off-by: Tomoya Fujita <Tomoya.Fujita@sony.com>
(cherry picked from commit c7b394a)
mergify bot pushed a commit that referenced this pull request Aug 18, 2023
Signed-off-by: Tomoya Fujita <Tomoya.Fujita@sony.com>
(cherry picked from commit c7b394a)

# Conflicts:
#	rcl/src/rcl/service.c
@fujitatomoya
Copy link
Collaborator Author

lets give some soak time like a week for rolling before merging this backport PRs, then i can start the CI for PRs for Humble and Iron backport.

fujitatomoya added a commit that referenced this pull request Sep 1, 2023
Signed-off-by: Tomoya Fujita <Tomoya.Fujita@sony.com>
(cherry picked from commit c7b394a)

Co-authored-by: Tomoya Fujita <Tomoya.Fujita@sony.com>
fujitatomoya added a commit that referenced this pull request Sep 1, 2023
* rcl_send_response returns RCL_RET_TIMEOUT. (#1048)

Signed-off-by: Tomoya Fujita <Tomoya.Fujita@sony.com>
(cherry picked from commit c7b394a)

# Conflicts:
#	rcl/src/rcl/service.c

* fix conflict with service introspection.

Signed-off-by: Tomoya Fujita <Tomoya.Fujita@sony.com>

---------

Signed-off-by: Tomoya Fujita <Tomoya.Fujita@sony.com>
Co-authored-by: Tomoya Fujita <Tomoya.Fujita@sony.com>
mauropasse pushed a commit to mauropasse/rcl that referenced this pull request Oct 18, 2023
…#1091)

* rcl_send_response returns RCL_RET_TIMEOUT. (ros2#1048)

Signed-off-by: Tomoya Fujita <Tomoya.Fujita@sony.com>
(cherry picked from commit c7b394a)

# Conflicts:
#	rcl/src/rcl/service.c

* fix conflict with service introspection.

Signed-off-by: Tomoya Fujita <Tomoya.Fujita@sony.com>

---------

Signed-off-by: Tomoya Fujita <Tomoya.Fujita@sony.com>
Co-authored-by: Tomoya Fujita <Tomoya.Fujita@sony.com>
alsora added a commit to irobot-ros/rcl that referenced this pull request Oct 18, 2023
rcl_send_response returns RCL_RET_TIMEOUT. (backport ros2#1048) (ros2#1091)
mauropasse pushed a commit to mauropasse/rcl that referenced this pull request Oct 18, 2023
…#1091)

* rcl_send_response returns RCL_RET_TIMEOUT. (ros2#1048)

Signed-off-by: Tomoya Fujita <Tomoya.Fujita@sony.com>
(cherry picked from commit c7b394a)

# Conflicts:
#	rcl/src/rcl/service.c

* fix conflict with service introspection.

Signed-off-by: Tomoya Fujita <Tomoya.Fujita@sony.com>

---------

Signed-off-by: Tomoya Fujita <Tomoya.Fujita@sony.com>
Co-authored-by: Tomoya Fujita <Tomoya.Fujita@sony.com>
alsora added a commit to irobot-ros/rcl that referenced this pull request Oct 18, 2023
rcl_send_response returns RCL_RET_TIMEOUT. (backport ros2#1048) (ros2#1091)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants