Skip to content

[release/8.0] [Mono] Fix unsafe accessor related issue for full AOT - #91270

Merged
carlossanlop merged 2 commits into
release/8.0from
backport/pr-91216-to-release/8.0
Aug 29, 2023
Merged

[release/8.0] [Mono] Fix unsafe accessor related issue for full AOT#91270
carlossanlop merged 2 commits into
release/8.0from
backport/pr-91216-to-release/8.0

Conversation

@github-actions

@github-actionsgithub-actionsBot commented Aug 29, 2023

Copy link
Copy Markdown
Contributor

Backport of #91216 to release/8.0

/cc @fanyang-mono

Customer Impact

Prior to this PR, the customer might hit an assertion or a SIGSEGV, when using UnsafeAccessor with full AOT. This PR fixes those issues by

  1. Skip type parameter check, when it is a wrapper of WRAPPER_SUBTYPE_UNSAFE_ACCESSOR
  2. Only encode when member_name is not NULL

Testing

Local testing:

  • Prior to this PR, full aot compilation for UnsafeAccessorsTests.dll encountered an assertion:
$ MONO_ENV_OPTIONS=--aot=full,llvm,llvm-path=$PWD/bin/mono/osx.x64.Debug obj/mono/osx.x64.Debug/mono/mini/mono-sgen tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll
Mono Ahead of Time compiler - compiling assembly /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll
AOTID 8F3DEAB0-F411-CE52-1D92-7B714F55D60F
Failed to load methodspec 0x2b000003 due to Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies..
Run with MONO_LOG_LEVEL=debug for more information.
Failed to load methodspec 0x2b000004 due to Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies..
Run with MONO_LOG_LEVEL=debug for more information.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:CallPrivateConstructorClass ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:CallPrivateConstructorClass (string)' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataValue UnsafeAccessorsTests:CallPrivateConstructorValue (string)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:_MVV (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:_mvv (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:Verify_InvalidTargetUnsafeAccessor ()' due to: 'Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:<Verify_CallCtorWithEmptyNotNullName>g__CallPrivateConstructorWithEmptyName|11_0 ()' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_CallCtorAsMethod>g__CallPrivateConstructor|12_0 (UnsafeAccessorsTests/UserDataClass,string)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_CallCtorAsMethodValue>g__CallPrivateConstructor|13_0 (UnsafeAccessorsTests/UserDataValue&,string)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessStaticFieldClass>g__GetPrivateStaticField|14_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessFieldClass>g__GetPrivateField|15_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessStaticFieldValue>g__GetPrivateStaticField|16_0 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessFieldValue>g__GetPrivateField|17_0 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessStaticMethodClass>g__GetPrivateStaticMethod|18_0 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessMethodClass>g__GetPrivateMethod|19_0 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_AccessStaticMethodVoidClass>g__GetPrivateStaticMethod|22_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_AccessMethodVoidClass>g__GetPrivateMethod|23_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessStaticMethodValue>g__GetPrivateStaticMethod|24_0 (UnsafeAccessorsTests/UserDataValue,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessMethodValue>g__GetPrivateMethod|25_0 (UnsafeAccessorsTests/UserDataValue&,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_IgnoreCustomModifier>g__CallPrivateGetter|26_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_IgnoreCustomModifier>g__CallPrivateSetter|26_1 (UnsafeAccessorsTests/UserDataClass,string)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_PreciseMatchCustomModifier>g__CallPrivateMethod|27_0 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_UnmanagedCallConvBitAreTreatedAsCustomModifiersAndIgnored>g__CallCdeclMethod|28_0 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_UnmanagedCallConvBitAreTreatedAsCustomModifiersAndIgnored>g__CallStdcallMethod|28_1 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_ManagedUnmanagedFunctionPointersDontMatch>g__CallCdeclMethod|29_2 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_ManagedUnmanagedFunctionPointersDontMatch>g__CallManagedMethod|29_3 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__OnBase|32_2 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__BaseVirtual|32_3 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__OnDerived|32_4 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__Abstract|32_5 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__Virtual|32_6 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__NewVirtual|32_7 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InheritanceFieldResolution>g__FieldOnBase|33_1 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InheritanceFieldResolution>g__FieldOnDerived|33_2 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__MethodNotFound|34_9 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticMethodNotFound|34_10 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFound|34_11 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFoundStaticMismatch1|34_12 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFoundStaticMismatch2|34_13 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticFieldNotFound|34_14 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__CallPointerMethod|34_15 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'int UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticMethodWithDifferentReturnType|34_16 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessorAmbiguousMatch>g__CallAmbiguousMethod|35_1 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldReturnMustBeByRefClass|38_16 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldReturnMustBeByRefValue|38_17 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldArgumentMustBeByRef|38_18 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldMustHaveSingleArgument|38_19 (UnsafeAccessorsTests/UserDataClass,int)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__StaticFieldMustHaveSingleArgument|38_20 (UnsafeAccessorsTests/UserDataClass,int)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidKindValue|38_21 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorSignatureClass|38_22 ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataValue& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorSignatureValue|38_23 ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorName|38_24 ()' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorType|38_25 ()' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__LookUpFailsOnPointers|38_26 (void*)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__LookUpFailsOnFunctionPointers|38_27 (*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvokeMethodOnValueWithoutRef|38_28 (UnsafeAccessorsTests/UserDataValue,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests/Invalid:NonStatic (string)' due to: 'Method has zero rva'.
* Assertion at /Users/yangfan/Documents/work/dotnet_3/runtime/src/mono/mono/mini/method-to-ir.c:6456, condition `!sig->has_type_parameters' not met
=================================================================
Native Crash Reporting
=================================================================
Got a SIGABRT 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:
=================================================================
0x10eca9747 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : dump_native_stacktrace
0x10eca96b1 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_dump_native_crash_info
0x10eb9c230 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_handle_native_crash
0x10eca8ed9 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : sigabrt_signal_handler
0x7ff8035445ed - /usr/lib/system/libsystem_platform.dylib : _sigtramp
0xd - Unknown
0x7ff80343db45 - /usr/lib/system/libsystem_c.dylib : abort
0x10e861302 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : monoeg_assert_abort
0x10e879596 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_log_write_logfile
0x10e8764e1 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : structured_log_adapter
0x10e861c1a - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : monoeg_g_logstr
0x10e8617bb - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : monoeg_g_logv_nofree
0x10e86198d - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : monoeg_assertion_message
0x10e8619fc - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_assertion_message
0x10ea9eab8 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_method_to_ir
0x10ea73c27 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mini_method_compile
0x10eb661f2 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : compile_method
0x10eb5c1fc - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : compile_methods
0x10eb56086 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : aot_assembly
0x10eb53369 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_aot_assemblies
0x10eb4a4b5 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : main_thread_handler
0x10eb48da2 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_main
0x10e7a7c68 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_main_with_options
0x10e7a7c32 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : main
0x7ff8031bd41f - /usr/lib/dyld : start
=================================================================
External Debugger Dump:
=================================================================
=================================================================
Basic Fault Address Reporting
=================================================================
Memory around native instruction pointer (0x7ff8034df202):0x7ff8034df1f2 ff ff c3 90 90 90 b8 48 01 00 02 49 89 ca 0f 05 .......H...I....
0x7ff8034df202 73 08 48 89 c7 e9 df 9a ff ff c3 90 90 90 b8 53 s.H............S
0x7ff8034df212 00 00 02 49 89 ca 0f 05 73 08 48 89 c7 e9 c7 9a ...I....s.H.....
0x7ff8034df222 ff ff c3 90 90 90 b8 83 01 00 02 49 89 ca 0f 05 ...........I....
Abort trap: 6
  • With this fix, full aot compilation for UnsafeAccessorsTests.dll finished without error:
$ MONO_ENV_OPTIONS=--aot=full obj/mono/osx.x64.Debug/mono/mini/mono-sgen tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll
Mono Ahead of Time compiler - compiling assembly /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll
AOTID C5C2367F-8ED9-67C5-FB74-D8B534ECE071
Failed to load methodspec 0x2b000003 due to Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies..
Run with MONO_LOG_LEVEL=debug for more information.
Failed to load methodspec 0x2b000004 due to Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies..
Run with MONO_LOG_LEVEL=debug for more information.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:CallPrivateConstructorClass ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:CallPrivateConstructorClass (string)' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataValue UnsafeAccessorsTests:CallPrivateConstructorValue (string)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:_MVV (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:_mvv (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:Verify_InvalidTargetUnsafeAccessor ()' due to: 'Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:<Verify_CallCtorWithEmptyNotNullName>g__CallPrivateConstructorWithEmptyName|11_0 ()' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_CallCtorAsMethod>g__CallPrivateConstructor|12_0 (UnsafeAccessorsTests/UserDataClass,string)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_CallCtorAsMethodValue>g__CallPrivateConstructor|13_0 (UnsafeAccessorsTests/UserDataValue&,string)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessStaticFieldClass>g__GetPrivateStaticField|14_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessFieldClass>g__GetPrivateField|15_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessStaticFieldValue>g__GetPrivateStaticField|16_0 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessFieldValue>g__GetPrivateField|17_0 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessStaticMethodClass>g__GetPrivateStaticMethod|18_0 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessMethodClass>g__GetPrivateMethod|19_0 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_AccessStaticMethodVoidClass>g__GetPrivateStaticMethod|22_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_AccessMethodVoidClass>g__GetPrivateMethod|23_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessStaticMethodValue>g__GetPrivateStaticMethod|24_0 (UnsafeAccessorsTests/UserDataValue,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessMethodValue>g__GetPrivateMethod|25_0 (UnsafeAccessorsTests/UserDataValue&,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_IgnoreCustomModifier>g__CallPrivateGetter|26_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_IgnoreCustomModifier>g__CallPrivateSetter|26_1 (UnsafeAccessorsTests/UserDataClass,string)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_PreciseMatchCustomModifier>g__CallPrivateMethod|27_0 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_UnmanagedCallConvBitAreTreatedAsCustomModifiersAndIgnored>g__CallCdeclMethod|28_0 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_UnmanagedCallConvBitAreTreatedAsCustomModifiersAndIgnored>g__CallStdcallMethod|28_1 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_ManagedUnmanagedFunctionPointersDontMatch>g__CallCdeclMethod|29_2 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_ManagedUnmanagedFunctionPointersDontMatch>g__CallManagedMethod|29_3 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__OnBase|32_2 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__BaseVirtual|32_3 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__OnDerived|32_4 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__Abstract|32_5 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__Virtual|32_6 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__NewVirtual|32_7 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InheritanceFieldResolution>g__FieldOnBase|33_1 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InheritanceFieldResolution>g__FieldOnDerived|33_2 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__MethodNotFound|34_9 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticMethodNotFound|34_10 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFound|34_11 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFoundStaticMismatch1|34_12 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFoundStaticMismatch2|34_13 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticFieldNotFound|34_14 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__CallPointerMethod|34_15 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'int UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticMethodWithDifferentReturnType|34_16 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessorAmbiguousMatch>g__CallAmbiguousMethod|35_1 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldReturnMustBeByRefClass|38_16 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldReturnMustBeByRefValue|38_17 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldArgumentMustBeByRef|38_18 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldMustHaveSingleArgument|38_19 (UnsafeAccessorsTests/UserDataClass,int)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__StaticFieldMustHaveSingleArgument|38_20 (UnsafeAccessorsTests/UserDataClass,int)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidKindValue|38_21 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorSignatureClass|38_22 ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataValue& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorSignatureValue|38_23 ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorName|38_24 ()' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorType|38_25 ()' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__LookUpFailsOnPointers|38_26 (void*)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__LookUpFailsOnFunctionPointers|38_27 (*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvokeMethodOnValueWithoutRef|38_28 (UnsafeAccessorsTests/UserDataValue,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests/Invalid:NonStatic (string)' due to: 'Method has zero rva'.
Compiled: 160/222
Executing the native assembler: "clang" -c -x assembler -o /var/folders/5w/jj_7d0cn7qjc2hq2xb1tz2wm0000gn/T/mono_aot_YsV0VE.o /var/folders/5w/jj_7d0cn7qjc2hq2xb1tz2wm0000gn/T/mono_aot_YsV0VE
Executing the native linker: "clang" --shared -o /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll.dylib.tmp /var/folders/5w/jj_7d0cn7qjc2hq2xb1tz2wm0000gn/T/mono_aot_YsV0VE.o "-Wl,-install_name,UnsafeAccessorsTests.dll.dylib"
Executing dsymutil: dsymutil "/Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll.dylib"
JIT time: 54 ms, Generation time: 10 ms, Assembly+Link time: 1267 ms.

Risk

Low risk.

@fanyang-monofanyang-mono added this to the 8.0.0 milestone Aug 29, 2023
@lambdageeklambdageek added the Servicing-consider Issue for next servicing release review label Aug 29, 2023
@fanyang-mono

Copy link
Copy Markdown
Member

/azp run runtime-extra-platforms

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@fanyang-mono

Copy link
Copy Markdown
Member

CI failures are all know issues.

@SamMonoRTSamMonoRT added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Aug 29, 2023
@SamMonoRT

Copy link
Copy Markdown
Member

cc @carlossanlop - this is ready to be merged. Thank you

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Codegen-AOT-monoServicing-approvedApproved for servicing release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@fanyang-mono@SamMonoRT@marek-safar@lambdageek@carlossanlop
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
[release/8.0] [Mono] Fix unsafe accessor related issue for full AOT by github-actions[bot] · Pull Request #91270 · dotnet/runtime · GitHub
Skip to content

[release/8.0] [Mono] Fix unsafe accessor related issue for full AOT - #91270

Merged
carlossanlop merged 2 commits into
release/8.0from
backport/pr-91216-to-release/8.0
Aug 29, 2023
Merged

[release/8.0] [Mono] Fix unsafe accessor related issue for full AOT#91270
carlossanlop merged 2 commits into
release/8.0from
backport/pr-91216-to-release/8.0

Conversation

@github-actions

@github-actionsgithub-actionsBot commented Aug 29, 2023

Copy link
Copy Markdown
Contributor

Backport of #91216 to release/8.0

/cc @fanyang-mono

Customer Impact

Prior to this PR, the customer might hit an assertion or a SIGSEGV, when using UnsafeAccessor with full AOT. This PR fixes those issues by

  1. Skip type parameter check, when it is a wrapper of WRAPPER_SUBTYPE_UNSAFE_ACCESSOR
  2. Only encode when member_name is not NULL

Testing

Local testing:

  • Prior to this PR, full aot compilation for UnsafeAccessorsTests.dll encountered an assertion:
$ MONO_ENV_OPTIONS=--aot=full,llvm,llvm-path=$PWD/bin/mono/osx.x64.Debug obj/mono/osx.x64.Debug/mono/mini/mono-sgen tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll
Mono Ahead of Time compiler - compiling assembly /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll
AOTID 8F3DEAB0-F411-CE52-1D92-7B714F55D60F
Failed to load methodspec 0x2b000003 due to Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies..
Run with MONO_LOG_LEVEL=debug for more information.
Failed to load methodspec 0x2b000004 due to Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies..
Run with MONO_LOG_LEVEL=debug for more information.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:CallPrivateConstructorClass ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:CallPrivateConstructorClass (string)' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataValue UnsafeAccessorsTests:CallPrivateConstructorValue (string)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:_MVV (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:_mvv (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:Verify_InvalidTargetUnsafeAccessor ()' due to: 'Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:<Verify_CallCtorWithEmptyNotNullName>g__CallPrivateConstructorWithEmptyName|11_0 ()' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_CallCtorAsMethod>g__CallPrivateConstructor|12_0 (UnsafeAccessorsTests/UserDataClass,string)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_CallCtorAsMethodValue>g__CallPrivateConstructor|13_0 (UnsafeAccessorsTests/UserDataValue&,string)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessStaticFieldClass>g__GetPrivateStaticField|14_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessFieldClass>g__GetPrivateField|15_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessStaticFieldValue>g__GetPrivateStaticField|16_0 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessFieldValue>g__GetPrivateField|17_0 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessStaticMethodClass>g__GetPrivateStaticMethod|18_0 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessMethodClass>g__GetPrivateMethod|19_0 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_AccessStaticMethodVoidClass>g__GetPrivateStaticMethod|22_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_AccessMethodVoidClass>g__GetPrivateMethod|23_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessStaticMethodValue>g__GetPrivateStaticMethod|24_0 (UnsafeAccessorsTests/UserDataValue,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessMethodValue>g__GetPrivateMethod|25_0 (UnsafeAccessorsTests/UserDataValue&,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_IgnoreCustomModifier>g__CallPrivateGetter|26_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_IgnoreCustomModifier>g__CallPrivateSetter|26_1 (UnsafeAccessorsTests/UserDataClass,string)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_PreciseMatchCustomModifier>g__CallPrivateMethod|27_0 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_UnmanagedCallConvBitAreTreatedAsCustomModifiersAndIgnored>g__CallCdeclMethod|28_0 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_UnmanagedCallConvBitAreTreatedAsCustomModifiersAndIgnored>g__CallStdcallMethod|28_1 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_ManagedUnmanagedFunctionPointersDontMatch>g__CallCdeclMethod|29_2 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_ManagedUnmanagedFunctionPointersDontMatch>g__CallManagedMethod|29_3 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__OnBase|32_2 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__BaseVirtual|32_3 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__OnDerived|32_4 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__Abstract|32_5 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__Virtual|32_6 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__NewVirtual|32_7 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InheritanceFieldResolution>g__FieldOnBase|33_1 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InheritanceFieldResolution>g__FieldOnDerived|33_2 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__MethodNotFound|34_9 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticMethodNotFound|34_10 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFound|34_11 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFoundStaticMismatch1|34_12 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFoundStaticMismatch2|34_13 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticFieldNotFound|34_14 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__CallPointerMethod|34_15 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'int UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticMethodWithDifferentReturnType|34_16 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessorAmbiguousMatch>g__CallAmbiguousMethod|35_1 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldReturnMustBeByRefClass|38_16 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldReturnMustBeByRefValue|38_17 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldArgumentMustBeByRef|38_18 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldMustHaveSingleArgument|38_19 (UnsafeAccessorsTests/UserDataClass,int)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__StaticFieldMustHaveSingleArgument|38_20 (UnsafeAccessorsTests/UserDataClass,int)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidKindValue|38_21 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorSignatureClass|38_22 ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataValue& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorSignatureValue|38_23 ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorName|38_24 ()' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorType|38_25 ()' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__LookUpFailsOnPointers|38_26 (void*)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__LookUpFailsOnFunctionPointers|38_27 (*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvokeMethodOnValueWithoutRef|38_28 (UnsafeAccessorsTests/UserDataValue,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests/Invalid:NonStatic (string)' due to: 'Method has zero rva'.
* Assertion at /Users/yangfan/Documents/work/dotnet_3/runtime/src/mono/mono/mini/method-to-ir.c:6456, condition `!sig->has_type_parameters' not met
=================================================================
Native Crash Reporting
=================================================================
Got a SIGABRT 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:
=================================================================
0x10eca9747 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : dump_native_stacktrace
0x10eca96b1 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_dump_native_crash_info
0x10eb9c230 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_handle_native_crash
0x10eca8ed9 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : sigabrt_signal_handler
0x7ff8035445ed - /usr/lib/system/libsystem_platform.dylib : _sigtramp
0xd - Unknown
0x7ff80343db45 - /usr/lib/system/libsystem_c.dylib : abort
0x10e861302 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : monoeg_assert_abort
0x10e879596 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_log_write_logfile
0x10e8764e1 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : structured_log_adapter
0x10e861c1a - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : monoeg_g_logstr
0x10e8617bb - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : monoeg_g_logv_nofree
0x10e86198d - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : monoeg_assertion_message
0x10e8619fc - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_assertion_message
0x10ea9eab8 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_method_to_ir
0x10ea73c27 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mini_method_compile
0x10eb661f2 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : compile_method
0x10eb5c1fc - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : compile_methods
0x10eb56086 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : aot_assembly
0x10eb53369 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_aot_assemblies
0x10eb4a4b5 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : main_thread_handler
0x10eb48da2 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_main
0x10e7a7c68 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_main_with_options
0x10e7a7c32 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : main
0x7ff8031bd41f - /usr/lib/dyld : start
=================================================================
External Debugger Dump:
=================================================================
=================================================================
Basic Fault Address Reporting
=================================================================
Memory around native instruction pointer (0x7ff8034df202):0x7ff8034df1f2 ff ff c3 90 90 90 b8 48 01 00 02 49 89 ca 0f 05 .......H...I....
0x7ff8034df202 73 08 48 89 c7 e9 df 9a ff ff c3 90 90 90 b8 53 s.H............S
0x7ff8034df212 00 00 02 49 89 ca 0f 05 73 08 48 89 c7 e9 c7 9a ...I....s.H.....
0x7ff8034df222 ff ff c3 90 90 90 b8 83 01 00 02 49 89 ca 0f 05 ...........I....
Abort trap: 6
  • With this fix, full aot compilation for UnsafeAccessorsTests.dll finished without error:
$ MONO_ENV_OPTIONS=--aot=full obj/mono/osx.x64.Debug/mono/mini/mono-sgen tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll
Mono Ahead of Time compiler - compiling assembly /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll
AOTID C5C2367F-8ED9-67C5-FB74-D8B534ECE071
Failed to load methodspec 0x2b000003 due to Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies..
Run with MONO_LOG_LEVEL=debug for more information.
Failed to load methodspec 0x2b000004 due to Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies..
Run with MONO_LOG_LEVEL=debug for more information.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:CallPrivateConstructorClass ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:CallPrivateConstructorClass (string)' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataValue UnsafeAccessorsTests:CallPrivateConstructorValue (string)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:_MVV (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:_mvv (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:Verify_InvalidTargetUnsafeAccessor ()' due to: 'Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:<Verify_CallCtorWithEmptyNotNullName>g__CallPrivateConstructorWithEmptyName|11_0 ()' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_CallCtorAsMethod>g__CallPrivateConstructor|12_0 (UnsafeAccessorsTests/UserDataClass,string)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_CallCtorAsMethodValue>g__CallPrivateConstructor|13_0 (UnsafeAccessorsTests/UserDataValue&,string)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessStaticFieldClass>g__GetPrivateStaticField|14_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessFieldClass>g__GetPrivateField|15_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessStaticFieldValue>g__GetPrivateStaticField|16_0 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessFieldValue>g__GetPrivateField|17_0 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessStaticMethodClass>g__GetPrivateStaticMethod|18_0 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessMethodClass>g__GetPrivateMethod|19_0 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_AccessStaticMethodVoidClass>g__GetPrivateStaticMethod|22_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_AccessMethodVoidClass>g__GetPrivateMethod|23_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessStaticMethodValue>g__GetPrivateStaticMethod|24_0 (UnsafeAccessorsTests/UserDataValue,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessMethodValue>g__GetPrivateMethod|25_0 (UnsafeAccessorsTests/UserDataValue&,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_IgnoreCustomModifier>g__CallPrivateGetter|26_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_IgnoreCustomModifier>g__CallPrivateSetter|26_1 (UnsafeAccessorsTests/UserDataClass,string)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_PreciseMatchCustomModifier>g__CallPrivateMethod|27_0 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_UnmanagedCallConvBitAreTreatedAsCustomModifiersAndIgnored>g__CallCdeclMethod|28_0 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_UnmanagedCallConvBitAreTreatedAsCustomModifiersAndIgnored>g__CallStdcallMethod|28_1 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_ManagedUnmanagedFunctionPointersDontMatch>g__CallCdeclMethod|29_2 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_ManagedUnmanagedFunctionPointersDontMatch>g__CallManagedMethod|29_3 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__OnBase|32_2 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__BaseVirtual|32_3 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__OnDerived|32_4 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__Abstract|32_5 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__Virtual|32_6 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__NewVirtual|32_7 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InheritanceFieldResolution>g__FieldOnBase|33_1 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InheritanceFieldResolution>g__FieldOnDerived|33_2 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__MethodNotFound|34_9 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticMethodNotFound|34_10 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFound|34_11 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFoundStaticMismatch1|34_12 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFoundStaticMismatch2|34_13 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticFieldNotFound|34_14 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__CallPointerMethod|34_15 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'int UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticMethodWithDifferentReturnType|34_16 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessorAmbiguousMatch>g__CallAmbiguousMethod|35_1 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldReturnMustBeByRefClass|38_16 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldReturnMustBeByRefValue|38_17 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldArgumentMustBeByRef|38_18 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldMustHaveSingleArgument|38_19 (UnsafeAccessorsTests/UserDataClass,int)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__StaticFieldMustHaveSingleArgument|38_20 (UnsafeAccessorsTests/UserDataClass,int)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidKindValue|38_21 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorSignatureClass|38_22 ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataValue& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorSignatureValue|38_23 ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorName|38_24 ()' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorType|38_25 ()' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__LookUpFailsOnPointers|38_26 (void*)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__LookUpFailsOnFunctionPointers|38_27 (*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvokeMethodOnValueWithoutRef|38_28 (UnsafeAccessorsTests/UserDataValue,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests/Invalid:NonStatic (string)' due to: 'Method has zero rva'.
Compiled: 160/222
Executing the native assembler: "clang" -c -x assembler -o /var/folders/5w/jj_7d0cn7qjc2hq2xb1tz2wm0000gn/T/mono_aot_YsV0VE.o /var/folders/5w/jj_7d0cn7qjc2hq2xb1tz2wm0000gn/T/mono_aot_YsV0VE
Executing the native linker: "clang" --shared -o /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll.dylib.tmp /var/folders/5w/jj_7d0cn7qjc2hq2xb1tz2wm0000gn/T/mono_aot_YsV0VE.o "-Wl,-install_name,UnsafeAccessorsTests.dll.dylib"
Executing dsymutil: dsymutil "/Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll.dylib"
JIT time: 54 ms, Generation time: 10 ms, Assembly+Link time: 1267 ms.

Risk

Low risk.

@fanyang-monofanyang-mono added this to the 8.0.0 milestone Aug 29, 2023
@lambdageeklambdageek added the Servicing-consider Issue for next servicing release review label Aug 29, 2023
@fanyang-mono

Copy link
Copy Markdown
Member

/azp run runtime-extra-platforms

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@fanyang-mono

Copy link
Copy Markdown
Member

CI failures are all know issues.

@SamMonoRTSamMonoRT added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Aug 29, 2023
@SamMonoRT

Copy link
Copy Markdown
Member

cc @carlossanlop - this is ready to be merged. Thank you

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Codegen-AOT-monoServicing-approvedApproved for servicing release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@fanyang-mono@SamMonoRT@marek-safar@lambdageek@carlossanlop
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' [release/8.0] [Mono] Fix unsafe accessor related issue for full AOT by github-actions[bot] · Pull Request #91270 · dotnet/runtime · GitHub
Skip to content

[release/8.0] [Mono] Fix unsafe accessor related issue for full AOT - #91270

Merged
carlossanlop merged 2 commits into
release/8.0from
backport/pr-91216-to-release/8.0
Aug 29, 2023
Merged

[release/8.0] [Mono] Fix unsafe accessor related issue for full AOT#91270
carlossanlop merged 2 commits into
release/8.0from
backport/pr-91216-to-release/8.0

Conversation

@github-actions

@github-actionsgithub-actionsBot commented Aug 29, 2023

Copy link
Copy Markdown
Contributor

Backport of #91216 to release/8.0

/cc @fanyang-mono

Customer Impact

Prior to this PR, the customer might hit an assertion or a SIGSEGV, when using UnsafeAccessor with full AOT. This PR fixes those issues by

  1. Skip type parameter check, when it is a wrapper of WRAPPER_SUBTYPE_UNSAFE_ACCESSOR
  2. Only encode when member_name is not NULL

Testing

Local testing:

  • Prior to this PR, full aot compilation for UnsafeAccessorsTests.dll encountered an assertion:
$ MONO_ENV_OPTIONS=--aot=full,llvm,llvm-path=$PWD/bin/mono/osx.x64.Debug obj/mono/osx.x64.Debug/mono/mini/mono-sgen tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll
Mono Ahead of Time compiler - compiling assembly /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll
AOTID 8F3DEAB0-F411-CE52-1D92-7B714F55D60F
Failed to load methodspec 0x2b000003 due to Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies..
Run with MONO_LOG_LEVEL=debug for more information.
Failed to load methodspec 0x2b000004 due to Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies..
Run with MONO_LOG_LEVEL=debug for more information.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:CallPrivateConstructorClass ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:CallPrivateConstructorClass (string)' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataValue UnsafeAccessorsTests:CallPrivateConstructorValue (string)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:_MVV (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:_mvv (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:Verify_InvalidTargetUnsafeAccessor ()' due to: 'Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:<Verify_CallCtorWithEmptyNotNullName>g__CallPrivateConstructorWithEmptyName|11_0 ()' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_CallCtorAsMethod>g__CallPrivateConstructor|12_0 (UnsafeAccessorsTests/UserDataClass,string)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_CallCtorAsMethodValue>g__CallPrivateConstructor|13_0 (UnsafeAccessorsTests/UserDataValue&,string)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessStaticFieldClass>g__GetPrivateStaticField|14_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessFieldClass>g__GetPrivateField|15_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessStaticFieldValue>g__GetPrivateStaticField|16_0 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessFieldValue>g__GetPrivateField|17_0 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessStaticMethodClass>g__GetPrivateStaticMethod|18_0 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessMethodClass>g__GetPrivateMethod|19_0 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_AccessStaticMethodVoidClass>g__GetPrivateStaticMethod|22_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_AccessMethodVoidClass>g__GetPrivateMethod|23_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessStaticMethodValue>g__GetPrivateStaticMethod|24_0 (UnsafeAccessorsTests/UserDataValue,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessMethodValue>g__GetPrivateMethod|25_0 (UnsafeAccessorsTests/UserDataValue&,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_IgnoreCustomModifier>g__CallPrivateGetter|26_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_IgnoreCustomModifier>g__CallPrivateSetter|26_1 (UnsafeAccessorsTests/UserDataClass,string)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_PreciseMatchCustomModifier>g__CallPrivateMethod|27_0 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_UnmanagedCallConvBitAreTreatedAsCustomModifiersAndIgnored>g__CallCdeclMethod|28_0 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_UnmanagedCallConvBitAreTreatedAsCustomModifiersAndIgnored>g__CallStdcallMethod|28_1 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_ManagedUnmanagedFunctionPointersDontMatch>g__CallCdeclMethod|29_2 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_ManagedUnmanagedFunctionPointersDontMatch>g__CallManagedMethod|29_3 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__OnBase|32_2 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__BaseVirtual|32_3 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__OnDerived|32_4 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__Abstract|32_5 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__Virtual|32_6 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__NewVirtual|32_7 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InheritanceFieldResolution>g__FieldOnBase|33_1 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InheritanceFieldResolution>g__FieldOnDerived|33_2 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__MethodNotFound|34_9 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticMethodNotFound|34_10 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFound|34_11 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFoundStaticMismatch1|34_12 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFoundStaticMismatch2|34_13 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticFieldNotFound|34_14 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__CallPointerMethod|34_15 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'int UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticMethodWithDifferentReturnType|34_16 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessorAmbiguousMatch>g__CallAmbiguousMethod|35_1 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldReturnMustBeByRefClass|38_16 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldReturnMustBeByRefValue|38_17 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldArgumentMustBeByRef|38_18 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldMustHaveSingleArgument|38_19 (UnsafeAccessorsTests/UserDataClass,int)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__StaticFieldMustHaveSingleArgument|38_20 (UnsafeAccessorsTests/UserDataClass,int)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidKindValue|38_21 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorSignatureClass|38_22 ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataValue& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorSignatureValue|38_23 ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorName|38_24 ()' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorType|38_25 ()' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__LookUpFailsOnPointers|38_26 (void*)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__LookUpFailsOnFunctionPointers|38_27 (*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvokeMethodOnValueWithoutRef|38_28 (UnsafeAccessorsTests/UserDataValue,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests/Invalid:NonStatic (string)' due to: 'Method has zero rva'.
* Assertion at /Users/yangfan/Documents/work/dotnet_3/runtime/src/mono/mono/mini/method-to-ir.c:6456, condition `!sig->has_type_parameters' not met
=================================================================
Native Crash Reporting
=================================================================
Got a SIGABRT 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:
=================================================================
0x10eca9747 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : dump_native_stacktrace
0x10eca96b1 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_dump_native_crash_info
0x10eb9c230 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_handle_native_crash
0x10eca8ed9 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : sigabrt_signal_handler
0x7ff8035445ed - /usr/lib/system/libsystem_platform.dylib : _sigtramp
0xd - Unknown
0x7ff80343db45 - /usr/lib/system/libsystem_c.dylib : abort
0x10e861302 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : monoeg_assert_abort
0x10e879596 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_log_write_logfile
0x10e8764e1 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : structured_log_adapter
0x10e861c1a - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : monoeg_g_logstr
0x10e8617bb - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : monoeg_g_logv_nofree
0x10e86198d - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : monoeg_assertion_message
0x10e8619fc - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_assertion_message
0x10ea9eab8 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_method_to_ir
0x10ea73c27 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mini_method_compile
0x10eb661f2 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : compile_method
0x10eb5c1fc - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : compile_methods
0x10eb56086 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : aot_assembly
0x10eb53369 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_aot_assemblies
0x10eb4a4b5 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : main_thread_handler
0x10eb48da2 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_main
0x10e7a7c68 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_main_with_options
0x10e7a7c32 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : main
0x7ff8031bd41f - /usr/lib/dyld : start
=================================================================
External Debugger Dump:
=================================================================
=================================================================
Basic Fault Address Reporting
=================================================================
Memory around native instruction pointer (0x7ff8034df202):0x7ff8034df1f2 ff ff c3 90 90 90 b8 48 01 00 02 49 89 ca 0f 05 .......H...I....
0x7ff8034df202 73 08 48 89 c7 e9 df 9a ff ff c3 90 90 90 b8 53 s.H............S
0x7ff8034df212 00 00 02 49 89 ca 0f 05 73 08 48 89 c7 e9 c7 9a ...I....s.H.....
0x7ff8034df222 ff ff c3 90 90 90 b8 83 01 00 02 49 89 ca 0f 05 ...........I....
Abort trap: 6
  • With this fix, full aot compilation for UnsafeAccessorsTests.dll finished without error:
$ MONO_ENV_OPTIONS=--aot=full obj/mono/osx.x64.Debug/mono/mini/mono-sgen tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll
Mono Ahead of Time compiler - compiling assembly /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll
AOTID C5C2367F-8ED9-67C5-FB74-D8B534ECE071
Failed to load methodspec 0x2b000003 due to Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies..
Run with MONO_LOG_LEVEL=debug for more information.
Failed to load methodspec 0x2b000004 due to Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies..
Run with MONO_LOG_LEVEL=debug for more information.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:CallPrivateConstructorClass ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:CallPrivateConstructorClass (string)' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataValue UnsafeAccessorsTests:CallPrivateConstructorValue (string)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:_MVV (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:_mvv (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:Verify_InvalidTargetUnsafeAccessor ()' due to: 'Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:<Verify_CallCtorWithEmptyNotNullName>g__CallPrivateConstructorWithEmptyName|11_0 ()' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_CallCtorAsMethod>g__CallPrivateConstructor|12_0 (UnsafeAccessorsTests/UserDataClass,string)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_CallCtorAsMethodValue>g__CallPrivateConstructor|13_0 (UnsafeAccessorsTests/UserDataValue&,string)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessStaticFieldClass>g__GetPrivateStaticField|14_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessFieldClass>g__GetPrivateField|15_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessStaticFieldValue>g__GetPrivateStaticField|16_0 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessFieldValue>g__GetPrivateField|17_0 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessStaticMethodClass>g__GetPrivateStaticMethod|18_0 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessMethodClass>g__GetPrivateMethod|19_0 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_AccessStaticMethodVoidClass>g__GetPrivateStaticMethod|22_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_AccessMethodVoidClass>g__GetPrivateMethod|23_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessStaticMethodValue>g__GetPrivateStaticMethod|24_0 (UnsafeAccessorsTests/UserDataValue,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessMethodValue>g__GetPrivateMethod|25_0 (UnsafeAccessorsTests/UserDataValue&,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_IgnoreCustomModifier>g__CallPrivateGetter|26_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_IgnoreCustomModifier>g__CallPrivateSetter|26_1 (UnsafeAccessorsTests/UserDataClass,string)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_PreciseMatchCustomModifier>g__CallPrivateMethod|27_0 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_UnmanagedCallConvBitAreTreatedAsCustomModifiersAndIgnored>g__CallCdeclMethod|28_0 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_UnmanagedCallConvBitAreTreatedAsCustomModifiersAndIgnored>g__CallStdcallMethod|28_1 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_ManagedUnmanagedFunctionPointersDontMatch>g__CallCdeclMethod|29_2 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_ManagedUnmanagedFunctionPointersDontMatch>g__CallManagedMethod|29_3 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__OnBase|32_2 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__BaseVirtual|32_3 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__OnDerived|32_4 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__Abstract|32_5 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__Virtual|32_6 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__NewVirtual|32_7 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InheritanceFieldResolution>g__FieldOnBase|33_1 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InheritanceFieldResolution>g__FieldOnDerived|33_2 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__MethodNotFound|34_9 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticMethodNotFound|34_10 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFound|34_11 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFoundStaticMismatch1|34_12 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFoundStaticMismatch2|34_13 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticFieldNotFound|34_14 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__CallPointerMethod|34_15 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'int UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticMethodWithDifferentReturnType|34_16 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessorAmbiguousMatch>g__CallAmbiguousMethod|35_1 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldReturnMustBeByRefClass|38_16 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldReturnMustBeByRefValue|38_17 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldArgumentMustBeByRef|38_18 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldMustHaveSingleArgument|38_19 (UnsafeAccessorsTests/UserDataClass,int)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__StaticFieldMustHaveSingleArgument|38_20 (UnsafeAccessorsTests/UserDataClass,int)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidKindValue|38_21 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorSignatureClass|38_22 ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataValue& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorSignatureValue|38_23 ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorName|38_24 ()' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorType|38_25 ()' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__LookUpFailsOnPointers|38_26 (void*)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__LookUpFailsOnFunctionPointers|38_27 (*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvokeMethodOnValueWithoutRef|38_28 (UnsafeAccessorsTests/UserDataValue,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests/Invalid:NonStatic (string)' due to: 'Method has zero rva'.
Compiled: 160/222
Executing the native assembler: "clang" -c -x assembler -o /var/folders/5w/jj_7d0cn7qjc2hq2xb1tz2wm0000gn/T/mono_aot_YsV0VE.o /var/folders/5w/jj_7d0cn7qjc2hq2xb1tz2wm0000gn/T/mono_aot_YsV0VE
Executing the native linker: "clang" --shared -o /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll.dylib.tmp /var/folders/5w/jj_7d0cn7qjc2hq2xb1tz2wm0000gn/T/mono_aot_YsV0VE.o "-Wl,-install_name,UnsafeAccessorsTests.dll.dylib"
Executing dsymutil: dsymutil "/Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll.dylib"
JIT time: 54 ms, Generation time: 10 ms, Assembly+Link time: 1267 ms.

Risk

Low risk.

@fanyang-monofanyang-mono added this to the 8.0.0 milestone Aug 29, 2023
@lambdageeklambdageek added the Servicing-consider Issue for next servicing release review label Aug 29, 2023
@fanyang-mono

Copy link
Copy Markdown
Member

/azp run runtime-extra-platforms

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@fanyang-mono

Copy link
Copy Markdown
Member

CI failures are all know issues.

@SamMonoRTSamMonoRT added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Aug 29, 2023
@SamMonoRT

Copy link
Copy Markdown
Member

cc @carlossanlop - this is ready to be merged. Thank you

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Codegen-AOT-monoServicing-approvedApproved for servicing release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@fanyang-mono@SamMonoRT@marek-safar@lambdageek@carlossanlop
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' [release/8.0] [Mono] Fix unsafe accessor related issue for full AOT by github-actions[bot] · Pull Request #91270 · dotnet/runtime · GitHub
Skip to content

[release/8.0] [Mono] Fix unsafe accessor related issue for full AOT - #91270

Merged
carlossanlop merged 2 commits into
release/8.0from
backport/pr-91216-to-release/8.0
Aug 29, 2023
Merged

[release/8.0] [Mono] Fix unsafe accessor related issue for full AOT#91270
carlossanlop merged 2 commits into
release/8.0from
backport/pr-91216-to-release/8.0

Conversation

@github-actions

@github-actionsgithub-actionsBot commented Aug 29, 2023

Copy link
Copy Markdown
Contributor

Backport of #91216 to release/8.0

/cc @fanyang-mono

Customer Impact

Prior to this PR, the customer might hit an assertion or a SIGSEGV, when using UnsafeAccessor with full AOT. This PR fixes those issues by

  1. Skip type parameter check, when it is a wrapper of WRAPPER_SUBTYPE_UNSAFE_ACCESSOR
  2. Only encode when member_name is not NULL

Testing

Local testing:

  • Prior to this PR, full aot compilation for UnsafeAccessorsTests.dll encountered an assertion:
$ MONO_ENV_OPTIONS=--aot=full,llvm,llvm-path=$PWD/bin/mono/osx.x64.Debug obj/mono/osx.x64.Debug/mono/mini/mono-sgen tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll
Mono Ahead of Time compiler - compiling assembly /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll
AOTID 8F3DEAB0-F411-CE52-1D92-7B714F55D60F
Failed to load methodspec 0x2b000003 due to Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies..
Run with MONO_LOG_LEVEL=debug for more information.
Failed to load methodspec 0x2b000004 due to Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies..
Run with MONO_LOG_LEVEL=debug for more information.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:CallPrivateConstructorClass ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:CallPrivateConstructorClass (string)' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataValue UnsafeAccessorsTests:CallPrivateConstructorValue (string)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:_MVV (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:_mvv (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:Verify_InvalidTargetUnsafeAccessor ()' due to: 'Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:<Verify_CallCtorWithEmptyNotNullName>g__CallPrivateConstructorWithEmptyName|11_0 ()' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_CallCtorAsMethod>g__CallPrivateConstructor|12_0 (UnsafeAccessorsTests/UserDataClass,string)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_CallCtorAsMethodValue>g__CallPrivateConstructor|13_0 (UnsafeAccessorsTests/UserDataValue&,string)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessStaticFieldClass>g__GetPrivateStaticField|14_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessFieldClass>g__GetPrivateField|15_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessStaticFieldValue>g__GetPrivateStaticField|16_0 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessFieldValue>g__GetPrivateField|17_0 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessStaticMethodClass>g__GetPrivateStaticMethod|18_0 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessMethodClass>g__GetPrivateMethod|19_0 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_AccessStaticMethodVoidClass>g__GetPrivateStaticMethod|22_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_AccessMethodVoidClass>g__GetPrivateMethod|23_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessStaticMethodValue>g__GetPrivateStaticMethod|24_0 (UnsafeAccessorsTests/UserDataValue,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessMethodValue>g__GetPrivateMethod|25_0 (UnsafeAccessorsTests/UserDataValue&,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_IgnoreCustomModifier>g__CallPrivateGetter|26_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_IgnoreCustomModifier>g__CallPrivateSetter|26_1 (UnsafeAccessorsTests/UserDataClass,string)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_PreciseMatchCustomModifier>g__CallPrivateMethod|27_0 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_UnmanagedCallConvBitAreTreatedAsCustomModifiersAndIgnored>g__CallCdeclMethod|28_0 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_UnmanagedCallConvBitAreTreatedAsCustomModifiersAndIgnored>g__CallStdcallMethod|28_1 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_ManagedUnmanagedFunctionPointersDontMatch>g__CallCdeclMethod|29_2 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_ManagedUnmanagedFunctionPointersDontMatch>g__CallManagedMethod|29_3 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__OnBase|32_2 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__BaseVirtual|32_3 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__OnDerived|32_4 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__Abstract|32_5 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__Virtual|32_6 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__NewVirtual|32_7 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InheritanceFieldResolution>g__FieldOnBase|33_1 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InheritanceFieldResolution>g__FieldOnDerived|33_2 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__MethodNotFound|34_9 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticMethodNotFound|34_10 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFound|34_11 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFoundStaticMismatch1|34_12 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFoundStaticMismatch2|34_13 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticFieldNotFound|34_14 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__CallPointerMethod|34_15 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'int UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticMethodWithDifferentReturnType|34_16 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessorAmbiguousMatch>g__CallAmbiguousMethod|35_1 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldReturnMustBeByRefClass|38_16 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldReturnMustBeByRefValue|38_17 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldArgumentMustBeByRef|38_18 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldMustHaveSingleArgument|38_19 (UnsafeAccessorsTests/UserDataClass,int)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__StaticFieldMustHaveSingleArgument|38_20 (UnsafeAccessorsTests/UserDataClass,int)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidKindValue|38_21 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorSignatureClass|38_22 ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataValue& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorSignatureValue|38_23 ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorName|38_24 ()' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorType|38_25 ()' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__LookUpFailsOnPointers|38_26 (void*)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__LookUpFailsOnFunctionPointers|38_27 (*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvokeMethodOnValueWithoutRef|38_28 (UnsafeAccessorsTests/UserDataValue,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests/Invalid:NonStatic (string)' due to: 'Method has zero rva'.
* Assertion at /Users/yangfan/Documents/work/dotnet_3/runtime/src/mono/mono/mini/method-to-ir.c:6456, condition `!sig->has_type_parameters' not met
=================================================================
Native Crash Reporting
=================================================================
Got a SIGABRT 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:
=================================================================
0x10eca9747 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : dump_native_stacktrace
0x10eca96b1 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_dump_native_crash_info
0x10eb9c230 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_handle_native_crash
0x10eca8ed9 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : sigabrt_signal_handler
0x7ff8035445ed - /usr/lib/system/libsystem_platform.dylib : _sigtramp
0xd - Unknown
0x7ff80343db45 - /usr/lib/system/libsystem_c.dylib : abort
0x10e861302 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : monoeg_assert_abort
0x10e879596 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_log_write_logfile
0x10e8764e1 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : structured_log_adapter
0x10e861c1a - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : monoeg_g_logstr
0x10e8617bb - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : monoeg_g_logv_nofree
0x10e86198d - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : monoeg_assertion_message
0x10e8619fc - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_assertion_message
0x10ea9eab8 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_method_to_ir
0x10ea73c27 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mini_method_compile
0x10eb661f2 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : compile_method
0x10eb5c1fc - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : compile_methods
0x10eb56086 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : aot_assembly
0x10eb53369 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_aot_assemblies
0x10eb4a4b5 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : main_thread_handler
0x10eb48da2 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_main
0x10e7a7c68 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_main_with_options
0x10e7a7c32 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : main
0x7ff8031bd41f - /usr/lib/dyld : start
=================================================================
External Debugger Dump:
=================================================================
=================================================================
Basic Fault Address Reporting
=================================================================
Memory around native instruction pointer (0x7ff8034df202):0x7ff8034df1f2 ff ff c3 90 90 90 b8 48 01 00 02 49 89 ca 0f 05 .......H...I....
0x7ff8034df202 73 08 48 89 c7 e9 df 9a ff ff c3 90 90 90 b8 53 s.H............S
0x7ff8034df212 00 00 02 49 89 ca 0f 05 73 08 48 89 c7 e9 c7 9a ...I....s.H.....
0x7ff8034df222 ff ff c3 90 90 90 b8 83 01 00 02 49 89 ca 0f 05 ...........I....
Abort trap: 6
  • With this fix, full aot compilation for UnsafeAccessorsTests.dll finished without error:
$ MONO_ENV_OPTIONS=--aot=full obj/mono/osx.x64.Debug/mono/mini/mono-sgen tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll
Mono Ahead of Time compiler - compiling assembly /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll
AOTID C5C2367F-8ED9-67C5-FB74-D8B534ECE071
Failed to load methodspec 0x2b000003 due to Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies..
Run with MONO_LOG_LEVEL=debug for more information.
Failed to load methodspec 0x2b000004 due to Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies..
Run with MONO_LOG_LEVEL=debug for more information.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:CallPrivateConstructorClass ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:CallPrivateConstructorClass (string)' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataValue UnsafeAccessorsTests:CallPrivateConstructorValue (string)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:_MVV (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:_mvv (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:Verify_InvalidTargetUnsafeAccessor ()' due to: 'Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:<Verify_CallCtorWithEmptyNotNullName>g__CallPrivateConstructorWithEmptyName|11_0 ()' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_CallCtorAsMethod>g__CallPrivateConstructor|12_0 (UnsafeAccessorsTests/UserDataClass,string)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_CallCtorAsMethodValue>g__CallPrivateConstructor|13_0 (UnsafeAccessorsTests/UserDataValue&,string)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessStaticFieldClass>g__GetPrivateStaticField|14_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessFieldClass>g__GetPrivateField|15_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessStaticFieldValue>g__GetPrivateStaticField|16_0 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessFieldValue>g__GetPrivateField|17_0 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessStaticMethodClass>g__GetPrivateStaticMethod|18_0 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessMethodClass>g__GetPrivateMethod|19_0 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_AccessStaticMethodVoidClass>g__GetPrivateStaticMethod|22_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_AccessMethodVoidClass>g__GetPrivateMethod|23_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessStaticMethodValue>g__GetPrivateStaticMethod|24_0 (UnsafeAccessorsTests/UserDataValue,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessMethodValue>g__GetPrivateMethod|25_0 (UnsafeAccessorsTests/UserDataValue&,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_IgnoreCustomModifier>g__CallPrivateGetter|26_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_IgnoreCustomModifier>g__CallPrivateSetter|26_1 (UnsafeAccessorsTests/UserDataClass,string)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_PreciseMatchCustomModifier>g__CallPrivateMethod|27_0 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_UnmanagedCallConvBitAreTreatedAsCustomModifiersAndIgnored>g__CallCdeclMethod|28_0 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_UnmanagedCallConvBitAreTreatedAsCustomModifiersAndIgnored>g__CallStdcallMethod|28_1 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_ManagedUnmanagedFunctionPointersDontMatch>g__CallCdeclMethod|29_2 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_ManagedUnmanagedFunctionPointersDontMatch>g__CallManagedMethod|29_3 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__OnBase|32_2 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__BaseVirtual|32_3 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__OnDerived|32_4 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__Abstract|32_5 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__Virtual|32_6 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__NewVirtual|32_7 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InheritanceFieldResolution>g__FieldOnBase|33_1 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InheritanceFieldResolution>g__FieldOnDerived|33_2 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__MethodNotFound|34_9 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticMethodNotFound|34_10 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFound|34_11 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFoundStaticMismatch1|34_12 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFoundStaticMismatch2|34_13 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticFieldNotFound|34_14 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__CallPointerMethod|34_15 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'int UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticMethodWithDifferentReturnType|34_16 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessorAmbiguousMatch>g__CallAmbiguousMethod|35_1 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldReturnMustBeByRefClass|38_16 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldReturnMustBeByRefValue|38_17 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldArgumentMustBeByRef|38_18 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldMustHaveSingleArgument|38_19 (UnsafeAccessorsTests/UserDataClass,int)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__StaticFieldMustHaveSingleArgument|38_20 (UnsafeAccessorsTests/UserDataClass,int)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidKindValue|38_21 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorSignatureClass|38_22 ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataValue& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorSignatureValue|38_23 ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorName|38_24 ()' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorType|38_25 ()' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__LookUpFailsOnPointers|38_26 (void*)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__LookUpFailsOnFunctionPointers|38_27 (*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvokeMethodOnValueWithoutRef|38_28 (UnsafeAccessorsTests/UserDataValue,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests/Invalid:NonStatic (string)' due to: 'Method has zero rva'.
Compiled: 160/222
Executing the native assembler: "clang" -c -x assembler -o /var/folders/5w/jj_7d0cn7qjc2hq2xb1tz2wm0000gn/T/mono_aot_YsV0VE.o /var/folders/5w/jj_7d0cn7qjc2hq2xb1tz2wm0000gn/T/mono_aot_YsV0VE
Executing the native linker: "clang" --shared -o /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll.dylib.tmp /var/folders/5w/jj_7d0cn7qjc2hq2xb1tz2wm0000gn/T/mono_aot_YsV0VE.o "-Wl,-install_name,UnsafeAccessorsTests.dll.dylib"
Executing dsymutil: dsymutil "/Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll.dylib"
JIT time: 54 ms, Generation time: 10 ms, Assembly+Link time: 1267 ms.

Risk

Low risk.

@fanyang-monofanyang-mono added this to the 8.0.0 milestone Aug 29, 2023
@lambdageeklambdageek added the Servicing-consider Issue for next servicing release review label Aug 29, 2023
@fanyang-mono

Copy link
Copy Markdown
Member

/azp run runtime-extra-platforms

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@fanyang-mono

Copy link
Copy Markdown
Member

CI failures are all know issues.

@SamMonoRTSamMonoRT added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Aug 29, 2023
@SamMonoRT

Copy link
Copy Markdown
Member

cc @carlossanlop - this is ready to be merged. Thank you

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Codegen-AOT-monoServicing-approvedApproved for servicing release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@fanyang-mono@SamMonoRT@marek-safar@lambdageek@carlossanlop
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' [release/8.0] [Mono] Fix unsafe accessor related issue for full AOT by github-actions[bot] · Pull Request #91270 · dotnet/runtime · GitHub
Skip to content

[release/8.0] [Mono] Fix unsafe accessor related issue for full AOT - #91270

Merged
carlossanlop merged 2 commits into
release/8.0from
backport/pr-91216-to-release/8.0
Aug 29, 2023
Merged

[release/8.0] [Mono] Fix unsafe accessor related issue for full AOT#91270
carlossanlop merged 2 commits into
release/8.0from
backport/pr-91216-to-release/8.0

Conversation

@github-actions

@github-actionsgithub-actionsBot commented Aug 29, 2023

Copy link
Copy Markdown
Contributor

Backport of #91216 to release/8.0

/cc @fanyang-mono

Customer Impact

Prior to this PR, the customer might hit an assertion or a SIGSEGV, when using UnsafeAccessor with full AOT. This PR fixes those issues by

  1. Skip type parameter check, when it is a wrapper of WRAPPER_SUBTYPE_UNSAFE_ACCESSOR
  2. Only encode when member_name is not NULL

Testing

Local testing:

  • Prior to this PR, full aot compilation for UnsafeAccessorsTests.dll encountered an assertion:
$ MONO_ENV_OPTIONS=--aot=full,llvm,llvm-path=$PWD/bin/mono/osx.x64.Debug obj/mono/osx.x64.Debug/mono/mini/mono-sgen tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll
Mono Ahead of Time compiler - compiling assembly /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll
AOTID 8F3DEAB0-F411-CE52-1D92-7B714F55D60F
Failed to load methodspec 0x2b000003 due to Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies..
Run with MONO_LOG_LEVEL=debug for more information.
Failed to load methodspec 0x2b000004 due to Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies..
Run with MONO_LOG_LEVEL=debug for more information.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:CallPrivateConstructorClass ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:CallPrivateConstructorClass (string)' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataValue UnsafeAccessorsTests:CallPrivateConstructorValue (string)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:_MVV (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:_mvv (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:Verify_InvalidTargetUnsafeAccessor ()' due to: 'Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:<Verify_CallCtorWithEmptyNotNullName>g__CallPrivateConstructorWithEmptyName|11_0 ()' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_CallCtorAsMethod>g__CallPrivateConstructor|12_0 (UnsafeAccessorsTests/UserDataClass,string)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_CallCtorAsMethodValue>g__CallPrivateConstructor|13_0 (UnsafeAccessorsTests/UserDataValue&,string)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessStaticFieldClass>g__GetPrivateStaticField|14_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessFieldClass>g__GetPrivateField|15_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessStaticFieldValue>g__GetPrivateStaticField|16_0 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessFieldValue>g__GetPrivateField|17_0 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessStaticMethodClass>g__GetPrivateStaticMethod|18_0 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessMethodClass>g__GetPrivateMethod|19_0 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_AccessStaticMethodVoidClass>g__GetPrivateStaticMethod|22_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_AccessMethodVoidClass>g__GetPrivateMethod|23_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessStaticMethodValue>g__GetPrivateStaticMethod|24_0 (UnsafeAccessorsTests/UserDataValue,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessMethodValue>g__GetPrivateMethod|25_0 (UnsafeAccessorsTests/UserDataValue&,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_IgnoreCustomModifier>g__CallPrivateGetter|26_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_IgnoreCustomModifier>g__CallPrivateSetter|26_1 (UnsafeAccessorsTests/UserDataClass,string)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_PreciseMatchCustomModifier>g__CallPrivateMethod|27_0 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_UnmanagedCallConvBitAreTreatedAsCustomModifiersAndIgnored>g__CallCdeclMethod|28_0 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_UnmanagedCallConvBitAreTreatedAsCustomModifiersAndIgnored>g__CallStdcallMethod|28_1 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_ManagedUnmanagedFunctionPointersDontMatch>g__CallCdeclMethod|29_2 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_ManagedUnmanagedFunctionPointersDontMatch>g__CallManagedMethod|29_3 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__OnBase|32_2 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__BaseVirtual|32_3 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__OnDerived|32_4 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__Abstract|32_5 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__Virtual|32_6 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__NewVirtual|32_7 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InheritanceFieldResolution>g__FieldOnBase|33_1 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InheritanceFieldResolution>g__FieldOnDerived|33_2 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__MethodNotFound|34_9 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticMethodNotFound|34_10 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFound|34_11 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFoundStaticMismatch1|34_12 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFoundStaticMismatch2|34_13 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticFieldNotFound|34_14 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__CallPointerMethod|34_15 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'int UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticMethodWithDifferentReturnType|34_16 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessorAmbiguousMatch>g__CallAmbiguousMethod|35_1 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldReturnMustBeByRefClass|38_16 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldReturnMustBeByRefValue|38_17 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldArgumentMustBeByRef|38_18 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldMustHaveSingleArgument|38_19 (UnsafeAccessorsTests/UserDataClass,int)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__StaticFieldMustHaveSingleArgument|38_20 (UnsafeAccessorsTests/UserDataClass,int)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidKindValue|38_21 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorSignatureClass|38_22 ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataValue& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorSignatureValue|38_23 ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorName|38_24 ()' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorType|38_25 ()' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__LookUpFailsOnPointers|38_26 (void*)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__LookUpFailsOnFunctionPointers|38_27 (*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvokeMethodOnValueWithoutRef|38_28 (UnsafeAccessorsTests/UserDataValue,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests/Invalid:NonStatic (string)' due to: 'Method has zero rva'.
* Assertion at /Users/yangfan/Documents/work/dotnet_3/runtime/src/mono/mono/mini/method-to-ir.c:6456, condition `!sig->has_type_parameters' not met
=================================================================
Native Crash Reporting
=================================================================
Got a SIGABRT 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:
=================================================================
0x10eca9747 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : dump_native_stacktrace
0x10eca96b1 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_dump_native_crash_info
0x10eb9c230 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_handle_native_crash
0x10eca8ed9 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : sigabrt_signal_handler
0x7ff8035445ed - /usr/lib/system/libsystem_platform.dylib : _sigtramp
0xd - Unknown
0x7ff80343db45 - /usr/lib/system/libsystem_c.dylib : abort
0x10e861302 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : monoeg_assert_abort
0x10e879596 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_log_write_logfile
0x10e8764e1 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : structured_log_adapter
0x10e861c1a - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : monoeg_g_logstr
0x10e8617bb - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : monoeg_g_logv_nofree
0x10e86198d - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : monoeg_assertion_message
0x10e8619fc - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_assertion_message
0x10ea9eab8 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_method_to_ir
0x10ea73c27 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mini_method_compile
0x10eb661f2 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : compile_method
0x10eb5c1fc - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : compile_methods
0x10eb56086 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : aot_assembly
0x10eb53369 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_aot_assemblies
0x10eb4a4b5 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : main_thread_handler
0x10eb48da2 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_main
0x10e7a7c68 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_main_with_options
0x10e7a7c32 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : main
0x7ff8031bd41f - /usr/lib/dyld : start
=================================================================
External Debugger Dump:
=================================================================
=================================================================
Basic Fault Address Reporting
=================================================================
Memory around native instruction pointer (0x7ff8034df202):0x7ff8034df1f2 ff ff c3 90 90 90 b8 48 01 00 02 49 89 ca 0f 05 .......H...I....
0x7ff8034df202 73 08 48 89 c7 e9 df 9a ff ff c3 90 90 90 b8 53 s.H............S
0x7ff8034df212 00 00 02 49 89 ca 0f 05 73 08 48 89 c7 e9 c7 9a ...I....s.H.....
0x7ff8034df222 ff ff c3 90 90 90 b8 83 01 00 02 49 89 ca 0f 05 ...........I....
Abort trap: 6
  • With this fix, full aot compilation for UnsafeAccessorsTests.dll finished without error:
$ MONO_ENV_OPTIONS=--aot=full obj/mono/osx.x64.Debug/mono/mini/mono-sgen tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll
Mono Ahead of Time compiler - compiling assembly /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll
AOTID C5C2367F-8ED9-67C5-FB74-D8B534ECE071
Failed to load methodspec 0x2b000003 due to Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies..
Run with MONO_LOG_LEVEL=debug for more information.
Failed to load methodspec 0x2b000004 due to Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies..
Run with MONO_LOG_LEVEL=debug for more information.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:CallPrivateConstructorClass ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:CallPrivateConstructorClass (string)' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataValue UnsafeAccessorsTests:CallPrivateConstructorValue (string)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:_MVV (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:_mvv (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:Verify_InvalidTargetUnsafeAccessor ()' due to: 'Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:<Verify_CallCtorWithEmptyNotNullName>g__CallPrivateConstructorWithEmptyName|11_0 ()' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_CallCtorAsMethod>g__CallPrivateConstructor|12_0 (UnsafeAccessorsTests/UserDataClass,string)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_CallCtorAsMethodValue>g__CallPrivateConstructor|13_0 (UnsafeAccessorsTests/UserDataValue&,string)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessStaticFieldClass>g__GetPrivateStaticField|14_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessFieldClass>g__GetPrivateField|15_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessStaticFieldValue>g__GetPrivateStaticField|16_0 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessFieldValue>g__GetPrivateField|17_0 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessStaticMethodClass>g__GetPrivateStaticMethod|18_0 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessMethodClass>g__GetPrivateMethod|19_0 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_AccessStaticMethodVoidClass>g__GetPrivateStaticMethod|22_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_AccessMethodVoidClass>g__GetPrivateMethod|23_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessStaticMethodValue>g__GetPrivateStaticMethod|24_0 (UnsafeAccessorsTests/UserDataValue,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessMethodValue>g__GetPrivateMethod|25_0 (UnsafeAccessorsTests/UserDataValue&,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_IgnoreCustomModifier>g__CallPrivateGetter|26_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_IgnoreCustomModifier>g__CallPrivateSetter|26_1 (UnsafeAccessorsTests/UserDataClass,string)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_PreciseMatchCustomModifier>g__CallPrivateMethod|27_0 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_UnmanagedCallConvBitAreTreatedAsCustomModifiersAndIgnored>g__CallCdeclMethod|28_0 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_UnmanagedCallConvBitAreTreatedAsCustomModifiersAndIgnored>g__CallStdcallMethod|28_1 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_ManagedUnmanagedFunctionPointersDontMatch>g__CallCdeclMethod|29_2 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_ManagedUnmanagedFunctionPointersDontMatch>g__CallManagedMethod|29_3 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__OnBase|32_2 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__BaseVirtual|32_3 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__OnDerived|32_4 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__Abstract|32_5 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__Virtual|32_6 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__NewVirtual|32_7 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InheritanceFieldResolution>g__FieldOnBase|33_1 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InheritanceFieldResolution>g__FieldOnDerived|33_2 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__MethodNotFound|34_9 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticMethodNotFound|34_10 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFound|34_11 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFoundStaticMismatch1|34_12 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFoundStaticMismatch2|34_13 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticFieldNotFound|34_14 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__CallPointerMethod|34_15 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'int UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticMethodWithDifferentReturnType|34_16 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessorAmbiguousMatch>g__CallAmbiguousMethod|35_1 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldReturnMustBeByRefClass|38_16 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldReturnMustBeByRefValue|38_17 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldArgumentMustBeByRef|38_18 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldMustHaveSingleArgument|38_19 (UnsafeAccessorsTests/UserDataClass,int)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__StaticFieldMustHaveSingleArgument|38_20 (UnsafeAccessorsTests/UserDataClass,int)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidKindValue|38_21 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorSignatureClass|38_22 ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataValue& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorSignatureValue|38_23 ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorName|38_24 ()' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorType|38_25 ()' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__LookUpFailsOnPointers|38_26 (void*)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__LookUpFailsOnFunctionPointers|38_27 (*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvokeMethodOnValueWithoutRef|38_28 (UnsafeAccessorsTests/UserDataValue,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests/Invalid:NonStatic (string)' due to: 'Method has zero rva'.
Compiled: 160/222
Executing the native assembler: "clang" -c -x assembler -o /var/folders/5w/jj_7d0cn7qjc2hq2xb1tz2wm0000gn/T/mono_aot_YsV0VE.o /var/folders/5w/jj_7d0cn7qjc2hq2xb1tz2wm0000gn/T/mono_aot_YsV0VE
Executing the native linker: "clang" --shared -o /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll.dylib.tmp /var/folders/5w/jj_7d0cn7qjc2hq2xb1tz2wm0000gn/T/mono_aot_YsV0VE.o "-Wl,-install_name,UnsafeAccessorsTests.dll.dylib"
Executing dsymutil: dsymutil "/Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll.dylib"
JIT time: 54 ms, Generation time: 10 ms, Assembly+Link time: 1267 ms.

Risk

Low risk.

@fanyang-monofanyang-mono added this to the 8.0.0 milestone Aug 29, 2023
@lambdageeklambdageek added the Servicing-consider Issue for next servicing release review label Aug 29, 2023
@fanyang-mono

Copy link
Copy Markdown
Member

/azp run runtime-extra-platforms

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@fanyang-mono

Copy link
Copy Markdown
Member

CI failures are all know issues.

@SamMonoRTSamMonoRT added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Aug 29, 2023
@SamMonoRT

Copy link
Copy Markdown
Member

cc @carlossanlop - this is ready to be merged. Thank you

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Codegen-AOT-monoServicing-approvedApproved for servicing release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@fanyang-mono@SamMonoRT@marek-safar@lambdageek@carlossanlop
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' [release/8.0] [Mono] Fix unsafe accessor related issue for full AOT by github-actions[bot] · Pull Request #91270 · dotnet/runtime · GitHub
Skip to content

[release/8.0] [Mono] Fix unsafe accessor related issue for full AOT - #91270

Merged
carlossanlop merged 2 commits into
release/8.0from
backport/pr-91216-to-release/8.0
Aug 29, 2023
Merged

[release/8.0] [Mono] Fix unsafe accessor related issue for full AOT#91270
carlossanlop merged 2 commits into
release/8.0from
backport/pr-91216-to-release/8.0

Conversation

@github-actions

@github-actionsgithub-actionsBot commented Aug 29, 2023

Copy link
Copy Markdown
Contributor

Backport of #91216 to release/8.0

/cc @fanyang-mono

Customer Impact

Prior to this PR, the customer might hit an assertion or a SIGSEGV, when using UnsafeAccessor with full AOT. This PR fixes those issues by

  1. Skip type parameter check, when it is a wrapper of WRAPPER_SUBTYPE_UNSAFE_ACCESSOR
  2. Only encode when member_name is not NULL

Testing

Local testing:

  • Prior to this PR, full aot compilation for UnsafeAccessorsTests.dll encountered an assertion:
$ MONO_ENV_OPTIONS=--aot=full,llvm,llvm-path=$PWD/bin/mono/osx.x64.Debug obj/mono/osx.x64.Debug/mono/mini/mono-sgen tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll
Mono Ahead of Time compiler - compiling assembly /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll
AOTID 8F3DEAB0-F411-CE52-1D92-7B714F55D60F
Failed to load methodspec 0x2b000003 due to Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies..
Run with MONO_LOG_LEVEL=debug for more information.
Failed to load methodspec 0x2b000004 due to Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies..
Run with MONO_LOG_LEVEL=debug for more information.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:CallPrivateConstructorClass ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:CallPrivateConstructorClass (string)' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataValue UnsafeAccessorsTests:CallPrivateConstructorValue (string)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:_MVV (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:_mvv (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:Verify_InvalidTargetUnsafeAccessor ()' due to: 'Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:<Verify_CallCtorWithEmptyNotNullName>g__CallPrivateConstructorWithEmptyName|11_0 ()' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_CallCtorAsMethod>g__CallPrivateConstructor|12_0 (UnsafeAccessorsTests/UserDataClass,string)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_CallCtorAsMethodValue>g__CallPrivateConstructor|13_0 (UnsafeAccessorsTests/UserDataValue&,string)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessStaticFieldClass>g__GetPrivateStaticField|14_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessFieldClass>g__GetPrivateField|15_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessStaticFieldValue>g__GetPrivateStaticField|16_0 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessFieldValue>g__GetPrivateField|17_0 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessStaticMethodClass>g__GetPrivateStaticMethod|18_0 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessMethodClass>g__GetPrivateMethod|19_0 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_AccessStaticMethodVoidClass>g__GetPrivateStaticMethod|22_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_AccessMethodVoidClass>g__GetPrivateMethod|23_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessStaticMethodValue>g__GetPrivateStaticMethod|24_0 (UnsafeAccessorsTests/UserDataValue,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessMethodValue>g__GetPrivateMethod|25_0 (UnsafeAccessorsTests/UserDataValue&,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_IgnoreCustomModifier>g__CallPrivateGetter|26_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_IgnoreCustomModifier>g__CallPrivateSetter|26_1 (UnsafeAccessorsTests/UserDataClass,string)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_PreciseMatchCustomModifier>g__CallPrivateMethod|27_0 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_UnmanagedCallConvBitAreTreatedAsCustomModifiersAndIgnored>g__CallCdeclMethod|28_0 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_UnmanagedCallConvBitAreTreatedAsCustomModifiersAndIgnored>g__CallStdcallMethod|28_1 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_ManagedUnmanagedFunctionPointersDontMatch>g__CallCdeclMethod|29_2 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_ManagedUnmanagedFunctionPointersDontMatch>g__CallManagedMethod|29_3 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__OnBase|32_2 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__BaseVirtual|32_3 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__OnDerived|32_4 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__Abstract|32_5 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__Virtual|32_6 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__NewVirtual|32_7 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InheritanceFieldResolution>g__FieldOnBase|33_1 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InheritanceFieldResolution>g__FieldOnDerived|33_2 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__MethodNotFound|34_9 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticMethodNotFound|34_10 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFound|34_11 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFoundStaticMismatch1|34_12 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFoundStaticMismatch2|34_13 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticFieldNotFound|34_14 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__CallPointerMethod|34_15 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'int UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticMethodWithDifferentReturnType|34_16 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessorAmbiguousMatch>g__CallAmbiguousMethod|35_1 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldReturnMustBeByRefClass|38_16 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldReturnMustBeByRefValue|38_17 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldArgumentMustBeByRef|38_18 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldMustHaveSingleArgument|38_19 (UnsafeAccessorsTests/UserDataClass,int)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__StaticFieldMustHaveSingleArgument|38_20 (UnsafeAccessorsTests/UserDataClass,int)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidKindValue|38_21 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorSignatureClass|38_22 ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataValue& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorSignatureValue|38_23 ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorName|38_24 ()' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorType|38_25 ()' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__LookUpFailsOnPointers|38_26 (void*)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__LookUpFailsOnFunctionPointers|38_27 (*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvokeMethodOnValueWithoutRef|38_28 (UnsafeAccessorsTests/UserDataValue,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests/Invalid:NonStatic (string)' due to: 'Method has zero rva'.
* Assertion at /Users/yangfan/Documents/work/dotnet_3/runtime/src/mono/mono/mini/method-to-ir.c:6456, condition `!sig->has_type_parameters' not met
=================================================================
Native Crash Reporting
=================================================================
Got a SIGABRT 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:
=================================================================
0x10eca9747 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : dump_native_stacktrace
0x10eca96b1 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_dump_native_crash_info
0x10eb9c230 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_handle_native_crash
0x10eca8ed9 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : sigabrt_signal_handler
0x7ff8035445ed - /usr/lib/system/libsystem_platform.dylib : _sigtramp
0xd - Unknown
0x7ff80343db45 - /usr/lib/system/libsystem_c.dylib : abort
0x10e861302 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : monoeg_assert_abort
0x10e879596 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_log_write_logfile
0x10e8764e1 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : structured_log_adapter
0x10e861c1a - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : monoeg_g_logstr
0x10e8617bb - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : monoeg_g_logv_nofree
0x10e86198d - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : monoeg_assertion_message
0x10e8619fc - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_assertion_message
0x10ea9eab8 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_method_to_ir
0x10ea73c27 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mini_method_compile
0x10eb661f2 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : compile_method
0x10eb5c1fc - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : compile_methods
0x10eb56086 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : aot_assembly
0x10eb53369 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_aot_assemblies
0x10eb4a4b5 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : main_thread_handler
0x10eb48da2 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_main
0x10e7a7c68 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_main_with_options
0x10e7a7c32 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : main
0x7ff8031bd41f - /usr/lib/dyld : start
=================================================================
External Debugger Dump:
=================================================================
=================================================================
Basic Fault Address Reporting
=================================================================
Memory around native instruction pointer (0x7ff8034df202):0x7ff8034df1f2 ff ff c3 90 90 90 b8 48 01 00 02 49 89 ca 0f 05 .......H...I....
0x7ff8034df202 73 08 48 89 c7 e9 df 9a ff ff c3 90 90 90 b8 53 s.H............S
0x7ff8034df212 00 00 02 49 89 ca 0f 05 73 08 48 89 c7 e9 c7 9a ...I....s.H.....
0x7ff8034df222 ff ff c3 90 90 90 b8 83 01 00 02 49 89 ca 0f 05 ...........I....
Abort trap: 6
  • With this fix, full aot compilation for UnsafeAccessorsTests.dll finished without error:
$ MONO_ENV_OPTIONS=--aot=full obj/mono/osx.x64.Debug/mono/mini/mono-sgen tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll
Mono Ahead of Time compiler - compiling assembly /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll
AOTID C5C2367F-8ED9-67C5-FB74-D8B534ECE071
Failed to load methodspec 0x2b000003 due to Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies..
Run with MONO_LOG_LEVEL=debug for more information.
Failed to load methodspec 0x2b000004 due to Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies..
Run with MONO_LOG_LEVEL=debug for more information.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:CallPrivateConstructorClass ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:CallPrivateConstructorClass (string)' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataValue UnsafeAccessorsTests:CallPrivateConstructorValue (string)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:_MVV (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:_mvv (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:Verify_InvalidTargetUnsafeAccessor ()' due to: 'Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:<Verify_CallCtorWithEmptyNotNullName>g__CallPrivateConstructorWithEmptyName|11_0 ()' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_CallCtorAsMethod>g__CallPrivateConstructor|12_0 (UnsafeAccessorsTests/UserDataClass,string)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_CallCtorAsMethodValue>g__CallPrivateConstructor|13_0 (UnsafeAccessorsTests/UserDataValue&,string)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessStaticFieldClass>g__GetPrivateStaticField|14_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessFieldClass>g__GetPrivateField|15_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessStaticFieldValue>g__GetPrivateStaticField|16_0 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessFieldValue>g__GetPrivateField|17_0 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessStaticMethodClass>g__GetPrivateStaticMethod|18_0 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessMethodClass>g__GetPrivateMethod|19_0 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_AccessStaticMethodVoidClass>g__GetPrivateStaticMethod|22_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_AccessMethodVoidClass>g__GetPrivateMethod|23_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessStaticMethodValue>g__GetPrivateStaticMethod|24_0 (UnsafeAccessorsTests/UserDataValue,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessMethodValue>g__GetPrivateMethod|25_0 (UnsafeAccessorsTests/UserDataValue&,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_IgnoreCustomModifier>g__CallPrivateGetter|26_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_IgnoreCustomModifier>g__CallPrivateSetter|26_1 (UnsafeAccessorsTests/UserDataClass,string)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_PreciseMatchCustomModifier>g__CallPrivateMethod|27_0 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_UnmanagedCallConvBitAreTreatedAsCustomModifiersAndIgnored>g__CallCdeclMethod|28_0 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_UnmanagedCallConvBitAreTreatedAsCustomModifiersAndIgnored>g__CallStdcallMethod|28_1 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_ManagedUnmanagedFunctionPointersDontMatch>g__CallCdeclMethod|29_2 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_ManagedUnmanagedFunctionPointersDontMatch>g__CallManagedMethod|29_3 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__OnBase|32_2 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__BaseVirtual|32_3 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__OnDerived|32_4 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__Abstract|32_5 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__Virtual|32_6 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__NewVirtual|32_7 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InheritanceFieldResolution>g__FieldOnBase|33_1 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InheritanceFieldResolution>g__FieldOnDerived|33_2 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__MethodNotFound|34_9 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticMethodNotFound|34_10 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFound|34_11 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFoundStaticMismatch1|34_12 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFoundStaticMismatch2|34_13 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticFieldNotFound|34_14 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__CallPointerMethod|34_15 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'int UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticMethodWithDifferentReturnType|34_16 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessorAmbiguousMatch>g__CallAmbiguousMethod|35_1 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldReturnMustBeByRefClass|38_16 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldReturnMustBeByRefValue|38_17 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldArgumentMustBeByRef|38_18 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldMustHaveSingleArgument|38_19 (UnsafeAccessorsTests/UserDataClass,int)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__StaticFieldMustHaveSingleArgument|38_20 (UnsafeAccessorsTests/UserDataClass,int)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidKindValue|38_21 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorSignatureClass|38_22 ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataValue& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorSignatureValue|38_23 ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorName|38_24 ()' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorType|38_25 ()' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__LookUpFailsOnPointers|38_26 (void*)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__LookUpFailsOnFunctionPointers|38_27 (*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvokeMethodOnValueWithoutRef|38_28 (UnsafeAccessorsTests/UserDataValue,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests/Invalid:NonStatic (string)' due to: 'Method has zero rva'.
Compiled: 160/222
Executing the native assembler: "clang" -c -x assembler -o /var/folders/5w/jj_7d0cn7qjc2hq2xb1tz2wm0000gn/T/mono_aot_YsV0VE.o /var/folders/5w/jj_7d0cn7qjc2hq2xb1tz2wm0000gn/T/mono_aot_YsV0VE
Executing the native linker: "clang" --shared -o /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll.dylib.tmp /var/folders/5w/jj_7d0cn7qjc2hq2xb1tz2wm0000gn/T/mono_aot_YsV0VE.o "-Wl,-install_name,UnsafeAccessorsTests.dll.dylib"
Executing dsymutil: dsymutil "/Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll.dylib"
JIT time: 54 ms, Generation time: 10 ms, Assembly+Link time: 1267 ms.

Risk

Low risk.

@fanyang-monofanyang-mono added this to the 8.0.0 milestone Aug 29, 2023
@lambdageeklambdageek added the Servicing-consider Issue for next servicing release review label Aug 29, 2023
@fanyang-mono

Copy link
Copy Markdown
Member

/azp run runtime-extra-platforms

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@fanyang-mono

Copy link
Copy Markdown
Member

CI failures are all know issues.

@SamMonoRTSamMonoRT added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Aug 29, 2023
@SamMonoRT

Copy link
Copy Markdown
Member

cc @carlossanlop - this is ready to be merged. Thank you

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Codegen-AOT-monoServicing-approvedApproved for servicing release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@fanyang-mono@SamMonoRT@marek-safar@lambdageek@carlossanlop
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' [release/8.0] [Mono] Fix unsafe accessor related issue for full AOT by github-actions[bot] · Pull Request #91270 · dotnet/runtime · GitHub
Skip to content

[release/8.0] [Mono] Fix unsafe accessor related issue for full AOT - #91270

Merged
carlossanlop merged 2 commits into
release/8.0from
backport/pr-91216-to-release/8.0
Aug 29, 2023
Merged

[release/8.0] [Mono] Fix unsafe accessor related issue for full AOT#91270
carlossanlop merged 2 commits into
release/8.0from
backport/pr-91216-to-release/8.0

Conversation

@github-actions

@github-actionsgithub-actionsBot commented Aug 29, 2023

Copy link
Copy Markdown
Contributor

Backport of #91216 to release/8.0

/cc @fanyang-mono

Customer Impact

Prior to this PR, the customer might hit an assertion or a SIGSEGV, when using UnsafeAccessor with full AOT. This PR fixes those issues by

  1. Skip type parameter check, when it is a wrapper of WRAPPER_SUBTYPE_UNSAFE_ACCESSOR
  2. Only encode when member_name is not NULL

Testing

Local testing:

  • Prior to this PR, full aot compilation for UnsafeAccessorsTests.dll encountered an assertion:
$ MONO_ENV_OPTIONS=--aot=full,llvm,llvm-path=$PWD/bin/mono/osx.x64.Debug obj/mono/osx.x64.Debug/mono/mini/mono-sgen tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll
Mono Ahead of Time compiler - compiling assembly /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll
AOTID 8F3DEAB0-F411-CE52-1D92-7B714F55D60F
Failed to load methodspec 0x2b000003 due to Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies..
Run with MONO_LOG_LEVEL=debug for more information.
Failed to load methodspec 0x2b000004 due to Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies..
Run with MONO_LOG_LEVEL=debug for more information.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:CallPrivateConstructorClass ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:CallPrivateConstructorClass (string)' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataValue UnsafeAccessorsTests:CallPrivateConstructorValue (string)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:_MVV (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:_mvv (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:Verify_InvalidTargetUnsafeAccessor ()' due to: 'Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:<Verify_CallCtorWithEmptyNotNullName>g__CallPrivateConstructorWithEmptyName|11_0 ()' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_CallCtorAsMethod>g__CallPrivateConstructor|12_0 (UnsafeAccessorsTests/UserDataClass,string)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_CallCtorAsMethodValue>g__CallPrivateConstructor|13_0 (UnsafeAccessorsTests/UserDataValue&,string)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessStaticFieldClass>g__GetPrivateStaticField|14_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessFieldClass>g__GetPrivateField|15_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessStaticFieldValue>g__GetPrivateStaticField|16_0 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessFieldValue>g__GetPrivateField|17_0 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessStaticMethodClass>g__GetPrivateStaticMethod|18_0 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessMethodClass>g__GetPrivateMethod|19_0 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_AccessStaticMethodVoidClass>g__GetPrivateStaticMethod|22_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_AccessMethodVoidClass>g__GetPrivateMethod|23_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessStaticMethodValue>g__GetPrivateStaticMethod|24_0 (UnsafeAccessorsTests/UserDataValue,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessMethodValue>g__GetPrivateMethod|25_0 (UnsafeAccessorsTests/UserDataValue&,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_IgnoreCustomModifier>g__CallPrivateGetter|26_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_IgnoreCustomModifier>g__CallPrivateSetter|26_1 (UnsafeAccessorsTests/UserDataClass,string)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_PreciseMatchCustomModifier>g__CallPrivateMethod|27_0 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_UnmanagedCallConvBitAreTreatedAsCustomModifiersAndIgnored>g__CallCdeclMethod|28_0 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_UnmanagedCallConvBitAreTreatedAsCustomModifiersAndIgnored>g__CallStdcallMethod|28_1 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_ManagedUnmanagedFunctionPointersDontMatch>g__CallCdeclMethod|29_2 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_ManagedUnmanagedFunctionPointersDontMatch>g__CallManagedMethod|29_3 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__OnBase|32_2 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__BaseVirtual|32_3 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__OnDerived|32_4 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__Abstract|32_5 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__Virtual|32_6 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__NewVirtual|32_7 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InheritanceFieldResolution>g__FieldOnBase|33_1 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InheritanceFieldResolution>g__FieldOnDerived|33_2 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__MethodNotFound|34_9 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticMethodNotFound|34_10 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFound|34_11 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFoundStaticMismatch1|34_12 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFoundStaticMismatch2|34_13 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticFieldNotFound|34_14 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__CallPointerMethod|34_15 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'int UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticMethodWithDifferentReturnType|34_16 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessorAmbiguousMatch>g__CallAmbiguousMethod|35_1 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldReturnMustBeByRefClass|38_16 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldReturnMustBeByRefValue|38_17 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldArgumentMustBeByRef|38_18 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldMustHaveSingleArgument|38_19 (UnsafeAccessorsTests/UserDataClass,int)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__StaticFieldMustHaveSingleArgument|38_20 (UnsafeAccessorsTests/UserDataClass,int)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidKindValue|38_21 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorSignatureClass|38_22 ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataValue& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorSignatureValue|38_23 ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorName|38_24 ()' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorType|38_25 ()' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__LookUpFailsOnPointers|38_26 (void*)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__LookUpFailsOnFunctionPointers|38_27 (*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvokeMethodOnValueWithoutRef|38_28 (UnsafeAccessorsTests/UserDataValue,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests/Invalid:NonStatic (string)' due to: 'Method has zero rva'.
* Assertion at /Users/yangfan/Documents/work/dotnet_3/runtime/src/mono/mono/mini/method-to-ir.c:6456, condition `!sig->has_type_parameters' not met
=================================================================
Native Crash Reporting
=================================================================
Got a SIGABRT 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:
=================================================================
0x10eca9747 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : dump_native_stacktrace
0x10eca96b1 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_dump_native_crash_info
0x10eb9c230 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_handle_native_crash
0x10eca8ed9 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : sigabrt_signal_handler
0x7ff8035445ed - /usr/lib/system/libsystem_platform.dylib : _sigtramp
0xd - Unknown
0x7ff80343db45 - /usr/lib/system/libsystem_c.dylib : abort
0x10e861302 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : monoeg_assert_abort
0x10e879596 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_log_write_logfile
0x10e8764e1 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : structured_log_adapter
0x10e861c1a - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : monoeg_g_logstr
0x10e8617bb - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : monoeg_g_logv_nofree
0x10e86198d - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : monoeg_assertion_message
0x10e8619fc - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_assertion_message
0x10ea9eab8 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_method_to_ir
0x10ea73c27 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mini_method_compile
0x10eb661f2 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : compile_method
0x10eb5c1fc - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : compile_methods
0x10eb56086 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : aot_assembly
0x10eb53369 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_aot_assemblies
0x10eb4a4b5 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : main_thread_handler
0x10eb48da2 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_main
0x10e7a7c68 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_main_with_options
0x10e7a7c32 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : main
0x7ff8031bd41f - /usr/lib/dyld : start
=================================================================
External Debugger Dump:
=================================================================
=================================================================
Basic Fault Address Reporting
=================================================================
Memory around native instruction pointer (0x7ff8034df202):0x7ff8034df1f2 ff ff c3 90 90 90 b8 48 01 00 02 49 89 ca 0f 05 .......H...I....
0x7ff8034df202 73 08 48 89 c7 e9 df 9a ff ff c3 90 90 90 b8 53 s.H............S
0x7ff8034df212 00 00 02 49 89 ca 0f 05 73 08 48 89 c7 e9 c7 9a ...I....s.H.....
0x7ff8034df222 ff ff c3 90 90 90 b8 83 01 00 02 49 89 ca 0f 05 ...........I....
Abort trap: 6
  • With this fix, full aot compilation for UnsafeAccessorsTests.dll finished without error:
$ MONO_ENV_OPTIONS=--aot=full obj/mono/osx.x64.Debug/mono/mini/mono-sgen tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll
Mono Ahead of Time compiler - compiling assembly /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll
AOTID C5C2367F-8ED9-67C5-FB74-D8B534ECE071
Failed to load methodspec 0x2b000003 due to Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies..
Run with MONO_LOG_LEVEL=debug for more information.
Failed to load methodspec 0x2b000004 due to Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies..
Run with MONO_LOG_LEVEL=debug for more information.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:CallPrivateConstructorClass ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:CallPrivateConstructorClass (string)' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataValue UnsafeAccessorsTests:CallPrivateConstructorValue (string)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:_MVV (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:_mvv (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:Verify_InvalidTargetUnsafeAccessor ()' due to: 'Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:<Verify_CallCtorWithEmptyNotNullName>g__CallPrivateConstructorWithEmptyName|11_0 ()' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_CallCtorAsMethod>g__CallPrivateConstructor|12_0 (UnsafeAccessorsTests/UserDataClass,string)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_CallCtorAsMethodValue>g__CallPrivateConstructor|13_0 (UnsafeAccessorsTests/UserDataValue&,string)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessStaticFieldClass>g__GetPrivateStaticField|14_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessFieldClass>g__GetPrivateField|15_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessStaticFieldValue>g__GetPrivateStaticField|16_0 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessFieldValue>g__GetPrivateField|17_0 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessStaticMethodClass>g__GetPrivateStaticMethod|18_0 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessMethodClass>g__GetPrivateMethod|19_0 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_AccessStaticMethodVoidClass>g__GetPrivateStaticMethod|22_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_AccessMethodVoidClass>g__GetPrivateMethod|23_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessStaticMethodValue>g__GetPrivateStaticMethod|24_0 (UnsafeAccessorsTests/UserDataValue,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessMethodValue>g__GetPrivateMethod|25_0 (UnsafeAccessorsTests/UserDataValue&,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_IgnoreCustomModifier>g__CallPrivateGetter|26_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_IgnoreCustomModifier>g__CallPrivateSetter|26_1 (UnsafeAccessorsTests/UserDataClass,string)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_PreciseMatchCustomModifier>g__CallPrivateMethod|27_0 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_UnmanagedCallConvBitAreTreatedAsCustomModifiersAndIgnored>g__CallCdeclMethod|28_0 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_UnmanagedCallConvBitAreTreatedAsCustomModifiersAndIgnored>g__CallStdcallMethod|28_1 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_ManagedUnmanagedFunctionPointersDontMatch>g__CallCdeclMethod|29_2 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_ManagedUnmanagedFunctionPointersDontMatch>g__CallManagedMethod|29_3 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__OnBase|32_2 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__BaseVirtual|32_3 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__OnDerived|32_4 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__Abstract|32_5 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__Virtual|32_6 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__NewVirtual|32_7 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InheritanceFieldResolution>g__FieldOnBase|33_1 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InheritanceFieldResolution>g__FieldOnDerived|33_2 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__MethodNotFound|34_9 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticMethodNotFound|34_10 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFound|34_11 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFoundStaticMismatch1|34_12 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFoundStaticMismatch2|34_13 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticFieldNotFound|34_14 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__CallPointerMethod|34_15 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'int UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticMethodWithDifferentReturnType|34_16 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessorAmbiguousMatch>g__CallAmbiguousMethod|35_1 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldReturnMustBeByRefClass|38_16 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldReturnMustBeByRefValue|38_17 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldArgumentMustBeByRef|38_18 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldMustHaveSingleArgument|38_19 (UnsafeAccessorsTests/UserDataClass,int)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__StaticFieldMustHaveSingleArgument|38_20 (UnsafeAccessorsTests/UserDataClass,int)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidKindValue|38_21 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorSignatureClass|38_22 ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataValue& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorSignatureValue|38_23 ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorName|38_24 ()' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorType|38_25 ()' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__LookUpFailsOnPointers|38_26 (void*)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__LookUpFailsOnFunctionPointers|38_27 (*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvokeMethodOnValueWithoutRef|38_28 (UnsafeAccessorsTests/UserDataValue,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests/Invalid:NonStatic (string)' due to: 'Method has zero rva'.
Compiled: 160/222
Executing the native assembler: "clang" -c -x assembler -o /var/folders/5w/jj_7d0cn7qjc2hq2xb1tz2wm0000gn/T/mono_aot_YsV0VE.o /var/folders/5w/jj_7d0cn7qjc2hq2xb1tz2wm0000gn/T/mono_aot_YsV0VE
Executing the native linker: "clang" --shared -o /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll.dylib.tmp /var/folders/5w/jj_7d0cn7qjc2hq2xb1tz2wm0000gn/T/mono_aot_YsV0VE.o "-Wl,-install_name,UnsafeAccessorsTests.dll.dylib"
Executing dsymutil: dsymutil "/Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll.dylib"
JIT time: 54 ms, Generation time: 10 ms, Assembly+Link time: 1267 ms.

Risk

Low risk.

@fanyang-monofanyang-mono added this to the 8.0.0 milestone Aug 29, 2023
@lambdageeklambdageek added the Servicing-consider Issue for next servicing release review label Aug 29, 2023
@fanyang-mono

Copy link
Copy Markdown
Member

/azp run runtime-extra-platforms

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@fanyang-mono

Copy link
Copy Markdown
Member

CI failures are all know issues.

@SamMonoRTSamMonoRT added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Aug 29, 2023
@SamMonoRT

Copy link
Copy Markdown
Member

cc @carlossanlop - this is ready to be merged. Thank you

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Codegen-AOT-monoServicing-approvedApproved for servicing release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@fanyang-mono@SamMonoRT@marek-safar@lambdageek@carlossanlop
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); [release/8.0] [Mono] Fix unsafe accessor related issue for full AOT by github-actions[bot] · Pull Request #91270 · dotnet/runtime · GitHub
Skip to content

[release/8.0] [Mono] Fix unsafe accessor related issue for full AOT - #91270

Merged
carlossanlop merged 2 commits into
release/8.0from
backport/pr-91216-to-release/8.0
Aug 29, 2023
Merged

[release/8.0] [Mono] Fix unsafe accessor related issue for full AOT#91270
carlossanlop merged 2 commits into
release/8.0from
backport/pr-91216-to-release/8.0

Conversation

@github-actions

@github-actionsgithub-actionsBot commented Aug 29, 2023

Copy link
Copy Markdown
Contributor

Backport of #91216 to release/8.0

/cc @fanyang-mono

Customer Impact

Prior to this PR, the customer might hit an assertion or a SIGSEGV, when using UnsafeAccessor with full AOT. This PR fixes those issues by

  1. Skip type parameter check, when it is a wrapper of WRAPPER_SUBTYPE_UNSAFE_ACCESSOR
  2. Only encode when member_name is not NULL

Testing

Local testing:

  • Prior to this PR, full aot compilation for UnsafeAccessorsTests.dll encountered an assertion:
$ MONO_ENV_OPTIONS=--aot=full,llvm,llvm-path=$PWD/bin/mono/osx.x64.Debug obj/mono/osx.x64.Debug/mono/mini/mono-sgen tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll
Mono Ahead of Time compiler - compiling assembly /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll
AOTID 8F3DEAB0-F411-CE52-1D92-7B714F55D60F
Failed to load methodspec 0x2b000003 due to Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies..
Run with MONO_LOG_LEVEL=debug for more information.
Failed to load methodspec 0x2b000004 due to Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies..
Run with MONO_LOG_LEVEL=debug for more information.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:CallPrivateConstructorClass ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:CallPrivateConstructorClass (string)' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataValue UnsafeAccessorsTests:CallPrivateConstructorValue (string)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:_MVV (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:_mvv (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:Verify_InvalidTargetUnsafeAccessor ()' due to: 'Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:<Verify_CallCtorWithEmptyNotNullName>g__CallPrivateConstructorWithEmptyName|11_0 ()' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_CallCtorAsMethod>g__CallPrivateConstructor|12_0 (UnsafeAccessorsTests/UserDataClass,string)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_CallCtorAsMethodValue>g__CallPrivateConstructor|13_0 (UnsafeAccessorsTests/UserDataValue&,string)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessStaticFieldClass>g__GetPrivateStaticField|14_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessFieldClass>g__GetPrivateField|15_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessStaticFieldValue>g__GetPrivateStaticField|16_0 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessFieldValue>g__GetPrivateField|17_0 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessStaticMethodClass>g__GetPrivateStaticMethod|18_0 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessMethodClass>g__GetPrivateMethod|19_0 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_AccessStaticMethodVoidClass>g__GetPrivateStaticMethod|22_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_AccessMethodVoidClass>g__GetPrivateMethod|23_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessStaticMethodValue>g__GetPrivateStaticMethod|24_0 (UnsafeAccessorsTests/UserDataValue,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessMethodValue>g__GetPrivateMethod|25_0 (UnsafeAccessorsTests/UserDataValue&,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_IgnoreCustomModifier>g__CallPrivateGetter|26_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_IgnoreCustomModifier>g__CallPrivateSetter|26_1 (UnsafeAccessorsTests/UserDataClass,string)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_PreciseMatchCustomModifier>g__CallPrivateMethod|27_0 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_UnmanagedCallConvBitAreTreatedAsCustomModifiersAndIgnored>g__CallCdeclMethod|28_0 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_UnmanagedCallConvBitAreTreatedAsCustomModifiersAndIgnored>g__CallStdcallMethod|28_1 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_ManagedUnmanagedFunctionPointersDontMatch>g__CallCdeclMethod|29_2 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_ManagedUnmanagedFunctionPointersDontMatch>g__CallManagedMethod|29_3 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__OnBase|32_2 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__BaseVirtual|32_3 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__OnDerived|32_4 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__Abstract|32_5 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__Virtual|32_6 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__NewVirtual|32_7 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InheritanceFieldResolution>g__FieldOnBase|33_1 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InheritanceFieldResolution>g__FieldOnDerived|33_2 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__MethodNotFound|34_9 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticMethodNotFound|34_10 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFound|34_11 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFoundStaticMismatch1|34_12 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFoundStaticMismatch2|34_13 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticFieldNotFound|34_14 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__CallPointerMethod|34_15 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'int UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticMethodWithDifferentReturnType|34_16 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessorAmbiguousMatch>g__CallAmbiguousMethod|35_1 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldReturnMustBeByRefClass|38_16 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldReturnMustBeByRefValue|38_17 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldArgumentMustBeByRef|38_18 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldMustHaveSingleArgument|38_19 (UnsafeAccessorsTests/UserDataClass,int)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__StaticFieldMustHaveSingleArgument|38_20 (UnsafeAccessorsTests/UserDataClass,int)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidKindValue|38_21 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorSignatureClass|38_22 ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataValue& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorSignatureValue|38_23 ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorName|38_24 ()' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorType|38_25 ()' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__LookUpFailsOnPointers|38_26 (void*)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__LookUpFailsOnFunctionPointers|38_27 (*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvokeMethodOnValueWithoutRef|38_28 (UnsafeAccessorsTests/UserDataValue,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests/Invalid:NonStatic (string)' due to: 'Method has zero rva'.
* Assertion at /Users/yangfan/Documents/work/dotnet_3/runtime/src/mono/mono/mini/method-to-ir.c:6456, condition `!sig->has_type_parameters' not met
=================================================================
Native Crash Reporting
=================================================================
Got a SIGABRT 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:
=================================================================
0x10eca9747 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : dump_native_stacktrace
0x10eca96b1 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_dump_native_crash_info
0x10eb9c230 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_handle_native_crash
0x10eca8ed9 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : sigabrt_signal_handler
0x7ff8035445ed - /usr/lib/system/libsystem_platform.dylib : _sigtramp
0xd - Unknown
0x7ff80343db45 - /usr/lib/system/libsystem_c.dylib : abort
0x10e861302 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : monoeg_assert_abort
0x10e879596 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_log_write_logfile
0x10e8764e1 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : structured_log_adapter
0x10e861c1a - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : monoeg_g_logstr
0x10e8617bb - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : monoeg_g_logv_nofree
0x10e86198d - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : monoeg_assertion_message
0x10e8619fc - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_assertion_message
0x10ea9eab8 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_method_to_ir
0x10ea73c27 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mini_method_compile
0x10eb661f2 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : compile_method
0x10eb5c1fc - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : compile_methods
0x10eb56086 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : aot_assembly
0x10eb53369 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_aot_assemblies
0x10eb4a4b5 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : main_thread_handler
0x10eb48da2 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_main
0x10e7a7c68 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : mono_main_with_options
0x10e7a7c32 - /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/obj/mono/osx.x64.Debug/mono/mini/mono-sgen : main
0x7ff8031bd41f - /usr/lib/dyld : start
=================================================================
External Debugger Dump:
=================================================================
=================================================================
Basic Fault Address Reporting
=================================================================
Memory around native instruction pointer (0x7ff8034df202):0x7ff8034df1f2 ff ff c3 90 90 90 b8 48 01 00 02 49 89 ca 0f 05 .......H...I....
0x7ff8034df202 73 08 48 89 c7 e9 df 9a ff ff c3 90 90 90 b8 53 s.H............S
0x7ff8034df212 00 00 02 49 89 ca 0f 05 73 08 48 89 c7 e9 c7 9a ...I....s.H.....
0x7ff8034df222 ff ff c3 90 90 90 b8 83 01 00 02 49 89 ca 0f 05 ...........I....
Abort trap: 6
  • With this fix, full aot compilation for UnsafeAccessorsTests.dll finished without error:
$ MONO_ENV_OPTIONS=--aot=full obj/mono/osx.x64.Debug/mono/mini/mono-sgen tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll
Mono Ahead of Time compiler - compiling assembly /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll
AOTID C5C2367F-8ED9-67C5-FB74-D8B534ECE071
Failed to load methodspec 0x2b000003 due to Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies..
Run with MONO_LOG_LEVEL=debug for more information.
Failed to load methodspec 0x2b000004 due to Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies..
Run with MONO_LOG_LEVEL=debug for more information.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:CallPrivateConstructorClass ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:CallPrivateConstructorClass (string)' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataValue UnsafeAccessorsTests:CallPrivateConstructorValue (string)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:_MVV (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:_mvv (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:Verify_InvalidTargetUnsafeAccessor ()' due to: 'Could not load file or assembly 'TestLibrary, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies.'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:<Verify_CallCtorWithEmptyNotNullName>g__CallPrivateConstructorWithEmptyName|11_0 ()' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_CallCtorAsMethod>g__CallPrivateConstructor|12_0 (UnsafeAccessorsTests/UserDataClass,string)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_CallCtorAsMethodValue>g__CallPrivateConstructor|13_0 (UnsafeAccessorsTests/UserDataValue&,string)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessStaticFieldClass>g__GetPrivateStaticField|14_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessFieldClass>g__GetPrivateField|15_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessStaticFieldValue>g__GetPrivateStaticField|16_0 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_AccessFieldValue>g__GetPrivateField|17_0 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessStaticMethodClass>g__GetPrivateStaticMethod|18_0 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessMethodClass>g__GetPrivateMethod|19_0 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_AccessStaticMethodVoidClass>g__GetPrivateStaticMethod|22_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_AccessMethodVoidClass>g__GetPrivateMethod|23_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessStaticMethodValue>g__GetPrivateStaticMethod|24_0 (UnsafeAccessorsTests/UserDataValue,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_AccessMethodValue>g__GetPrivateMethod|25_0 (UnsafeAccessorsTests/UserDataValue&,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_IgnoreCustomModifier>g__CallPrivateGetter|26_0 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_IgnoreCustomModifier>g__CallPrivateSetter|26_1 (UnsafeAccessorsTests/UserDataClass,string)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_PreciseMatchCustomModifier>g__CallPrivateMethod|27_0 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_UnmanagedCallConvBitAreTreatedAsCustomModifiersAndIgnored>g__CallCdeclMethod|28_0 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_UnmanagedCallConvBitAreTreatedAsCustomModifiersAndIgnored>g__CallStdcallMethod|28_1 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_ManagedUnmanagedFunctionPointersDontMatch>g__CallCdeclMethod|29_2 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_ManagedUnmanagedFunctionPointersDontMatch>g__CallManagedMethod|29_3 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__OnBase|32_2 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__BaseVirtual|32_3 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__OnDerived|32_4 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__Abstract|32_5 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__Virtual|32_6 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InheritanceMethodResolution>g__NewVirtual|32_7 (UnsafeAccessorsTests/InheritanceBase)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InheritanceFieldResolution>g__FieldOnBase|33_1 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InheritanceFieldResolution>g__FieldOnDerived|33_2 (UnsafeAccessorsTests/InheritanceDerived)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__MethodNotFound|34_9 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticMethodNotFound|34_10 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFound|34_11 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFoundStaticMismatch1|34_12 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__FieldNotFoundStaticMismatch2|34_13 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticFieldNotFound|34_14 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__CallPointerMethod|34_15 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'int UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessor>g__StaticMethodWithDifferentReturnType|34_16 (UnsafeAccessorsTests/UserDataClass,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidTargetUnsafeAccessorAmbiguousMatch>g__CallAmbiguousMethod|35_1 (UnsafeAccessorsTests/UserDataClass,*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldReturnMustBeByRefClass|38_16 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldReturnMustBeByRefValue|38_17 (UnsafeAccessorsTests/UserDataValue&)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldArgumentMustBeByRef|38_18 (UnsafeAccessorsTests/UserDataValue)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__FieldMustHaveSingleArgument|38_19 (UnsafeAccessorsTests/UserDataClass,int)' due to: 'Method has zero rva'.
Unable to compile method 'string& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__StaticFieldMustHaveSingleArgument|38_20 (UnsafeAccessorsTests/UserDataClass,int)' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidKindValue|38_21 (UnsafeAccessorsTests/UserDataClass)' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorSignatureClass|38_22 ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataValue& UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorSignatureValue|38_23 ()' due to: 'Method has zero rva'.
Unable to compile method 'UnsafeAccessorsTests/UserDataClass UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorName|38_24 ()' due to: 'Method has zero rva'.
Unable to compile method 'void UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvalidCtorType|38_25 ()' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__LookUpFailsOnPointers|38_26 (void*)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__LookUpFailsOnFunctionPointers|38_27 (*())' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests:<Verify_InvalidUseUnsafeAccessor>g__InvokeMethodOnValueWithoutRef|38_28 (UnsafeAccessorsTests/UserDataValue,string,string&,string&)' due to: 'Method has zero rva'.
Unable to compile method 'string UnsafeAccessorsTests/Invalid:NonStatic (string)' due to: 'Method has zero rva'.
Compiled: 160/222
Executing the native assembler: "clang" -c -x assembler -o /var/folders/5w/jj_7d0cn7qjc2hq2xb1tz2wm0000gn/T/mono_aot_YsV0VE.o /var/folders/5w/jj_7d0cn7qjc2hq2xb1tz2wm0000gn/T/mono_aot_YsV0VE
Executing the native linker: "clang" --shared -o /Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll.dylib.tmp /var/folders/5w/jj_7d0cn7qjc2hq2xb1tz2wm0000gn/T/mono_aot_YsV0VE.o "-Wl,-install_name,UnsafeAccessorsTests.dll.dylib"
Executing dsymutil: dsymutil "/Users/yangfan/Documents/work/dotnet_3/runtime/artifacts/tests/coreclr/osx.x64.Debug/baseservices/compilerservices/UnsafeAccessors/UnsafeAccessorsTests/UnsafeAccessorsTests.dll.dylib"
JIT time: 54 ms, Generation time: 10 ms, Assembly+Link time: 1267 ms.

Risk

Low risk.

@fanyang-monofanyang-mono added this to the 8.0.0 milestone Aug 29, 2023
@lambdageeklambdageek added the Servicing-consider Issue for next servicing release review label Aug 29, 2023
@fanyang-mono

Copy link
Copy Markdown
Member

/azp run runtime-extra-platforms

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines successfully started running 1 pipeline(s).

@fanyang-mono

Copy link
Copy Markdown
Member

CI failures are all know issues.

@SamMonoRTSamMonoRT added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Aug 29, 2023
@SamMonoRT

Copy link
Copy Markdown
Member

cc @carlossanlop - this is ready to be merged. Thank you

Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-Codegen-AOT-monoServicing-approvedApproved for servicing release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@fanyang-mono@SamMonoRT@marek-safar@lambdageek@carlossanlop