Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Xamarin.Android.Build.Tasks] combine CheckTargetFrameworks/ResolveAssemblies #2174

Conversation

jonathanpeppers
Copy link
Member

@jonathanpeppers jonathanpeppers commented Sep 11, 2018

Context: https://gist.github.com/jonathanpeppers/a207a8828317460239a12a8b0cc918d7

When reviewing how many times we are using Mono.Cecil to open every
assembly, it was happening 9 times!

Unfortunately it is not as easy as just "caching" something, the
simplest approach for now is to start combining functionality that are
in multiple tasks right now.

A simple first example is the CheckTargetFrameworks MSBuild task,
which runs after the Compile and ResolveAssemblies MSBuild tasks.
CheckTargetFrameworks has the job of emitting warnings about
[assembly: System.Runtime.Versioning.TargetFramework]. We can easily
do this work in ResolveAssemblies as it is already looping over all
the assemblies' custom attributes for other reasons.

Changes to make this happen:

  • Removed CheckTargetFrameworks and the _CheckTargetFrameworks
    target, adding the required TargetFrameworkVersion and
    ProjectFile properties to ResolveAssemblies.
  • Added a new CheckAssemblyAttributes where we can add to a switch
    statement for new attribute types in the future as needed.
  • Added a dictionary of api_levels, and copied over the logic from
    CheckTargetFrameworks

Before:

105 ms  CheckTargetFrameworks                      1 calls
188 ms  ResolveAssemblies                          1 calls

After:

216 ms  ResolveAssemblies                          1 calls

I timed the tests/Xamarin.Forms-Performance-Integration project in
this repository: a build with no changes.

Since CheckTargetFrameworks is removed completely, we can avoid the
time it was taking to open every assembly again.

This saves around 77ms.

@jonpryor
Copy link
Member

This saves 77ms.

We should mention the savings in the commit messages so I can do less math. :-)

…semblies

Context: https://gist.github.com/jonathanpeppers/a207a8828317460239a12a8b0cc918d7

When reviewing how many times we are using Mono.Cecil to open every
assembly, it was happening 9 times!

Unfortunately it is not as easy as just "caching" something, the
simplest approach for now is to start combining functionality that are
in multiple tasks right now.

A simple first example is the `CheckTargetFrameworks` MSBuild task,
which runs after the `Compile` and `ResolveAssemblies` MSBuild tasks.
`CheckTargetFrameworks` has the job of emitting warnings about
`[assembly: System.Runtime.Versioning.TargetFramework]`. We can easily
do this work in `ResolveAssemblies` as it is already looping over all
the assemblies' custom attributes for other reasons.

Changes to make this happen:
- Removed `CheckTargetFrameworks` and the `_CheckTargetFrameworks`
  target, adding the required `TargetFrameworkVersion` and
  `ProjectFile` properties to `ResolveAssemblies`.
- Added a new `CheckAssemblyAttributes` where we can add to a `switch`
  statement for new attribute types in the future as needed.
- Added a dictionary of `api_levels`, and copied over the logic from
  `CheckTargetFrameworks`

Before:

    105 ms  CheckTargetFrameworks                      1 calls
    188 ms  ResolveAssemblies                          1 calls

After:

    216 ms  ResolveAssemblies                          1 calls

I timed the `tests/Xamarin.Forms-Performance-Integration` project in
this repository: a build with no changes.

Since `CheckTargetFrameworks` is removed completely, we can avoid the
time it was taking to open every assembly again.

This saves around 77ms.
@jonathanpeppers jonathanpeppers force-pushed the checktargetframeworks-resolveassemblies branch from dc0d04f to 8e54441 Compare September 11, 2018 18:24
@jonathanpeppers
Copy link
Member Author

I updated the commit message, since the macOS build hadn't started yet. I also mentioned what project, and that it was a build with no changes.

Build logs here: CheckTargetFrameworks.zip

@dellis1972
Copy link
Contributor

Weird build error.

1) Ignored : Java.InteropTests.JniTransitionTests.Dispose_ClearsLocalReferences
  SafeHandles aren't used, so magical disposal from a distance isn't supported.
  
  Run Settings
      DisposeRunners: True
      WorkDirectory: /Users/builder/jenkins/workspace/xamarin-android-pr-builder/xamarin-android/external/Java.Interop
      ImageRuntimeVersion: 4.0.30319
      ImageTargetFrameworkName: .NETFramework,Version=v4.5
      ImageRequiresX86: False
      ImageRequiresDefaultAppDomainAssemblyResolver: False
      NumberOfTestWorkers: 4
  
  Test Run Summary
    Overall result: Warning
    Test Count: 629, Passed: 628, Failed: 0, Warnings: 0, Inconclusive: 0, Skipped: 1
      Skipped Tests - Ignored: 1, Explicit: 0, Other: 0
    Start time: 2018-09-11 20:16:42Z
      End time: 2018-09-11 20:17:09Z
      Duration: 27.593 seconds
  
  Results (nunit2) saved as TestResult-Java.Interop-Tests.xml
RunTests:
  mono --debug packages/NUnit.ConsoleRunner.3.7.0/tools/nunit3-console.exe  /Users/builder/jenkins/workspace/xamarin-android-pr-builder/xamarin-android/external/Java.Interop/build-tools/scripts/../../bin/TestDebug/Java.Interop.Dynamic-Tests.dll  --result="TestResult-Java.Interop.Dynamic-Tests.xml;format=nunit2" --output="bin/TestDebug/TestOutput-Java.Interop.Dynamic-Tests.txt"
  NUnit Console Runner 3.7.0 
  Copyright (c) 2017 Charlie Poole, Rob Prouse
  
  Runtime Environment
     OS Version: MacOSX 16.7.0.0 
    CLR Version: 4.0.30319.42000
  
  Test Files
      /Users/builder/jenkins/workspace/xamarin-android-pr-builder/xamarin-android/external/Java.Interop/build-tools/scripts/../../bin/TestDebug/Java.Interop.Dynamic-Tests.dll
  
  WARNING in native method: JNI call made without checking exceptions when required to from CallStaticObjectMethod
  Stacktrace:
  
    at <unknown> <0xffffffff>
    at (wrapper managed-to-native) System.Runtime.Remoting.RemotingServices.InternalExecute (System.Reflection.MethodBase,object,object[],object[]&) [0x00000] in <8a67b847911f4fb589a9e7588d87a55a>:0
    at System.Runtime.Remoting.RemotingServices.InternalExecuteMessage (System.MarshalByRefObject,System.Runtime.Remoting.Messaging.IMethodCallMessage) [0x000b5] in <8a67b847911f4fb589a9e7588d87a55a>:0
    at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage (System.Runtime.Remoting.Messaging.IMessage) [0x0001c] in <8a67b847911f4fb589a9e7588d87a55a>:0
    at System.Runtime.Remoting.Messaging.ServerObjectTerminatorSink.SyncProcessMessage (System.Runtime.Remoting.Messaging.IMessage) [0x00016] in <8a67b847911f4fb589a9e7588d87a55a>:0
    at System.Runtime.Remoting.Lifetime.LeaseSink.SyncProcessMessage (System.Runtime.Remoting.Messaging.IMessage) [0x00007] in <8a67b847911f4fb589a9e7588d87a55a>:0
    at System.Runtime.Remoting.ClientActivatedIdentity.SyncObjectProcessMessage (System.Runtime.Remoting.Messaging.IMessage) [0x00035] in <8a67b847911f4fb589a9e7588d87a55a>:0
    at System.Runtime.Remoting.Messaging.ServerContextTerminatorSink.SyncProcessMessage (System.Runtime.Remoting.Messaging.IMessage) [0x0001a] in <8a67b847911f4fb589a9e7588d87a55a>:0
    at System.Runtime.Remoting.Contexts.CrossContextChannel.SyncProcessMessage (System.Runtime.Remoting.Messaging.IMessage) [0x0004a] in <8a67b847911f4fb589a9e7588d87a55a>:0
    at System.Runtime.Remoting.Channels.ChannelServices.SyncDispatchMessage (System.Runtime.Remoting.Messaging.IMessage) [0x00012] in <8a67b847911f4fb589a9e7588d87a55a>:0
    at System.Runtime.Remoting.Channels.ChannelServices.DispatchMessage (System.Runtime.Remoting.Channels.IServerChannelSinkStack,System.Runtime.Remoting.Messaging.IMessage,System.Runtime.Remoting.Messaging.IMessage&) [0x0000e] in <8a67b847911f4fb589a9e7588d87a55a>:0
    at System.Runtime.Remoting.Channels.ServerDispatchSink.ProcessMessage (System.Runtime.Remoting.Channels.IServerChannelSinkStack,System.Runtime.Remoting.Messaging.IMessage,System.Runtime.Remoting.Channels.ITransportHeaders,System.IO.Stream,System.Runtime.Remoting.Messaging.IMessage&,System.Runtime.Remoting.Channels.ITransportHeaders&,System.IO.Stream&) [0x00008] in <8a67b847911f4fb589a9e7588d87a55a>:0
    at System.Runtime.Remoting.Channels.BinaryServerFormatterSink.ProcessMessage (System.Runtime.Remoting.Channels.IServerChannelSinkStack,System.Runtime.Remoting.Messaging.IMessage,System.Runtime.Remoting.Channels.ITransportHeaders,System.IO.Stream,System.Runtime.Remoting.Messaging.IMessage&,System.Runtime.Remoting.Channels.ITransportHeaders&,System.IO.Stream&) [0x000b8] in <031b30687aa5463a8ff1010bc5f2d2a4>:0
    at NUnit.Engine.Internal.TcpChannelUtils/ObservableServerChannelSinkProvider/ObservableServerChannelSink.ProcessMessage (System.Runtime.Remoting.Channels.IServerChannelSinkStack,System.Runtime.Remoting.Messaging.IMessage,System.Runtime.Remoting.Channels.ITransportHeaders,System.IO.Stream,System.Runtime.Remoting.Messaging.IMessage&,System.Runtime.Remoting.Channels.ITransportHeaders&,System.IO.Stream&) [0x0000d] in <1e8ad6af4c6f4686ad7e5f9e67020b3b>:0
    at System.Runtime.Remoting.Channels.Tcp.TcpServerTransportSink.InternalProcessMessage (System.Runtime.Remoting.Channels.Tcp.ClientConnection,System.IO.Stream) [0x0006d] in <031b30687aa5463a8ff1010bc5f2d2a4>:0
    at System.Runtime.Remoting.Channels.Tcp.ClientConnection.ProcessMessages () [0x00042] in <031b30687aa5463a8ff1010bc5f2d2a4>:0
    at System.Runtime.Remoting.Channels.RemotingThreadPool.PoolThread () [0x000cb] in <031b30687aa5463a8ff1010bc5f2d2a4>:0
    at System.Threading.ThreadHelper.ThreadStart_Context (object) [0x00014] in <8a67b847911f4fb589a9e7588d87a55a>:0
    at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00071] in <8a67b847911f4fb589a9e7588d87a55a>:0
    at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00000] in <8a67b847911f4fb589a9e7588d87a55a>:0
    at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object) [0x0002b] in <8a67b847911f4fb589a9e7588d87a55a>:0
    at System.Threading.ThreadHelper.ThreadStart () [0x00008] in <8a67b847911f4fb589a9e7588d87a55a>:0
    at (wrapper runtime-invoke) object.runtime_invoke_void__this__ (object,intptr,intptr,intptr) [0x0004d] in <8a67b847911f4fb589a9e7588d87a55a>:0
  
  Native stacktrace:
  
  	0   mono                                0x00000001038df548 mono_handle_native_crash + 264
  	1   mono                                0x0000000103949af6 altstack_handle_and_restore + 70
  	2   mono                                0x00000001038c5573 mono_aot_get_cached_class_info + 19
  	3   mono                                0x00000001039ac2df mono_class_is_subclass_of + 31
  	4   libjava-interop.dylib               0x000000010b453908 get_gc_bridge_index + 120
  	5   libjava-interop.dylib               0x000000010b45324c gc_bridge_class_kind + 60
  	6   mono                                0x0000000103aa2ae8 class_kind + 24
  	7   mono                                0x0000000103aa4bcd mono_gc_get_vtable_bits + 29
  	8   mono                                0x0000000103a1da81 mono_class_vtable_checked + 705
  	9   mono                                0x000000010387a5ed handle_alloc + 397
  	10  mono                                0x000000010387e6de handle_delegate_ctor + 190
  	11  mono                                0x0000000103855aef mono_method_to_ir + 112175
  	12  mono                                0x00000001038266d7 mini_method_compile + 3447
  	13  mono                                0x0000000103829e11 mono_jit_compile_method_inner + 785
  	14  mono                                0x000000010382d5c2 mono_jit_compile_method_with_opt + 1410
  	15  mono                                0x0000000103831277 mono_jit_runtime_invoke + 487
  	16  mono                                0x0000000103a21234 do_runtime_invoke + 84
  	17  mono                                0x0000000103a24fd6 mono_runtime_try_invoke_array + 1238
  	18  mono                                0x00000001039d3311 ves_icall_InternalExecute + 305
  	19  ???                                 0x0000000109f29c28 0x0 + 4461861928
  	20  mscorlib.dll.dylib                  0x00000001096d34c9 System_Runtime_Remoting_Messaging_StackBuilderSink_SyncProcessMessage_System_Runtime_Remoting_Messaging_IMessage + 201
  	21  mscorlib.dll.dylib                  0x00000001096b7a35 System_Runtime_Remoting_Channels_ChannelServices_SyncDispatchMessage_System_Runtime_Remoting_Messaging_IMessage + 69
  	22  ???                                 0x0000000109f28d22 0x0 + 4461858082
  	23  ???                                 0x0000000109f284dd 0x0 + 4461855965
  	24  ???                                 0x0000000109f2787e 0x0 + 4461852798
  	25  ???                                 0x0000000109f27403 0x0 + 4461851651
  	26  ???                                 0x0000000109f2720e 0x0 + 4461851150
  	27  mscorlib.dll.dylib                  0x0000000109638c17 System_Threading_ThreadHelper_ThreadStart_Context_object + 151
  	28  mscorlib.dll.dylib                  0x0000000109636741 System_Threading_ExecutionContext_Run_System_Threading_ExecutionContext_System_Threading_ContextCallback_object_bool + 33
  	29  mono                                0x0000000103831618 mono_jit_runtime_invoke + 1416
  	30  mono                                0x0000000103a21234 do_runtime_invoke + 84
  	31  mono                                0x0000000103a44d9e start_wrapper + 750
  	32  libsystem_pthread.dylib             0x00007fffa284193b _pthread_body + 180
  	33  libsystem_pthread.dylib             0x00007fffa2841887 _pthread_body + 0
  	34  libsystem_pthread.dylib             0x00007fffa284108d thread_start + 13
  
  Debug info from gdb:
  
  (lldb) command source -s 0 '/tmp/mono-gdb-commands.SSAREC'
  Executing commands in '/tmp/mono-gdb-commands.SSAREC'.
  (lldb) process attach --pid 16209
EXEC : error : attach failed: unable to attach [/Users/builder/jenkins/workspace/xamarin-android-pr-builder/xamarin-android/external/Java.Interop/build-tools/scripts/RunNUnitTests.targets]
  
  =================================================================
  Got a SIGSEGV while executing native code. This usually indicates
  a fatal error in the mono runtime or one of the native libraries 
  used by your application.
  =================================================================
  
  System.Runtime.Remoting.RemotingException: Tcp transport error. ---> System.Runtime.Remoting.RemotingException: Connection closed
    at System.Runtime.Remoting.Channels.Tcp.TcpMessageIO.StreamRead (System.IO.Stream networkStream, System.Byte[] buffer, System.Int32 count) [0x00024] in /Users/builder/jenkins/workspace/build-package-osx-mono/2018-04/external/bockbuild/builds/mono-x64/mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels.Tcp/TcpMessageIO.cs:95 
    at System.Runtime.Remoting.Channels.Tcp.TcpMessageIO.ReceiveMessageStatus (System.IO.Stream networkStream, System.Byte[] buffer) [0x00000] in /Users/builder/jenkins/workspace/build-package-osx-mono/2018-04/external/bockbuild/builds/mono-x64/mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels.Tcp/TcpMessageIO.cs:54 
     --- End of inner exception stack trace ---
  
  
  Server stack trace: 
    at System.Runtime.Remoting.Channels.Tcp.TcpMessageIO.ReceiveMessageStatus (System.IO.Stream networkStream, System.Byte[] buffer) [0x0000c] in /Users/builder/jenkins/workspace/build-package-osx-mono/2018-04/external/bockbuild/builds/mono-x64/mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels.Tcp/TcpMessageIO.cs:56 
    at System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.ProcessMessage (System.Runtime.Remoting.Messaging.IMessage msg, System.Runtime.Remoting.Channels.ITransportHeaders requestHeaders, System.IO.Stream requestStream, System.Runtime.Remoting.Channels.ITransportHeaders& responseHeaders, System.IO.Stream& responseStream) [0x00052] in /Users/builder/jenkins/workspace/build-package-osx-mono/2018-04/external/bockbuild/builds/mono-x64/mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels.Tcp/TcpClientTransportSink.cs:188 
    at System.Runtime.Remoting.Channels.BinaryClientFormatterSink.SyncProcessMessage (System.Runtime.Remoting.Messaging.IMessage msg) [0x00066] in /Users/builder/jenkins/workspace/build-package-osx-mono/2018-04/external/bockbuild/builds/mono-x64/mcs/class/System.Runtime.Remoting/System.Runtime.Remoting.Channels/BinaryClientFormatterSink.cs:157 
  
  Exception rethrown at [0]: 
    at (wrapper managed-to-native) System.Object.__icall_wrapper_mono_remoting_wrapper(intptr,intptr)
    at (wrapper remoting-invoke) NUnit.Engine.Agents.RemoteTestAgent.Stop()
    at NUnit.Engine.Runners.ProcessRunner.Dispose (System.Boolean disposing) [0x00086] in <1e8ad6af4c6f4686ad7e5f9e67020b3b>:0 
    at NUnit.Engine.Runners.AbstractTestRunner.Dispose () [0x00000] in <1e8ad6af4c6f4686ad7e5f9e67020b3b>:0 
    at NUnit.Engine.Runners.MasterTestRunner.Dispose (System.Boolean disposing) [0x00013] in <1e8ad6af4c6f4686ad7e5f9e67020b3b>:0 
    at NUnit.Engine.Runners.MasterTestRunner.Dispose () [0x00000] in <1e8ad6af4c6f4686ad7e5f9e67020b3b>:0 
    at NUnit.ConsoleRunner.ConsoleRunner.RunTests (NUnit.Engine.TestPackage package, NUnit.Engine.TestFilter filter) [0x0010e] in <5d13e9f4d03e4da1b4779cb1d61b9b3d>:0 
    at NUnit.ConsoleRunner.ConsoleRunner.Execute () [0x000b6] in <5d13e9f4d03e4da1b4779cb1d61b9b3d>:0 
    at NUnit.ConsoleRunner.Program.Main (System.String[] args) [0x001bf] in <5d13e9f4d03e4da1b4779cb1d61b9b3d>:0 
/Users/builder/jenkins/workspace/xamarin-android-pr-builder/xamarin-android/external/Java.Interop/build-tools/scripts/RunNUnitTests.targets(35,5): error MSB3073: The command "mono --debug packages/NUnit.ConsoleRunner.3.7.0/tools/nunit3-console.exe  /Users/builder/jenkins/workspace/xamarin-android-pr-builder/xamarin-android/external/Java.Interop/build-tools/scripts/../../bin/TestDebug/Java.Interop.Dynamic-Tests.dll  --result="TestResult-Java.Interop.Dynamic-Tests.xml;format=nunit2" --output="bin/TestDebug/TestOutput-Java.Interop.Dynamic-Tests.txt"" exited with code 156.
  Build continuing because "ContinueOnError" on the task "Exec" is set to "ErrorAndContinue".
RunTests:
  mono --debug packages/NUnit.ConsoleRunner.3.7.0/tools/nunit3-console.exe  /Users/builder/jenkins/workspace/xamarin-android-pr-builder/xamarin-android/external/Java.Interop/build-tools/scripts/../../bin/TestDebug/Java.Interop.Export-Tests.dll  --result="TestResult-Java.Interop.Export-Tests.xml;format=nunit2" --output="bin/TestDebug/TestOutput-Java.Interop.Export-Tests.txt"
  NUnit Console Runner 3.7.0 
  Copyright (c) 2017 Charlie Poole, Rob Prouse
  
  Runtime Environment
     OS Version: MacOSX 16.7.0.0 
    CLR Version: 4.0.30319.42000
  
  Test Files
      /Users/builder/jenkins/workspace/xamarin-android-pr-builder/xamarin-android/external/Java.Interop/build-tools/scripts/../../bin/TestDebug/Java.Interop.Export-Tests.dll
  
  WARNING in native method: JNI call made without checking exceptions when required to from CallStaticObjectMethod
  Stacktrace:
  
    at <unknown> <0xffffffff>
    at (wrapper managed-to-native) System.Runtime.Remoting.RemotingServices.InternalExecute (System.Reflection.MethodBase,object,object[],object[]&) [0x00000] in <8a67b847911f4fb589a9e7588d87a55a>:0
    at System.Runtime.Remoting.RemotingServices.InternalExecuteMessage (System.MarshalByRefObject,System.Runtime.Remoting.Messaging.IMethodCallMessage) [0x000b5] in <8a67b847911f4fb589a9e7588d87a55a>:0
    at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage (System.Runtime.Remoting.Messaging.IMessage) [0x0001c] in <8a67b847911f4fb589a9e7588d87a55a>:0
    at System.Runtime.Remoting.Messaging.ServerObjectTerminatorSink.SyncProcessMessage (System.Runtime.Remoting.Messaging.IMessage) [0x00016] in <8a67b847911f4fb589a9e7588d87a55a>:0
    at System.Runtime.Remoting.Lifetime.LeaseSink.SyncProcessMessage (System.Runtime.Remoting.Messaging.IMessage) [0x00007] in <8a67b847911f4fb589a9e7588d87a55a>:0
    at System.Runtime.Remoting.ClientActivatedIdentity.SyncObjectProcessMessage (System.Runtime.Remoting.Messaging.IMessage) [0x00035] in <8a67b847911f4fb589a9e7588d87a55a>:0
    at System.Runtime.Remoting.Messaging.ServerContextTerminatorSink.SyncProcessMessage (System.Runtime.Remoting.Messaging.IMessage) [0x0001a] in <8a67b847911f4fb589a9e7588d87a55a>:0
    at System.Runtime.Remoting.Contexts.CrossContextChannel.SyncProcessMessage (System.Runtime.Remoting.Messaging.IMessage) [0x0004a] in <8a67b847911f4fb589a9e7588d87a55a>:0
    at System.Runtime.Remoting.Channels.ChannelServices.SyncDispatchMessage (System.Runtime.Remoting.Messaging.IMessage) [0x00012] in <8a67b847911f4fb589a9e7588d87a55a>:0
    at System.Runtime.Remoting.Channels.ChannelServices.DispatchMessage (System.Runtime.Remoting.Channels.IServerChannelSinkStack,System.Runtime.Remoting.Messaging.IMessage,System.Runtime.Remoting.Messaging.IMessage&) [0x0000e] in <8a67b847911f4fb589a9e7588d87a55a>:0
    at System.Runtime.Remoting.Channels.ServerDispatchSink.ProcessMessage (System.Runtime.Remoting.Channels.IServerChannelSinkStack,System.Runtime.Remoting.Messaging.IMessage,System.Runtime.Remoting.Channels.ITransportHeaders,System.IO.Stream,System.Runtime.Remoting.Messaging.IMessage&,System.Runtime.Remoting.Channels.ITransportHeaders&,System.IO.Stream&) [0x00008] in <8a67b847911f4fb589a9e7588d87a55a>:0
    at System.Runtime.Remoting.Channels.BinaryServerFormatterSink.ProcessMessage (System.Runtime.Remoting.Channels.IServerChannelSinkStack,System.Runtime.Remoting.Messaging.IMessage,System.Runtime.Remoting.Channels.ITransportHeaders,System.IO.Stream,System.Runtime.Remoting.Messaging.IMessage&,System.Runtime.Remoting.Channels.ITransportHeaders&,System.IO.Stream&) [0x000b8] in <031b30687aa5463a8ff1010bc5f2d2a4>:0
    at NUnit.Engine.Internal.TcpChannelUtils/ObservableServerChannelSinkProvider/ObservableServerChannelSink.ProcessMessage (System.Runtime.Remoting.Channels.IServerChannelSinkStack,System.Runtime.Remoting.Messaging.IMessage,System.Runtime.Remoting.Channels.ITransportHeaders,System.IO.Stream,System.Runtime.Remoting.Messaging.IMessage&,System.Runtime.Remoting.Channels.ITransportHeaders&,System.IO.Stream&) [0x0000d] in <1e8ad6af4c6f4686ad7e5f9e67020b3b>:0
    at System.Runtime.Remoting.Channels.Tcp.TcpServerTransportSink.InternalProcessMessage (System.Runtime.Remoting.Channels.Tcp.ClientConnection,System.IO.Stream) [0x0006d] in <031b30687aa5463a8ff1010bc5f2d2a4>:0
    at System.Runtime.Remoting.Channels.Tcp.ClientConnection.ProcessMessages () [0x00042] in <031b30687aa5463a8ff1010bc5f2d2a4>:0
    at System.Runtime.Remoting.Channels.RemotingThreadPool.PoolThread () [0x000cb] in <031b30687aa5463a8ff1010bc5f2d2a4>:0
    at System.Threading.ThreadHelper.ThreadStart_Context (object) [0x00014] in <8a67b847911f4fb589a9e7588d87a55a>:0
    at System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00071] in <8a67b847911f4fb589a9e7588d87a55a>:0
    at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object,bool) [0x00000] in <8a67b847911f4fb589a9e7588d87a55a>:0
    at System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext,System.Threading.ContextCallback,object) [0x0002b] in <8a67b847911f4fb589a9e7588d87a55a>:0
    at System.Threading.ThreadHelper.ThreadStart () [0x00008] in <8a67b847911f4fb589a9e7588d87a55a>:0
    at (wrapper runtime-invoke) object.runtime_invoke_void__this__ (object,intptr,intptr,intptr) [0x0004d] in <8a67b847911f4fb589a9e7588d87a55a>:0
  
  Native stacktrace:
  
  	0   mono                                0x0000000101c8f548 mono_handle_native_crash + 264
  	1   mono                                0x0000000101cf9af6 altstack_handle_and_restore + 70
  	2   mono                                0x0000000101c75573 mono_aot_get_cached_class_info + 19
  	3   mono                                0x0000000101d5c2df mono_class_is_subclass_of + 31
  	4   libjava-interop.dylib               0x000000010988f908 get_gc_bridge_index + 120
  	5   libjava-interop.dylib               0x000000010988f24c gc_bridge_class_kind + 60
  	6   mono                                0x0000000101e52ae8 class_kind + 24
  	7   mono                                0x0000000101e54bcd mono_gc_get_vtable_bits + 29
  	8   mono                                0x0000000101dcda81 mono_class_vtable_checked + 705
  	9   mono                                0x0000000101c2a5ed handle_alloc + 397
  	10  mono                                0x0000000101c2e6de handle_delegate_ctor + 190
  	11  mono                                0x0000000101c05aef mono_method_to_ir + 112175
  	12  mono                                0x0000000101bd66d7 mini_method_compile + 3447
  	13  mono                                0x0000000101bd9e11 mono_jit_compile_method_inner + 785
  	14  mono                                0x0000000101bdd5c2 mono_jit_compile_method_with_opt + 1410
  	15  mono                                0x0000000101be1277 mono_jit_runtime_invoke + 487
  	16  mono                                0x0000000101dd1234 do_runtime_invoke + 84
  	17  mono                                0x0000000101dd4fd6 mono_runtime_try_invoke_array + 1238
  	18  mono                                0x0000000101d83311 ves_icall_InternalExecute + 305
  	19  ???                                 0x00000001090dfc28 0x0 + 4446878760
  	20  mscorlib.dll.dylib                  0x00000001083014c9 System_Runtime_Remoting_Messaging_StackBuilderSink_SyncProcessMessage_System_Runtime_Remoting_Messaging_IMessage + 201
  	21  mscorlib.dll.dylib                  0x00000001082e5a35 System_Runtime_Remoting_Channels_ChannelServices_SyncDispatchMessage_System_Runtime_Remoting_Messaging_IMessage + 69
  	22  ???                                 0x00000001090ded22 0x0 + 4446874914
  	23  ???                                 0x00000001090de4dd 0x0 + 4446872797
  	24  ???                                 0x00000001090dd87e 0x0 + 4446869630
  	25  ???                                 0x00000001090dd403 0x0 + 4446868483
  	26  ???                                 0x00000001090dd20e 0x0 + 4446867982
  	27  mscorlib.dll.dylib                  0x0000000108266c17 System_Threading_ThreadHelper_ThreadStart_Context_object + 151
  	28  mscorlib.dll.dylib                  0x0000000108264741 System_Threading_ExecutionContext_Run_System_Threading_ExecutionContext_System_Threading_ContextCallback_object_bool + 33
  	29  mono                                0x0000000101be1618 mono_jit_runtime_invoke + 1416
  	30  mono                                0x0000000101dd1234 do_runtime_invoke + 84
  	31  mono                                0x0000000101df4d9e start_wrapper + 750
  	32  libsystem_pthread.dylib             0x00007fffa284193b _pthread_body + 180
  	33  libsystem_pthread.dylib             0x00007fffa2841887 _pthread_body + 0
  	34  libsystem_pthread.dylib             0x00007fffa284108d thread_start + 13
  
  Debug info from gdb:
  
  (lldb) command source -s 0 '/tmp/mono-gdb-commands.8BI85c'
  Executing commands in '/tmp/mono-gdb-commands.8BI85c'.
  (lldb) process attach --pid 16225

@dellis1972
Copy link
Contributor

build

@jonpryor jonpryor merged commit 9081026 into dotnet:master Sep 13, 2018
@github-actions github-actions bot locked and limited conversation to collaborators Feb 2, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants