Skip to content

[net8.0-ios] App crashes on ios device when calling static abstract generic interface method in a sealed class #94467

@vyacheslav-volkov

Description

@vyacheslav-volkov

Description

App crashes on ios device with <UseInterpreter>false</UseInterpreter> flag when calling static abstract generic interface method in a sealed class.
Initially I already wrote about this and it was fixed, but if I make the TypeChecker class sealed the error is reproduced again.
The old issue #90732.
cc: @kotlarmilos

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 sealed 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

No response

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