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

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

Closed
frenzibyte opened this issue Jul 23, 2023 · 2 comments
Assignees
Milestone

Comments

@frenzibyte
Copy link

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

@dotnet-issue-labeler dotnet-issue-labeler bot added the needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners label Jul 23, 2023
@ghost ghost added the untriaged New issue has not been triaged by the area owner label Jul 23, 2023
@jkotas jkotas added area-Codegen-meta-mono and removed needs-area-label An area label is needed to ensure this gets routed to the appropriate area owners labels Jul 23, 2023
@vargaz
Copy link
Contributor

vargaz commented Jul 24, 2023

Probably the same as
#89076
That issue will be fixed in a future preview release/8.0 final, but the fix didn't make preview7.

@marek-safar marek-safar removed the untriaged New issue has not been triaged by the area owner label Jul 24, 2023
@marek-safar marek-safar added this to the 8.0.0 milestone Jul 24, 2023
@SamMonoRT
Copy link
Member

@frenzibyte - I'm closing this as fixed with PR #89142. If you find an issue after testing with .NET8 RC1 build, please re-open.

@ghost ghost locked as resolved and limited conversation to collaborators Sep 11, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

5 participants