Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[release/8.0-staging] [mono] Chain SIGSEGV native crashes to the default SIGSEGV handler #110866

Open
wants to merge 2 commits into
base: release/8.0-staging
Choose a base branch
from

Conversation

github-actions[bot]
Copy link
Contributor

@github-actions github-actions bot commented Dec 20, 2024

Backport of #110741 to release/8.0-staging

/cc @ivanpovazan

Customer Impact

  • Customer reported
  • Found internally

Found internally: #106064 and reported by customer #107641

Without this change customers cannot get crash reports for post-mortem debugging when segmentation fault happens in the native code in their iOS/MacCatalyst applications.
This makes it really difficult to determine a cause of the crash on physical devices since there is no log or crash report when the failure occurs.
In this PR we make sure that we also consider default SIGSEGV handlers configured as sa.sa_handler == SIG_DFL when chaining the signal, after our signal handling completes. This enables the default handler to respond to the signal and generate a crash report.

Regression

  • Yes
  • No

It is unclear when the regression happened as we were able to get SIGSEGV crash reports on iOS before.
It is possible that there was a change on how default OS handlers are configured on iOS-like platforms by Apple, which stopped our crash chaining logic from working properly.

Testing

Tested manually on MAUI iOS and MacCatalyst applications that the SIGSEGV signal is properly propagated to the default handler and that crash reports are generated properly.

Risk

Low. The change only includes an additional case to consider when chaining crash signals.

  • The PR target branch is release/X.0-staging, not release/X.0.

Package authoring no longer needed in .NET 9

IMPORTANT: Starting with .NET 9, you no longer need to edit a NuGet package's csproj to enable building and bump the version.
Keep in mind that we still need package authoring in .NET 8 and older versions.

Copy link
Member

@jeffschwMSFT jeffschwMSFT left a comment

Choose a reason for hiding this comment

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

lgtm. we will take for consideration in 8.0.x

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

Successfully merging this pull request may close these issues.

3 participants