-
Notifications
You must be signed in to change notification settings - Fork 430
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
"Executing action client but nothing is ready" exception thrown when client sends goal #1399
Comments
I would check the following,
and if reproducible test program is available, that would be really helpful. |
Hi, I've been having similar issues with an action server. The setup is pretty much the same as with node C (Multithreaded executor & Reentrant CB group). Is this issue caused by this configuration? As for reproducing the results, it would be a little hard, since it involves hardware. My server works most of the time, but the exception occurs randomly, so it's kinda hard to debug properly. The actions are being sent every several seconds. |
I changed Node C to use a MutuallyExclusive callback group and the crash I was seeing no longer occurred. I wasn't able to use the SingleThreadedExecutor but I can represent that in a standalone test case. |
I created a standalone package that reproduces this error: https://github.com/schornakj/rclcpp_action_exception_test Interestingly, I was able to get the node with the action client to crash without having a second client node (in terms of my previous example, I only have Node A and Node C). It looks like this may be caused specifically by assigning an action client to a Reentrant callback group. Also, since I use I'll include the code from my failing client node below: client_node_multithread_reentrant.h
client_node_multithread_reentrant.cpp
|
I think this is the same kind of issue that #1241 was trying to solve, I will try to take a closer look again but I'm not sure what's the right fix. |
as @ivanpauno mentioned, this is similar problem with #1212, but this case is about in
|
Just FYI, https://github.com/schornakj/rclcpp_action_exception_test is for eloquent, and cannot run with master ros2/ros2@d2f6b73 since rclcpp_action interface and launch description is different. https://github.com/fujitatomoya/rclcpp_action_exception_test can be built with master. |
It would be nice if you could check if #1409 fixes the problem. |
My project is currently built on dashing, it will take some time before I update it, unfortunately |
@fujitatomoya I'm not set up to test code using the ROS2 master branch right now, so it would also take me some time before I could try out your PR. Conceptually I think it looks good! |
I think #1241 should fix this, i will confirm that. |
I confirmed #1241 can fix this issue 👍 |
i think we can close this since #1241 has been merged. I did confirm #1241 can fix this issue. (see #1399 (comment)) |
Bug report
Required Info:
Steps to reproduce issue
I will work on creating a portable minimal environment that can reproduce this issue, since my application is somewhat complex.
I have three nodes;
MyAction
) advertised on/my_action
. This node uses a multi-threaded executor. The action server is assigned to a MutuallyExclusive callback group.MyAction
action on/my_action
. This node uses the default single-threaded executor.MyAction
client also pointed at/my_action
. This node uses a multi-threaded executor. The action client is assigned to a Reentrant callback group.Node B and Node C send action goals using
async_send_goal
. The nodes do not send goals concurrently.Expected behavior
Normal client/server action behavior where each client sends a goal and receives a result from the server.
Actual behavior
Node C throws an exception and crashes after either Node B or Node C call
async_send_goal
:Sometimes the error includes
terminate called recursively
.Additional information
There is some discussion of this exception in #594, though a conclusive answer wasn't reached (since I expect that more info about the implementation of the nodes is needed).
The text was updated successfully, but these errors were encountered: