StaticSingleThreadedExecutor throws rcl error (couldn't add guard condition to wait set) if node goes out of scope before spin
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 805
- Forks
- 564
- Avg merge
- 1d 17h
- Merged PRs (30d)
- 27
Description
When expanding the test_executor unit test to StaticSingleThreadedExecutor (in https://github.com/ros2/rclcpp/pull/1222), the temporary node test fails for this executor.
terminate called after throwing an instance of 'std::runtime_error'
what(): Executor waitable: couldn't add guard condition to wait set
Aborted (core dumped)
Example of temporary node unit test.
https://github.com/ros2/rclcpp/blob/0986fbb0f7b0dd735dac02677be5c92a9180f8e5/rclcpp/test/rclcpp/test_executor.cpp#L65-L69
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the temporary-node test in rclcpp/test/rclcpp/test_executor.cpp at lines 65-69 and reproduce it using StaticSingleThreadedExecutor. Trace the executor wait-set and guard-condition handling around the node going out of scope; done means the test no longer terminates with "couldn't add guard condition to wait set."
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- robotics
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100