-
Notifications
You must be signed in to change notification settings - Fork 525
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
Controller crashes due to preempt request #301
Comments
Hi, Preemption is part of the Any ideas on this @beatrizleon @toliver ? |
Have you upgraded your system recently? |
@ipa-mdl this happens with the latest binaries, but also with a compilation from source, so it's not likely to be an ABI break. @bmagyar Good point about the tests, we will try to add a test that reproduces the failure. One point that probably wasn't clear in the first comment by @JamesAndrews3 is that the crash doesn't happen every time you send a goal that preempts a previous goal, but if you keep sending goals it ends up crashing after a random amount of time. This seems to point to a race condition and I think that it's due to the fact that the access to the |
👍 for the clarification!
Good point! The code for preemption handling needs some serious refactoring. (#48, #174). As a quick fix current_active_goal should be used to fill the feedback, probably in the else branch. |
Actually @JamesAndrews3 pointed us to the same lines, but for some reason I have not read it (or spotted the links). |
HI everyone, Could you try again with the new version of |
Hi Bence,
I am testing your this code now, assuming the changes have been made in
kinetic-devel branch.
It may take some time as it was an intermittent fault.
Warm regards,
James
…On 21 November 2017 at 10:42, Bence Magyar ***@***.***> wrote:
HI everyone,
Could you try again with the new version of realtime_tools please?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#301 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AZelOiuqGkq_aPz6sS0v2o0RuKIYR85oks5s4qj_gaJpZM4QHZSW>
.
--
*We're hiring! Do you know someone who could be our new DevOps Engineer
<https://www.shadowrobot.com/devops-engineer-junior-sys-admin/>?*
------------------------------
*Shadow Robot Company Ltd.*
251 Liverpool Road, N1 1LX, UK
Registered Number 3308007 (England & Wales)
|
Hi Bence,
I tried the new version of realtime_tools a few times and got a different
exit code (-6, rather than -11):
[robot_hw-7] process has died [pid 21099, exit code -6, cmd ethercat_grant
/home/user/projects/shadow_robot/base_deps/devel/lib/ros_control_robot/ros_control_robot
__name:=robot_hw
__log:=/home/user/.ros/log/59c0c542-d042-11e7-a56b-54ee756b4c3a/robot_hw-7.log].
Cheers,
James
On 22 November 2017 at 17:17, James Southall-Andrews <[email protected]>
wrote:
… Hi Bence,
I am testing your this code now, assuming the changes have been made in
kinetic-devel branch.
It may take some time as it was an intermittent fault.
Warm regards,
James
On 21 November 2017 at 10:42, Bence Magyar ***@***.***>
wrote:
> HI everyone,
>
> Could you try again with the new version of realtime_tools please?
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <#301 (comment)>,
> or mute the thread
> <https://github.com/notifications/unsubscribe-auth/AZelOiuqGkq_aPz6sS0v2o0RuKIYR85oks5s4qj_gaJpZM4QHZSW>
> .
>
--
*We're hiring! Do you know someone who could be our new DevOps Engineer
<https://www.shadowrobot.com/devops-engineer-junior-sys-admin/>?*
------------------------------
*Shadow Robot Company Ltd.*
251 Liverpool Road, N1 1LX, UK
Registered Number 3308007 (England & Wales)
|
Any update on this? |
Hi @bmagyar we haven't tried any new fixes on this yet. In that case, we can remove these lines https://github.com/ros-controls/ros_controllers/blob/kinetic-devel/joint_trajectory_controller/include/joint_trajectory_controller/joint_trajectory_controller_impl.h#L482-L490 that deal with the feedback and the crash doesn't happen. We haven't had the time to test the quick fix suggested by @ipa-mdl in #301 (comment) but it sounds like it could work. |
Hi, I have encountered this issue with our controller when we migrated to Kinetic. We can reproduce the problem using
and sending goal in relatively high rate with this script.
The controller dies in these lines, and when I remove these lines, it keeps working. I have rebuilt with updated |
see #325 for adding mutex before accesing rt_active_goal_ as proposed by #301 (comment) |
I did not propose to add a mutex/lock. |
Stop publishing feedback to avoid segmentation fault as explained in ros-controls#301. The `rt_active_goal_` pointer can get deleted in a different thread leading to crashes.
FYI, #342 fixed the issue for us :) |
We shall consider this issue solved then, thanks! |
Hello there,
I find an intermittent error when controlling a robot hand. The controller crashes and I can no longer control the hand.
Here is the ROS launch terminal error:
If you look here you can see action feedback. Basically, I think it is crashing because when a new goal arrives and the previous one hasn't finished yet. Hence it is “preempted”.
There is a check for the pointer to be valid here. As a thread calls it, it may be null as it is occupied by another thread.
I wonder what what be a decent fix for this. Perhaps some mutual exclusion is required?
The text was updated successfully, but these errors were encountered: