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

100% action server CPU usage when cancelling a goal from the client #221

Closed
jubeira opened this issue Dec 14, 2018 · 1 comment
Closed
Assignees

Comments

@jubeira
Copy link

jubeira commented Dec 14, 2018

Bug report

Required Info:

  • Operating System:
  • Installation type:
    • Binaries
  • Version or commit hash:
    • Crystal pre-release (updated 14-12-2018; version 0.6.1)
  • DDS implementation:
    • Checked with FastRTPS and connext_cpp
  • Client library (if applicable):
    • rclcpp

Steps to reproduce issue

Start top in a terminal to monitor CPU usage.

Then, from another terminal, run minimal_action_server:

ros2 run examples_rclcpp_minimal_action_server action_server_not_composable

Finally, run minimal_action_client with cancel:

ros2 run examples_rclcpp_minimal_action_client action_client_not_composable_with_cancel

Expected behavior

Action is canceled, everything exits gracefully.

Actual behavior

Action is canceled, but in some cases a CPU thread keeps working at 100% until the server is shut down.

Additional information

This doesn't happen every time the action client is launched, but it's not too hard to reproduce either by launching it a few times. It seems to happen ~50% of the times.
This might be related to ros2/rcl#354.

@sloretz
Copy link
Contributor

sloretz commented Dec 14, 2018

I can reproduce this on arm64 using https://ci.ros2.org/view/packaging/job/packaging_linux-aarch64/650/ .

It doesn't appear to be related to cancellation. It also happens with the non-cancel example.

ros2 run examples_rclcpp_minimal_action_client action_client_not_composable

The 100% CPU usage starts as soon as the goal request is sent. It can be caused by calling the service directly

ros2 service call /fibonacci/_action/send_goal example_interfaces/Fibonacci_Goal "{order: 1, action_goal_id: {uuid: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3]}}"

@sloretz sloretz self-assigned this Dec 14, 2018
@sloretz sloretz added the in progress Actively being worked on (Kanban column) label Dec 14, 2018
@sloretz sloretz removed the in progress Actively being worked on (Kanban column) label Dec 18, 2018
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

No branches or pull requests

2 participants