Skip to content

[net8.0-ios] App crashes on ios device when calling static abstract generic interface method #90732

@vyacheslav-volkov

Description

@vyacheslav-volkov

Description

App crashes on ios device with <UseInterpreter>false</UseInterpreter> flag when calling static abstract generic interface method.

Reproduction Steps

  1. Create a new net8.0-ios project
  2. Add code:
public interface ITypeChecker
{
    static abstract bool Test<T>();
}

public interface IHandler
{
    bool Test<T>();
}

public class TypeChecker : ITypeChecker
{
    public static bool Test<T>() => true;
}

public class Handler<TChecker> : IHandler where TChecker : ITypeChecker
{
    public bool Test<T>() => TChecker.Test<T>();
}

[Register("AppDelegate")]
public class AppDelegate : UIApplicationDelegate
{
    public override UIWindow? Window { get; set; }

    public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
    {
        var handler = GetHandler();
        handler.Test<int>();
        return true;
    }

    public IHandler GetHandler() => new Handler<TypeChecker>();
}

Expected behavior

No crashes

Actual behavior

Native crash:

=================================================================
	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:
=================================================================
	0x102c967a4 - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : SystemNative_GetDefaultTimeZone
	0x102c81990 - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : SystemNative_GetDefaultTimeZone
	0x102c64364 - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : SystemNative_GetDefaultTimeZone
	0x1f05fd2f4 - /usr/lib/system/libsystem_platform.dylib : <redacted>
	0x102c6ace0 - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : SystemNative_GetDefaultTimeZone
	0x102717d80 - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : 
	0x102640240 - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : 
	0x1028cfeac - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : 
	0x102c675a0 - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : SystemNative_GetDefaultTimeZone
	0x102c14874 - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : SystemNative_GetDefaultTimeZone
	0x102c17594 - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : SystemNative_GetDefaultTimeZone
	0x102cd5488 - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : SystemNative_GetDefaultTimeZone
	0x102cd51cc - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : SystemNative_GetDefaultTimeZone
	0x1a8a8f2d0 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1a8a8ea28 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1a8a8da5c - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1a8a8d6bc - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1a87f6884 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : _UIScenePerformActionsWithLifecycleActionMask
	0x1a8b0c858 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1a89cea70 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1a89ce8a0 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1a89ce470 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1a89ce350 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1a904d430 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1a90e10ac - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : _UISceneSettingsDiffActionPerformChangesWithTransitionContextAndCompletion
	0x1a888cdc8 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1a8cc0fe0 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1a89533c8 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1a895325c - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1a89527cc - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1a8952570 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1bb2ae3e4 - /System/Library/PrivateFrameworks/FrontBoardServices.framework/FrontBoardServices : <redacted>
	0x1bb2e88ec - /System/Library/PrivateFrameworks/FrontBoardServices.framework/FrontBoardServices : <redacted>
	0x1bb2b1e38 - /System/Library/PrivateFrameworks/FrontBoardServices.framework/FrontBoardServices : <redacted>
	0x1bb2e8590 - /System/Library/PrivateFrameworks/FrontBoardServices.framework/FrontBoardServices : <redacted>
	0x1ad56f780 - /usr/lib/system/libdispatch.dylib : <redacted>
	0x1ad5472d0 - /usr/lib/system/libdispatch.dylib : <redacted>
	0x1bb2bb34c - /System/Library/PrivateFrameworks/FrontBoardServices.framework/FrontBoardServices : <redacted>
	0x1bb2baf88 - /System/Library/PrivateFrameworks/FrontBoardServices.framework/FrontBoardServices : <redacted>
	0x1bb2bd53c - /System/Library/PrivateFrameworks/FrontBoardServices.framework/FrontBoardServices : <redacted>
	0x1a688d154 - /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation : <redacted>
	0x1a6898dc8 - /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation : <redacted>
	0x1a6824044 - /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation : <redacted>
	0x1a68391b8 - /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation : <redacted>
	0x1a683dda0 - /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation : CFRunLoopRunSpecific
	0x1ddb3b998 - /System/Library/PrivateFrameworks/GraphicsServices.framework/GraphicsServices : GSEventRunModal
	0x1a8ad2fd8 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1a8ad2c50 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : UIApplicationMain
	0x102a28bf8 - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : xamarin_UIApplicationMain
	0x10275de30 - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : 
	0x102a0bb14 - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : 
	0x102c675a0 - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : SystemNative_GetDefaultTimeZone
	0x102c13a84 - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : SystemNative_GetDefaultTimeZone
	0x102c199a4 - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : SystemNative_GetDefaultTimeZone
	0x102c6c808 - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : SystemNative_GetDefaultTimeZone
	0x102a33a24 - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : xamarin_log
	0x102cd4834 - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : SystemNative_GetDefaultTimeZone
	0x1c3f93344 - /usr/lib/dyld : <redacted>

=================================================================
	Basic Fault Address Reporting
=================================================================
Memory around native instruction pointer (0x102c6ace0):0x102c6acd0  e8 42 40 79 28 0d 10 37 e0 03 17 aa 4a 7b fd 97  .B@y(..7....J{..
0x102c6ace0  68 02 40 f9 88 14 00 b4 19 00 1b 12 08 01 40 f9  h.@...........@.
0x102c6acf0  17 01 40 f9 00 0b 40 f9 60 0c 00 b4 08 3c 40 39  ..@...@.`....<@9
0x102c6ad00  a8 0c 00 37 e0 03 17 aa d4 81 fd 97 e8 6e 40 f9  ...7.........n@.

=================================================================
	Managed Stacktrace:
=================================================================
	  at <unknown> <0xffffffff>
	  at System.Object:__icall_wrapper_(null) <0x00007>
	  at TestCrash.Handler`1:Test <0x0007f>
	  at TestCrash.AppDelegate:FinishedLaunching <0x00047>
	  at System.Object:runtime_invoke_dynamic <0x00127>
	  at <unknown> <0xffffffff>
	  at UIKit.UIApplication:xamarin_UIApplicationMain <0x00007>
	  at UIKit.UIApplication:UIApplicationMain <0x000cf>
	  at UIKit.UIApplication:Main <0x00107>
	  at Program:<Main>$ <0x0003f>
	  at System.Object:runtime_invoke_dynamic <0x00127>
=================================================================

=================================================================
	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.
=================================================================

An error has occurred in the native fault reporting. Some diagnostic information will be unavailable.

=================================================================
	Native stacktrace:
=================================================================
	0x102c967a4 - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : SystemNative_GetDefaultTimeZone
	0x102c81990 - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : SystemNative_GetDefaultTimeZone
	0x102c64364 - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : SystemNative_GetDefaultTimeZone
	0x1f05fd2f4 - /usr/lib/system/libsystem_platform.dylib : <redacted>
	0x102c6ace0 - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : SystemNative_GetDefaultTimeZone
	0x102717d80 - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : 
	0x102640240 - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : 
	0x1028cfeac - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : 
	0x102c675a0 - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : SystemNative_GetDefaultTimeZone
	0x102c14874 - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : SystemNative_GetDefaultTimeZone
	0x102c17594 - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : SystemNative_GetDefaultTimeZone
	0x102cd5488 - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : SystemNative_GetDefaultTimeZone
	0x102cd51cc - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : SystemNative_GetDefaultTimeZone
	0x1a8a8f2d0 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1a8a8ea28 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1a8a8da5c - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1a8a8d6bc - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1a87f6884 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : _UIScenePerformActionsWithLifecycleActionMask
	0x1a8b0c858 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1a89cea70 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1a89ce8a0 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1a89ce470 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1a89ce350 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1a904d430 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1a90e10ac - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : _UISceneSettingsDiffActionPerformChangesWithTransitionContextAndCompletion
	0x1a888cdc8 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1a8cc0fe0 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1a89533c8 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1a895325c - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1a89527cc - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1a8952570 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1bb2ae3e4 - /System/Library/PrivateFrameworks/FrontBoardServices.framework/FrontBoardServices : <redacted>
	0x1bb2e88ec - /System/Library/PrivateFrameworks/FrontBoardServices.framework/FrontBoardServices : <redacted>
	0x1bb2b1e38 - /System/Library/PrivateFrameworks/FrontBoardServices.framework/FrontBoardServices : <redacted>
	0x1bb2e8590 - /System/Library/PrivateFrameworks/FrontBoardServices.framework/FrontBoardServices : <redacted>
	0x1ad56f780 - /usr/lib/system/libdispatch.dylib : <redacted>
	0x1ad5472d0 - /usr/lib/system/libdispatch.dylib : <redacted>
	0x1bb2bb34c - /System/Library/PrivateFrameworks/FrontBoardServices.framework/FrontBoardServices : <redacted>
	0x1bb2baf88 - /System/Library/PrivateFrameworks/FrontBoardServices.framework/FrontBoardServices : <redacted>
	0x1bb2bd53c - /System/Library/PrivateFrameworks/FrontBoardServices.framework/FrontBoardServices : <redacted>
	0x1a688d154 - /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation : <redacted>
	0x1a6898dc8 - /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation : <redacted>
	0x1a6824044 - /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation : <redacted>
	0x1a68391b8 - /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation : <redacted>
	0x1a683dda0 - /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation : CFRunLoopRunSpecific
	0x1ddb3b998 - /System/Library/PrivateFrameworks/GraphicsServices.framework/GraphicsServices : GSEventRunModal
	0x1a8ad2fd8 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : <redacted>
	0x1a8ad2c50 - /System/Library/PrivateFrameworks/UIKitCore.framework/UIKitCore : UIApplicationMain
	0x102a28bf8 - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : xamarin_UIApplicationMain
	0x10275de30 - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : 
	0x102a0bb14 - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : 
	0x102c675a0 - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : SystemNative_GetDefaultTimeZone
	0x102c13a84 - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : SystemNative_GetDefaultTimeZone
	0x102c199a4 - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : SystemNative_GetDefaultTimeZone
	0x102c6c808 - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : SystemNative_GetDefaultTimeZone
	0x102a33a24 - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : xamarin_log
	0x102cd4834 - /private/var/containers/Bundle/Application/17646053-8E61-4B41-BA88-71BCCBDB1947/TestCrash.app/TestCrash : SystemNative_GetDefaultTimeZone
	0x1c3f93344 - /usr/lib/dyld : <redacted>

Exiting early due to double fault.

Regression?

No response

Known Workarounds

No response

Configuration

NET 8.0 Preview 7

Other information

No response

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions