ros / actionlib

Provides a standardized interface for interfacing with preemptable tasks. Examples of this include moving the base to a target location, performing a laser scan and returning the resulting point cloud, detecting the handle of a door, etc.
http://www.ros.org/wiki/actionlib
96 stars 155 forks source link

race condition in SimpleActionClient #176

Open machinekoder opened 4 years ago

machinekoder commented 4 years ago

I noticed that wait_for_result() may cause a race condition. The done_condition lock is not used when setting the simple_state, therefore done_db might not have been called when wait_for_result returns.

see https://github.com/ros/actionlib/blob/noetic-devel/actionlib/src/actionlib/simple_action_client.py#L239-L243 and https://github.com/ros/actionlib/blob/noetic-devel/actionlib/src/actionlib/simple_action_client.py#L137-L138

machinekoder commented 4 years ago

related to https://github.com/ros/actionlib/issues/116