$ the-wire · showcase
macOS signal handling crash fix, On-Demand Resources for simulator
By RepoJournal · Filed · About .NET
The .NET runtime fixes a macOS crash when stale signal flags call SIG_IGN or SIG_DFL, and Mac Catalyst apps can now load on-demand resources in the simulator.
The runtime now guards against a macOS crash that occurred when a process exec'd dotnet with a signal handler installed. macOS preserves sa_flags across execve, leaving SA_SIGINFO set even when the handler is cleared to SIG_IGN or SIG_DFL; the runtime previously called the stale pointer and crashed. It now checks for SIG_IGN and SIG_DFL before invoking the previous handler, with a regression test added. [1]
Mac iOS developers get a fix for on-demand resources (ODR) in the simulator. The build previously wrote asset packs next to the app bundle with an AssetPackManifestTemplate.plist pointing at http://127.0.0.1, which only works on device where the IDE hosts them. Since the simulator has no hosting server, NSBundleResourceRequest failed at runtime with "No manifest found for bundleID". The fix embeds the packs in the app bundle for the simulator. [2]
Meanwhile, the Wasm CoreCLR runtime adds a browser test leg with readyToRun: true, crossgen2-compiling merged runners so wasm JIT regressions are actually exercised instead of relying on per-test workarounds. [3] The Roslyn SDK now publishes Windows PDBs for five VSIX assemblies, fixing missing symbols in the legacy VS insertion symbol store. [4]
Action items
- → If you see intermittent macOS crashes on signal delivery in .NET apps launched from a host process that sets handlers, test the fix on nightly runtime builds. dotnet/runtime [monitor]
- → iOS developers using on-demand resources can verify simulator behavior once this lands in a release. dotnet/macios [plan]
References
- [1] Check for SIG_IGN and SIG_DFL before calling previous signal handler ↗ dotnet/runtime
- [2] [msbuild] Embed on-demand resource asset packs in the app bundle for the simulator. Fixes #26218 (#26481) ↗ dotnet/macios
- [3] Run browser wasm runtime tests with ReadyToRun (#133134) ↗ dotnet/runtime
- [4] Publish Windows PDBs for Roslyn SDK (#85133) ↗ dotnet/roslyn