-
Notifications
You must be signed in to change notification settings - Fork 192
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
Bug report
Required Info:
- Operating System:
- Ubuntu bionic
- Installation type:
- source
- Version or commit hash:
- DDS implementation:
- Fast-RTPS
- Client library (if applicable):
- rclcpp
Steps to reproduce issue
- Start
topin a terminal - Start an action server using
rmw_fastrtps_cppRMW_IMPLEMENTATION=rmw_fastrtps_cpp ./build/test_communication/test_action_server_cpp Fibonacci /foo/bar - Start an action client using
rmw_fastrtps_cppRMW_IMPLEMENTATION=rmw_fastrtps_cpp ./build/test_communication/test_action_client_cpp Fibonacci /foo/bar
Expected behavior
I would expect negligible CPU usage after the goal has finished processing
Actual behavior
Server using 100% CPU after the goal has finished processing
Additional information
It does not happen using RMW connext.
If I debug the server, it seems that there is a loop inside rclcpp::spin() where rcl_wait() wakes indicating a timeout, the executor checks and nothing is ready so it goes back into rcl_wait() which wakes immediately with a timeout. The timeout given to rcl_wait() is -1 which becomes INT_MAX when passed to rmw_wait(). The 100% CPU usage ends when the action server expires the old goal (after 15 minutes by default).
Maybe there's an issue with how rcl_action_server is using the timer api (#343)?
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working