Skip to content

__icall_wrapper_ves_icall_mono_delegate_ctor can lead to SIGSEGV on iOS with MtouchInterpreter=-all #89359

@frenzibyte

Description

@frenzibyte

Description

The following code snippet results in a SIGSEGV on iOS when building with <MtouchInterpreter>-all</MtouchInterpreter>.

// obj must be 'IInterface<Implementation>', can't repro when declaring as 'Implementation'
IInterface<Implementation> obj = new Implementation();
Func<object, Implementation> action = obj.Method;
Action.Invoke(default!);

public interface IInterface<out TValue>
{
    TValue Method<TInterface>(TInterface parameter) where TInterface : class; // constriant required, any constraint still repros
}

// implementation must be struct
public struct Implementation : IInterface<Implementation>
{
    public Implementation Method<TInterface>(TInterface parameter) where TInterface : class =>
        new Implementation();
}

Reproduction Steps

  1. Create iOS project via templates (dotnet new ios)
  2. Add <MtouchInterpreter>-all</MtouchInterpreter> to the iOS project file
  3. Add the code snippet mentioned in description somewhere in the project.
  4. Build project and run application on a physical device.

Expected behavior

Code runs fine.

Actual behavior

Code fails when the delegate is created, with the following crash report:

=================================================================
	Native Crash Reporting
=================================================================
Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================

=================================================================
	Native stacktrace:
=================================================================
	0x10637fe40 - /private/var/containers/Bundle/Application/089433BF-7560-442B-B8C0-2418DFB57BBC/PublicStaging.app/iOSSandbox : _ZNK3icu6number23NumberFormatterSettingsINS0_24LocalizedNumberFormatterEE10toSkeletonER10UErrorCode
	0x10636b2f8 - /private/var/containers/Bundle/Application/089433BF-7560-442B-B8C0-2418DFB57BBC/PublicStaging.app/iOSSandbox : _ZNK3icu6number23NumberFormatterSettingsINS0_24LocalizedNumberFormatterEE10toSkeletonER10UErrorCode
	0x1063508f4 - /private/var/containers/Bundle/Application/089433BF-7560-442B-B8C0-2418DFB57BBC/PublicStaging.app/iOSSandbox : _ZNK3icu6number23NumberFormatterSettingsINS0_24LocalizedNumberFormatterEE10toSkeletonER10UErrorCode
	0x201e4ba90 - /usr/lib/system/libsystem_platform.dylib : <redacted>
	0x106353478 - /private/var/containers/Bundle/Application/089433BF-7560-442B-B8C0-2418DFB57BBC/PublicStaging.app/iOSSandbox : _ZNK3icu6number23NumberFormatterSettingsINS0_24LocalizedNumberFormatterEE10toSkeletonER10UErrorCode
	0x106353478 - /private/var/containers/Bundle/Application/089433BF-7560-442B-B8C0-2418DFB57BBC/PublicStaging.app/iOSSandbox : _ZNK3icu6number23NumberFormatterSettingsINS0_24LocalizedNumberFormatterEE10toSkeletonER10UErrorCode
	0x1063570a0 - /private/var/containers/Bundle/Application/089433BF-7560-442B-B8C0-2418DFB57BBC/PublicStaging.app/iOSSandbox : _ZNK3icu6number23NumberFormatterSettingsINS0_24LocalizedNumberFormatterEE10toSkeletonER10UErrorCode
	0x105b4de38 - /private/var/containers/Bundle/Application/089433BF-7560-442B-B8C0-2418DFB57BBC/PublicStaging.app/iOSSandbox :
	0x105bc4040 - /private/var/containers/Bundle/Application/089433BF-7560-442B-B8C0-2418DFB57BBC/PublicStaging.app/iOSSandbox :
	0x106353a8c - /private/var/containers/Bundle/Application/089433BF-7560-442B-B8C0-2418DFB57BBC/PublicStaging.app/iOSSandbox : _ZNK3icu6number23NumberFormatterSettingsINS0_24LocalizedNumberFormatterEE10toSkeletonER10UErrorCode
	0x1062a7300 - /private/var/containers/Bundle/Application/089433BF-7560-442B-B8C0-2418DFB57BBC/PublicStaging.app/iOSSandbox : _ZNK3icu6number23NumberFormatterSettingsINS0_24LocalizedNumberFormatterEE10toSkeletonER10UErrorCode
	0x1062a92a4 - /private/var/containers/Bundle/Application/089433BF-7560-442B-B8C0-2418DFB57BBC/PublicStaging.app/iOSSandbox : _ZNK3icu6number23NumberFormatterSettingsINS0_24LocalizedNumberFormatterEE10toSkeletonER10UErrorCode
	0x1063bedb0 - /private/var/containers/Bundle/Application/089433BF-7560-442B-B8C0-2418DFB57BBC/PublicStaging.app/iOSSandbox : _ZNK3icu6number23NumberFormatterSettingsINS0_24LocalizedNumberFormatterEE10toSkeletonER10UErrorCode
	0x1063beaf4 - /private/var/containers/Bundle/Application/089433BF-7560-442B-B8C0-2418DFB57BBC/PublicStaging.app/iOSSandbox : _ZNK3icu6number23NumberFormatterSettingsINS0_24LocalizedNumberFormatterEE10toSkeletonER10UErrorCode
	0x1b618da50 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1b618d174 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1b618c150 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1b618bd9c - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1b5ed1e74 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : _UIScenePerformActionsWithLifecycleActionMask
	0x1b6213d78 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1b60c4adc - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1b60c4904 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1b60c44b4 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1b60c4380 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1b67a856c - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1b6842568 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : _UISceneSettingsDiffActionPerformChangesWithTransitionContextAndCompletion
	0x1b5f70374 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1b63e3294 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1b60429a0 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1b6042810 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1b6041d64 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1b6041af0 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1c99e0e90 - /System/Library/PrivateFrameworks/FrontBoardServices.framework/FrontBoardServices : <redacted>
	0x1c9a208f8 - /System/Library/PrivateFrameworks/FrontBoardServices.framework/FrontBoardServices : <redacted>
	0x1c99e4c24 - /System/Library/PrivateFrameworks/FrontBoardServices.framework/FrontBoardServices : <redacted>
	0x1c9a20530 - /System/Library/PrivateFrameworks/FrontBoardServices.framework/FrontBoardServices : <redacted>
	0x1bb280f88 - /usr/lib/system/libdispatch.dylib : <redacted>
	0x1bb284a08 - /usr/lib/system/libdispatch.dylib : <redacted>
	0x1c99eed40 - /System/Library/PrivateFrameworks/FrontBoardServices.framework/FrontBoardServices : <redacted>
	0x1c99ee8dc - /System/Library/PrivateFrameworks/FrontBoardServices.framework/FrontBoardServices : <redacted>
	0x1c99f1184 - /System/Library/PrivateFrameworks/FrontBoardServices.framework/FrontBoardServices : <redacted>
	0x1b3d34f24 - /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation : <redacted>
	0x1b3d412fc - /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation : <redacted>
	0x1b3cc5220 - /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation : <redacted>
	0x1b3cdab7c - /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation : <redacted>
	0x1b3cdfeb0 - /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation : CFRunLoopRunSpecific
	0x1eded5368 - /System/Library/PrivateFrameworks/GraphicsServices.framework/GraphicsServices : GSEventRunModal
	0x1b61d5668 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1b61d52cc - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : UIApplicationMain
	0x106139768 - /private/var/containers/Bundle/Application/089433BF-7560-442B-B8C0-2418DFB57BBC/PublicStaging.app/iOSSandbox : xamarin_UIApplicationMain
	0x105bb295c - /private/var/containers/Bundle/Application/089433BF-7560-442B-B8C0-2418DFB57BBC/PublicStaging.app/iOSSandbox :
	0x1060c6260 - /private/var/containers/Bundle/Application/089433BF-7560-442B-B8C0-2418DFB57BBC/PublicStaging.app/iOSSandbox :
	0x106353a8c - /private/var/containers/Bundle/Application/089433BF-7560-442B-B8C0-2418DFB57BBC/PublicStaging.app/iOSSandbox : _ZNK3icu6number23NumberFormatterSettingsINS0_24LocalizedNumberFormatterEE10toSkeletonER10UErrorCode
	0x1062a5a64 - /private/var/containers/Bundle/Application/089433BF-7560-442B-B8C0-2418DFB57BBC/PublicStaging.app/iOSSandbox : _ZNK3icu6number23NumberFormatterSettingsINS0_24LocalizedNumberFormatterEE10toSkeletonER10UErrorCode
	0x1062ac114 - /private/var/containers/Bundle/Application/089433BF-7560-442B-B8C0-2418DFB57BBC/PublicStaging.app/iOSSandbox : _ZNK3icu6number23NumberFormatterSettingsINS0_24LocalizedNumberFormatterEE10toSkeletonER10UErrorCode
	0x106358614 - /private/var/containers/Bundle/Application/089433BF-7560-442B-B8C0-2418DFB57BBC/PublicStaging.app/iOSSandbox : _ZNK3icu6number23NumberFormatterSettingsINS0_24LocalizedNumberFormatterEE10toSkeletonER10UErrorCode
	0x106144578 - /private/var/containers/Bundle/Application/089433BF-7560-442B-B8C0-2418DFB57BBC/PublicStaging.app/iOSSandbox : xamarin_log
	0x1063bd850 - /private/var/containers/Bundle/Application/089433BF-7560-442B-B8C0-2418DFB57BBC/PublicStaging.app/iOSSandbox : _ZNK3icu6number23NumberFormatterSettingsINS0_24LocalizedNumberFormatterEE10toSkeletonER10UErrorCode
	0x1d25d8960 - /usr/lib/dyld : <redacted>

=================================================================
	Basic Fault Address Reporting
=================================================================
Memory around native instruction pointer (0x10638138c):0x10638137c  a9 12 40 f9 1f 01 00 f1 24 19 40 fa e0 01 00 54  ..@.....$.@....T
0x10638138c  09 01 40 79 0a 88 80 52 5f 01 29 6a 61 01 00 54  ..@y...R_.)ja..T
0x10638139c  00 05 40 f9 6d 79 fb 97 d4 02 40 f9 e0 00 38 36  ..@.my....@...86
0x1063813ac  a8 12 40 f9 01 01 40 f9 e0 03 14 aa 2a 2d 00 94  ..@...@.....*-..

=================================================================
	Managed Stacktrace:
=================================================================
	  at <unknown> <0xffffffff>
	  at System.Object:__icall_wrapper_ves_icall_mono_delegate_ctor <0x00007>
	  at iOSSandbox.AppDelegate:FinishedLaunching <0x00233>
	  at System.Object:runtime_invoke_dynamic <0x00127>
	  at <unknown> <0xffffffff>
	  at UIKit.UIApplication:xamarin_UIApplicationMain <0x00007>
	  at UIKit.UIApplication:UIApplicationMain <0x0005b>
	  at UIKit.UIApplication:Main <0x00107>
	  at Program:<Main>$ <0x0003f>
	  at System.Object:runtime_invoke_dynamic <0x00127>
=================================================================

Regression?

No response

Known Workarounds

No response

Configuration

.NET SDK:
 Version:   8.0.100-preview.6.23330.14
 Commit:    ba97796b8f

Runtime Environment:
 OS Name:     Mac OS X
 OS Version:  13.3
 OS Platform: Darwin
 RID:         osx.13-arm64
 Base Path:   /usr/local/share/dotnet/sdk/8.0.100-preview.6.23330.14/

.NET workloads installed:
 [ios]
   Installation Source: SDK 8.0.100-preview.6
   Manifest Version:    16.4.8646-net8-p6/8.0.100-preview.6
   Manifest Path:       /usr/local/share/dotnet/sdk-manifests/8.0.100-preview.6/microsoft.net.sdk.ios/WorkloadManifest.json
   Install Type:        FileBased

Host:
  Version:      8.0.0-preview.6.23329.7
  Architecture: arm64
  Commit:       5340be2ccc

.NET SDKs installed:
  6.0.406 [/usr/local/share/dotnet/sdk]
  7.0.201 [/usr/local/share/dotnet/sdk]
  8.0.100-preview.5.23303.2 [/usr/local/share/dotnet/sdk]
  8.0.100-preview.6.23330.14 [/usr/local/share/dotnet/sdk]

.NET runtimes installed:
  Microsoft.AspNetCore.App 6.0.14 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 7.0.3 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 8.0.0-preview.5.23302.2 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 8.0.0-preview.6.23329.11 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 6.0.14 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 7.0.3 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 8.0.0-preview.5.23280.8 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 8.0.0-preview.6.23329.7 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]

Other architectures found:
  None

Environment variables:
  Not set

global.json file:
  Not found

Learn more:
  https://aka.ms/dotnet/info

Download .NET:
  https://aka.ms/dotnet/download

Not sure whether it's specific to my configuration.

Other information

No response

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions