Skip to content

Fix forced signal delivery - #1131

Open
Sangho Lee (sangho2) wants to merge 2 commits into
mainfrom
sanghle/fix_signal
Open

Fix forced signal delivery#1131
Sangho Lee (sangho2) wants to merge 2 commits into
mainfrom
sanghle/fix_signal

Conversation

@sangho2

Copy link
Copy Markdown
Contributor

This PR fixes forced delivery of a signal. handle_exception_request covers SIGFPE, SIGTRAP, and SIGILL, but force_signal_with_info asserts the signal is SIGKILL or SIGSEGV. A guest's handlers for those three signals never run.

@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown

🤖 SemverChecks 🤖 No breaking API changes detected

Note: this does not mean API is unchanged, or even that there are no breaking changes; simply, none of the detections triggered.

@CvvT Weiteng Chen (CvvT) left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks!

@wdcui Weidong Cui (wdcui) left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I didn't find any issue, but the agent reported the following issue:

This PR makes SIGFPE/SIGILL delivery reachable, but  siginfo_exception()  still emits  SI_KERNEL  with address  0 . Linux handlers expect  FPE_INTDIV  or  ILL_ILLOPN  and the faulting RIP. The fix must also bypass  RLIMIT_SIGPENDING  explicitly for forced signals; simply changing  si_code  would allow these signals to be dropped. SIGTRAP can retain  SI_KERNEL .

@sangho2 Sangho Lee (sangho2) added the must-not-merge:undergoing-restructuring Known deeper set of changes are happening on this PR before it is mergeable again label Aug 12, 2026
@sangho2

Copy link
Copy Markdown
Contributor Author

I didn't find any issue, but the agent reported the following issue:

This PR makes SIGFPE/SIGILL delivery reachable, but  siginfo_exception()  still emits  SI_KERNEL  with address  0 . Linux handlers expect  FPE_INTDIV  or  ILL_ILLOPN  and the faulting RIP. The fix must also bypass  RLIMIT_SIGPENDING  explicitly for forced signals; simply changing  si_code  would allow these signals to be dropped. SIGTRAP can retain  SI_KERNEL .

The review makes sense, which would bump up this one-line change though. Let me figure out minimal change.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

must-not-merge:undergoing-restructuring Known deeper set of changes are happening on this PR before it is mergeable again

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants