Skip to content

Fix GoalStream waiter resumption in action send_goal flow#53

Open
Timple wants to merge 1 commit into
otamachan:mainfrom
nobleo:fix/lyrical-wait
Open

Fix GoalStream waiter resumption in action send_goal flow#53
Timple wants to merge 1 commit into
otamachan:mainfrom
nobleo:fix/lyrical-wait

Conversation

@Timple

@Timple Timple commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

I was trying this library on lyrical, noticed this was merged.

I'm running a single threaded executor:

rclcpp::executors::EventsCBGExecutor executor{rclcpp::ExecutorOptions{}, 1};

The change ensures the waiting GoalStream continuation is resumed reliably, so sequential send_goal calls continue without hanging.

@otamachan

Copy link
Copy Markdown
Owner

Thanks for the feedback!

The hang is real, but reverting to a direct resume() would reintroduce the Jazzy goal_requests_mutex deadlock (ros2/rclcpp#2796) that the post() was added to avoid(4c7937a). The root cause is that DrainWaitable didn't notify events-based executors. #54 fixes that hook instead, so both the deadlock fix and your EventsCBGExecutor case work. Could you check if it resolves the issue on your side?

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

Successfully merging this pull request may close these issues.

2 participants