[rclcpp] C++ lib leaking `rclcpp::Node()` can cause segfaults at `dlclose()`
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 805
- Forks
- 564
- Avg merge
- 1d 17h
- Merged PRs (30d)
- 27
Description
Bug report
Required Info:
- Operating System: Ubuntu 22.04
- Installation type: binaries
- Version or commit hash:
humble - DDS implementation:
rmw_cyclonedds_cpp - Client library (if applicable):
rclcpp
Steps to reproduce issue
See https://github.com/EricCousineau-TRI/rclcpp_dlclose_segfault
Expected behavior
dlclose() does not trigger race conditions with threads -- ideally, shutdowns existing workers, or tries to order atexit operations manually.
Actual behavior
dlclose() appears to trigger race conditions when user leaks rclcpp::Node.
Additional information
See README in https://github.com/EricCousineau-TRI/rclcpp_dlclose_segfault
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 linked rclcpp_dlclose_segfault repository and its README, reproducing the failure on Ubuntu 22.04 with Humble and rmw_cyclonedds_cpp. Then inspect how rclcpp::Node lifetime, worker shutdown, and dlclose interact; done means eliminating the race and resulting segfault when a Node is leaked.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- robotics
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100