Skip to content

remove I/O from signal handler. (backport #3000)#3004

Merged
ahcorde merged 1 commit intojazzyfrom
mergify/bp/jazzy/pr-3000
Dec 5, 2025
Merged

remove I/O from signal handler. (backport #3000)#3004
ahcorde merged 1 commit intojazzyfrom
mergify/bp/jazzy/pr-3000

Conversation

@mergify
Copy link
Copy Markdown
Contributor

@mergify mergify bot commented Dec 4, 2025

Description

Backport of #2986

I tried to think of the ABI compatible way to backport the #2986, because it is critical issue.
But ended up removing the I/O (including possible rcl_publish) from the signal handler.

  • reuse signal_received_ as std::atomic_int to store the signal number. this also changes the memory layout/alighment from 1 byte to 4 bytes. checked with amd64 and arm64 platform, this is also gonna be the breaking ABI change, and not guaranteed by standard.
  • external data structure such as code space static variable or per-instance state using instance IDs or pointers, avoiding class member changes. However, this adds complexity and potential thread-safety concerns.

Note

this requires ros2/system_tests#580

Is this user-facing behavior change?

Yes, the user application cannot expect the logging message (or publish) via signal handler.

Did you use Generative AI?

No,

Additional Information


This is an automatic backport of pull request #3000 done by [Mergify](https://mergify.com).

Signed-off-by: Tomoya Fujita <Tomoya.Fujita@sony.com>
(cherry picked from commit 3ce946f)
@fujitatomoya
Copy link
Copy Markdown
Collaborator

Pulls: #3004, ros2/system_tests#581
Gist: https://gist.githubusercontent.com/fujitatomoya/b29bb27cb3ff7ae79559a7817eb7e719/raw/bcd144f1157d962a26e41b289ef5018abc6441c2/ros2.repos
BUILD args: --packages-above-and-dependencies rclcpp test_rclcpp
TEST args: --packages-above rclcpp test_rclcpp
ROS Distro: jazzy
Job: ci_launcher
ci_launcher ran: https://ci.ros2.org/job/ci_launcher/17683

@fujitatomoya
Copy link
Copy Markdown
Collaborator

fujitatomoya commented Dec 4, 2025

  • Linux Build Status
  • Linux-aarch64 Build Status
  • Linux-rhel Build Status
  • Windows Build Status

@ahcorde ahcorde merged commit 27edfe1 into jazzy Dec 5, 2025
3 checks passed
@ahcorde ahcorde deleted the mergify/bp/jazzy/pr-3000 branch December 5, 2025 14:27
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