Bug 56546 - [arm64] NRE in Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode:ComputeSyntaxTree (roslyn)
Summary: [arm64] NRE in Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode:ComputeSyntaxTr...
Status: CONFIRMED
Alias: None
Product: Runtime
Classification: Mono
Component: JIT (show other bugs)
Version: master
Hardware: PC Linux
: --- normal
Target Milestone: ---
Assignee: Bugzilla
URL:
Depends on:
Blocks:
 
Reported: 2017-05-17 09:02 UTC by Bernhard Urban
Modified: 2017-10-16 11:31 UTC (History)
5 users (show)

See Also:
Tags: bugpool
Is this bug a regression?: ---
Last known good build:


Attachments

Description Bernhard Urban 2017-05-17 09:02:25 UTC
not sure yet if it's device specific or caused by the versions of the tools.

=== DEVICE ===
Samsung Chromebook Plus, that comes with an OP1 chip (http://whatisop.com/) which appears to be a rebranded version of Rockchip RK3399.

=== ENVIRONMENT ===

Linux 4.4
Ubuntu 16.04.2 LTS
GCC 5.4.0

=== CRASH ===

It's 100% reproducible and happens on the first roslyn invocation. The NRE is thrown at a place where it shouldn't be possible; looking at the C# code, `nodes` should never have `null` in it: http://source.roslyn.io/#Microsoft.CodeAnalysis.CSharp/Syntax/CSharpSyntaxNode.cs,110

here is an output from a GDB session:
https://gist.github.com/lewurm/4a6762a9249c904455494ad04b4f786c

It also crahses with '-O=-gshared'.

mono/mini regression and mono/tests runs fine.
Comment 1 Bernhard Urban 2017-05-17 10:57:19 UTC
tried with Debian Sid

$ gcc --version
gcc (Debian 6.3.0-17) 6.3.0 20170510
Copyright (C) 2016 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

same issue.  BTW, here the managed stack trace:


Unhandled Exception:
System.NullReferenceException: Object reference not set to an instance of an object
  at Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode.ComputeSyntaxTree (Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode node) [0x00073] in <1ba4bb5c0a5a4763b0a42e5d26d8945c>:0 
  at Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode.get_SyntaxTree () [0x0000a] in <1ba4bb5c0a5a4763b0a42e5d26d8945c>:0 
  at Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode.get_SyntaxTreeCore () [0x00000] in <1ba4bb5c0a5a4763b0a42e5d26d8945c>:0 
  at Microsoft.CodeAnalysis.SyntaxNode.get_SyntaxTree () [0x00000] in <f2b6b0c7232c492ab0977c92b758d591>:0 
  at Microsoft.CodeAnalysis.SyntaxToken.get_SyntaxTree () [0x0000b] in <f2b6b0c7232c492ab0977c92b758d591>:0 
  at Microsoft.CodeAnalysis.SourceLocation..ctor (Microsoft.CodeAnalysis.SyntaxToken token) [0x00000] in <f2b6b0c7232c492ab0977c92b758d591>:0 
  at Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberFieldSymbol.MakeModifiers (Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol containingType, Microsoft.CodeAnalysis.SyntaxToken firstIdentifier, Microsoft.CodeAnalysis.SyntaxTokenList modifiers, Microsoft.CodeAnalysis.DiagnosticBag diagnostics, System.Boolean& modifierErrors) [0x00018] in <1ba4bb5c0a5a4763b0a42e5d26d8945c>:0 
  at Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol.AddNonTypeMembers (Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+MembersAndInitializersBuilder builder, Microsoft.CodeAnalysis.SyntaxList`1[TNode] members, Microsoft.CodeAnalysis.DiagnosticBag diagnostics) [0x00112] in <1ba4bb5c0a5a4763b0a42e5d26d8945c>:0 
  at Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol.AddDeclaredNontypeMembers (Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol+MembersAndInitializersBuilder builder, Microsoft.CodeAnalysis.DiagnosticBag diagnostics) [0x000f1] in <1ba4bb5c0a5a4763b0a42e5d26d8945c>:0 
  at Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol.BuildMembersAndInitializers (Microsoft.CodeAnalysis.DiagnosticBag diagnostics) [0x00006] in <1ba4bb5c0a5a4763b0a42e5d26d8945c>:0 
  at Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol.GetMembersAndInitializers () [0x00012] in <1ba4bb5c0a5a4763b0a42e5d26d8945c>:0 
  at Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol.MakeAllMembers (Microsoft.CodeAnalysis.DiagnosticBag diagnostics) [0x00000] in <1ba4bb5c0a5a4763b0a42e5d26d8945c>:0 
  at Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol.GetMembersByNameSlow () [0x0000e] in <1ba4bb5c0a5a4763b0a42e5d26d8945c>:0 
  at Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol.GetMembersByName () [0x00019] in <1ba4bb5c0a5a4763b0a42e5d26d8945c>:0 
  at Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol.ForceComplete (Microsoft.CodeAnalysis.SourceLocation locationOpt, System.Threading.CancellationToken cancellationToken) [0x001d7] in <1ba4bb5c0a5a4763b0a42e5d26d8945c>:0 
  at Microsoft.CodeAnalysis.CSharp.Symbol.ForceCompleteMemberByLocation (Microsoft.CodeAnalysis.SourceLocation locationOpt, Microsoft.CodeAnalysis.CSharp.Symbol member, System.Threading.CancellationToken cancellationToken) [0x0002a] in <1ba4bb5c0a5a4763b0a42e5d26d8945c>:0 
  at Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol+<>c__DisplayClass47_0.<ForceComplete>b__0 (System.Int32 i) [0x0000d] in <1ba4bb5c0a5a4763b0a42e5d26d8945c>:0 
  at Roslyn.Utilities.UICultureUtilities+<>c__DisplayClass6_0`1[T].<WithCurrentUICulture>b__0 (T param) [0x00039] in <f2b6b0c7232c492ab0977c92b758d591>:0 
  at System.Threading.Tasks.Parallel+<>c__DisplayClass17_0`1[TLocal].<ForWorker>b__1 () [0x0020b] in <0cc1ce5d6d5e4444b8b8eefeddcd90cd>:0 
  at System.Threading.Tasks.Task.InnerInvoke () [0x0000f] in <0cc1ce5d6d5e4444b8b8eefeddcd90cd>:0 
  at System.Threading.Tasks.Task.InnerInvokeWithArg (System.Threading.Tasks.Task childTask) [0x00000] in <0cc1ce5d6d5e4444b8b8eefeddcd90cd>:0 
  at System.Threading.Tasks.Task+<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0 (System.Object <p0>) [0x00086] in <0cc1ce5d6d5e4444b8b8eefeddcd90cd>:0 
   --- End of inner exception stack trace ---
  at System.Threading.Tasks.Task.ThrowIfExceptional (System.Boolean includeTaskCanceledExceptions) [0x00011] in <0cc1ce5d6d5e4444b8b8eefeddcd90cd>:0 
  at System.Threading.Tasks.Task.Wait (System.Int32 millisecondsTimeout, System.Threading.CancellationToken cancellationToken) [0x00043] in <0cc1ce5d6d5e4444b8b8eefeddcd90cd>:0 
  at System.Threading.Tasks.Task.Wait () [0x00000] in <0cc1ce5d6d5e4444b8b8eefeddcd90cd>:0 
  at System.Threading.Tasks.Parallel.ForWorker[TLocal] (System.Int32 fromInclusive, System.Int32 toExclusive, System.Threading.Tasks.ParallelOptions parallelOptions, System.Action`1[T] body, System.Action`2[T1,T2] bodyWithState, System.Func`4[T1,T2,T3,TResult] bodyWithLocal, System.Func`1[TResult] localInit, System.Action`1[T] localFinally) [0x001ab] in <0cc1ce5d6d5e4444b8b8eefeddcd90cd>:0 
  at System.Threading.Tasks.Parallel.For (System.Int32 fromInclusive, System.Int32 toExclusive, System.Threading.Tasks.ParallelOptions parallelOptions, System.Action`1[T] body) [0x0001c] in <0cc1ce5d6d5e4444b8b8eefeddcd90cd>:0 
  at Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol.ForceComplete (Microsoft.CodeAnalysis.SourceLocation locationOpt, System.Threading.CancellationToken cancellationToken) [0x0015d] in <1ba4bb5c0a5a4763b0a42e5d26d8945c>:0 
  at Microsoft.CodeAnalysis.CSharp.Symbol.ForceCompleteMemberByLocation (Microsoft.CodeAnalysis.SourceLocation locationOpt, Microsoft.CodeAnalysis.CSharp.Symbol member, System.Threading.CancellationToken cancellationToken) [0x0002a] in <1ba4bb5c0a5a4763b0a42e5d26d8945c>:0 
  at Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol+<>c__DisplayClass47_0.<ForceComplete>b__0 (System.Int32 i) [0x0000d] in <1ba4bb5c0a5a4763b0a42e5d26d8945c>:0 
  at Roslyn.Utilities.UICultureUtilities+<>c__DisplayClass6_0`1[T].<WithCurrentUICulture>b__0 (T param) [0x00039] in <f2b6b0c7232c492ab0977c92b758d591>:0 
  at System.Threading.Tasks.Parallel+<>c__DisplayClass17_0`1[TLocal].<ForWorker>b__1 () [0x0020b] in <0cc1ce5d6d5e4444b8b8eefeddcd90cd>:0 
  at System.Threading.Tasks.Task.InnerInvoke () [0x0000f] in <0cc1ce5d6d5e4444b8b8eefeddcd90cd>:0 
  at System.Threading.Tasks.Task.InnerInvokeWithArg (System.Threading.Tasks.Task childTask) [0x00000] in <0cc1ce5d6d5e4444b8b8eefeddcd90cd>:0 
  at System.Threading.Tasks.Task+<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0 (System.Object <p0>) [0x00086] in <0cc1ce5d6d5e4444b8b8eefeddcd90cd>:0 
   --- End of inner exception stack trace ---
  at System.Threading.Tasks.Task.ThrowIfExceptional (System.Boolean includeTaskCanceledExceptions) [0x00011] in <0cc1ce5d6d5e4444b8b8eefeddcd90cd>:0 
  at System.Threading.Tasks.Task.Wait (System.Int32 millisecondsTimeout, System.Threading.CancellationToken cancellationToken) [0x00043] in <0cc1ce5d6d5e4444b8b8eefeddcd90cd>:0 
  at System.Threading.Tasks.Task.Wait () [0x00000] in <0cc1ce5d6d5e4444b8b8eefeddcd90cd>:0 
  at System.Threading.Tasks.Parallel.ForWorker[TLocal] (System.Int32 fromInclusive, System.Int32 toExclusive, System.Threading.Tasks.ParallelOptions parallelOptions, System.Action`1[T] body, System.Action`2[T1,T2] bodyWithState, System.Func`4[T1,T2,T3,TResult] bodyWithLocal, System.Func`1[TResult] localInit, System.Action`1[T] localFinally) [0x001ab] in <0cc1ce5d6d5e4444b8b8eefeddcd90cd>:0 
  at System.Threading.Tasks.Parallel.For (System.Int32 fromInclusive, System.Int32 toExclusive, System.Threading.Tasks.ParallelOptions parallelOptions, System.Action`1[T] body) [0x0001c] in <0cc1ce5d6d5e4444b8b8eefeddcd90cd>:0 
  at Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol.ForceComplete (Microsoft.CodeAnalysis.SourceLocation locationOpt, System.Threading.CancellationToken cancellationToken) [0x0015d] in <1ba4bb5c0a5a4763b0a42e5d26d8945c>:0 
  at Microsoft.CodeAnalysis.CSharp.Symbol.ForceCompleteMemberByLocation (Microsoft.CodeAnalysis.SourceLocation locationOpt, Microsoft.CodeAnalysis.CSharp.Symbol member, System.Threading.CancellationToken cancellationToken) [0x0002a] in <1ba4bb5c0a5a4763b0a42e5d26d8945c>:0 
  at Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol+<>c__DisplayClass47_0.<ForceComplete>b__0 (System.Int32 i) [0x0000d] in <1ba4bb5c0a5a4763b0a42e5d26d8945c>:0 
  at Roslyn.Utilities.UICultureUtilities+<>c__DisplayClass6_0`1[T].<WithCurrentUICulture>b__0 (T param) [0x00039] in <f2b6b0c7232c492ab0977c92b758d591>:0 
  at System.Threading.Tasks.Parallel+<>c__DisplayClass17_0`1[TLocal].<ForWorker>b__1 () [0x0020b] in <0cc1ce5d6d5e4444b8b8eefeddcd90cd>:0 
  at System.Threading.Tasks.Task.InnerInvoke () [0x0000f] in <0cc1ce5d6d5e4444b8b8eefeddcd90cd>:0 
  at System.Threading.Tasks.Task.InnerInvokeWithArg (System.Threading.Tasks.Task childTask) [0x00000] in <0cc1ce5d6d5e4444b8b8eefeddcd90cd>:0 
  at System.Threading.Tasks.Task+<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0 (System.Object <p0>) [0x00086] in <0cc1ce5d6d5e4444b8b8eefeddcd90cd>:0 
   --- End of inner exception stack trace ---
  at System.Threading.Tasks.Task.ThrowIfExceptional (System.Boolean includeTaskCanceledExceptions) [0x00011] in <0cc1ce5d6d5e4444b8b8eefeddcd90cd>:0 
  at System.Threading.Tasks.Task.Wait (System.Int32 millisecondsTimeout, System.Threading.CancellationToken cancellationToken) [0x00043] in <0cc1ce5d6d5e4444b8b8eefeddcd90cd>:0 
  at System.Threading.Tasks.Task.Wait () [0x00000] in <0cc1ce5d6d5e4444b8b8eefeddcd90cd>:0 
  at System.Threading.Tasks.Parallel.ForWorker[TLocal] (System.Int32 fromInclusive, System.Int32 toExclusive, System.Threading.Tasks.ParallelOptions parallelOptions, System.Action`1[T] body, System.Action`2[T1,T2] bodyWithState, System.Func`4[T1,T2,T3,TResult] bodyWithLocal, System.Func`1[TResult] localInit, System.Action`1[T] localFinally) [0x001ab] in <0cc1ce5d6d5e4444b8b8eefeddcd90cd>:0 
  at System.Threading.Tasks.Parallel.For (System.Int32 fromInclusive, System.Int32 toExclusive, System.Threading.Tasks.ParallelOptions parallelOptions, System.Action`1[T] body) [0x0001c] in <0cc1ce5d6d5e4444b8b8eefeddcd90cd>:0 
  at Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol.ForceComplete (Microsoft.CodeAnalysis.SourceLocation locationOpt, System.Threading.CancellationToken cancellationToken) [0x0015d] in <1ba4bb5c0a5a4763b0a42e5d26d8945c>:0 
  at Microsoft.CodeAnalysis.CSharp.Symbols.SourceModuleSymbol.ForceComplete (Microsoft.CodeAnalysis.SourceLocation locationOpt, System.Threading.CancellationToken cancellationToken) [0x000b8] in <1ba4bb5c0a5a4763b0a42e5d26d8945c>:0 
  at Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol.ForceComplete (Microsoft.CodeAnalysis.SourceLocation locationOpt, System.Threading.CancellationToken cancellationToken) [0x000a5] in <1ba4bb5c0a5a4763b0a42e5d26d8945c>:0 
  at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.GetSourceDeclarationDiagnostics (Microsoft.CodeAnalysis.SyntaxTree syntaxTree, System.Nullable`1[T] filterSpanWithinTree, System.Func`4[T1,T2,T3,TResult] locationFilterOpt, System.Threading.CancellationToken cancellationToken) [0x00040] in <1ba4bb5c0a5a4763b0a42e5d26d8945c>:0 
  at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.GetDiagnostics (Microsoft.CodeAnalysis.CompilationStage stage, System.Boolean includeEarlierStages, System.Threading.CancellationToken cancellationToken) [0x00182] in <1ba4bb5c0a5a4763b0a42e5d26d8945c>:0 
  at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.GetDeclarationDiagnostics (System.Threading.CancellationToken cancellationToken) [0x00000] in <1ba4bb5c0a5a4763b0a42e5d26d8945c>:0 
  at Microsoft.CodeAnalysis.CommonCompiler.RunCore (System.IO.TextWriter consoleOutput, Microsoft.CodeAnalysis.ErrorLogger errorLogger, System.Threading.CancellationToken cancellationToken) [0x001ab] in <f2b6b0c7232c492ab0977c92b758d591>:0 
  at Microsoft.CodeAnalysis.CommonCompiler.Run (System.IO.TextWriter consoleOutput, System.Threading.CancellationToken cancellationToken) [0x00035] in <f2b6b0c7232c492ab0977c92b758d591>:0 
  at Microsoft.CodeAnalysis.CSharp.CommandLine.Csc+<>c__DisplayClass1_0.<Run>b__0 (System.IO.TextWriter tw) [0x00000] in <d4f1b5eaa9f64f48b5b8f52764f8d11f>:0 
  at Microsoft.CodeAnalysis.CommandLine.ConsoleUtil.RunWithUtf8Output[T] (System.Boolean utf8Output, System.IO.TextWriter textWriter, System.Func`2[T,TResult] func) [0x0001d] in <d4f1b5eaa9f64f48b5b8f52764f8d11f>:0 
  at Microsoft.CodeAnalysis.CSharp.CommandLine.Csc.Run (System.String[] args, Microsoft.CodeAnalysis.BuildPaths buildPaths, System.IO.TextWriter textWriter, Microsoft.CodeAnalysis.IAnalyzerAssemblyLoader analyzerLoader) [0x00048] in <d4f1b5eaa9f64f48b5b8f52764f8d11f>:0 
  at (wrapper delegate-invoke) <Module>:invoke_int_string[]_BuildPaths_TextWriter_IAnalyzerAssemblyLoader (string[],Microsoft.CodeAnalysis.BuildPaths,System.IO.TextWriter,Microsoft.CodeAnalysis.IAnalyzerAssemblyLoader)
  at Microsoft.CodeAnalysis.CommandLine.DesktopBuildClient.RunLocalCompilation (System.String[] arguments, Microsoft.CodeAnalysis.BuildPaths buildPaths, System.IO.TextWriter textWriter) [0x00000] in <d4f1b5eaa9f64f48b5b8f52764f8d11f>:0 
  at Microsoft.CodeAnalysis.CommandLine.BuildClient.RunCompilation (System.Collections.Generic.IEnumerable`1[T] originalArguments, Microsoft.CodeAnalysis.BuildPaths buildPaths, System.IO.TextWriter textWriter) [0x0009d] in <d4f1b5eaa9f64f48b5b8f52764f8d11f>:0 
  at Microsoft.CodeAnalysis.CommandLine.DesktopBuildClient.Run (System.Collections.Generic.IEnumerable`1[T] arguments, System.Collections.Generic.IEnumerable`1[T] extraArguments, Microsoft.CodeAnalysis.CommandLine.RequestLanguage language, Microsoft.CodeAnalysis.CommandLine.CompileFunc compileFunc, Microsoft.CodeAnalysis.IAnalyzerAssemblyLoader analyzerAssemblyLoader) [0x0003e] in <d4f1b5eaa9f64f48b5b8f52764f8d11f>:0 
  at Microsoft.CodeAnalysis.CSharp.CommandLine.Program.Main (System.String[] args, System.String[] extraArgs) [0x00018] in <d4f1b5eaa9f64f48b5b8f52764f8d11f>:0 
  at Microsoft.CodeAnalysis.CSharp.CommandLine.Program.Main (System.String[] args) [0x00006] in <d4f1b5eaa9f64f48b5b8f52764f8d11f>:0
Comment 2 Bernhard Urban 2017-05-24 10:46:40 UTC
here is a workaround (passing `/parallel-` to rosyln)

https://gist.github.com/lewurm/8b08a75475ae8484a5df0ba293669326
Comment 3 Rodrigo Kumpera 2017-10-11 00:31:01 UTC
Zoltan, couldn't this be a similar issue to the one you fixed on amd64?
Comment 4 Bernhard Urban 2017-10-11 07:55:02 UTC
output of  MONO_VERBOSE_METHOD=Microsoft.CodeAnalysis.CSharp.CSharpSyntaxNode:ComputeSyntaxTree

https://gist.github.com/152bd288cf77f8b811b36fc717b64317
Comment 5 Bernhard Urban 2017-10-12 10:16:38 UTC
Current state of affairs:

First off: The statement in the first comment ("100% reproducible") is not true. I would say it somewhere about 90% though. Still, it crashes always at the same instruction, so that's "good".

Second: NRE is _not_ caused by `nodes` being `null`, but by the first element of `nodes` being `null`; the first element is returned by the enumerator generated due to the for each loop: http://source.roslyn.io/#Microsoft.CodeAnalysis.CSharp/Syntax/CSharpSyntaxNode.cs,109
Looking at the method that cannot be the case for the first element; if the `node` would be indeed `null`, then we would see a crash further up in the method.

The next thought is: Where is `nodes` coming from? It's an `ArrayBuilder` instance, and, following `GetInstance()` you will see that ObjectPools are used to allocate such `ArrayBuilder`s. That's the `Allocate` method: http://source.roslyn.io/#Microsoft.CodeAnalysis/ObjectPool%25601.cs,034674a449b3a226

Given my trust issues with racy code, I came up with a "clever" hack in the runtime, that makes `ObjectPool:Allocate()` always synchronized: https://gist.github.com/lewurm/ad8a114e41926e1d65d4666425b3cd63

And indeed, the crash goes away, but others pop up now. I haven't gotten a crash twice yet, so the variety is kinda big; it ranges from SIGSEGV to strange C# compiler errors that don't make sense (so not really a crash, but something definitely goes wrong).

My current bet: Our `Interlocked.CompareExchange<T>(ref T location1, T value, T comparand)` implementation is broken, at least for that device/environment.
Comment 6 Ludovic Henry 2017-10-12 13:15:21 UTC
In have already witnessed `Interlocked.CompareExchange<T>(ref T location1, T value, T comparand)` breaking things because it would use the "red zone" on x86_64 and we would spend the thread right at the wrong instruction.
Comment 7 Ludovic Henry 2017-10-13 14:21:34 UTC
For reference to https://bugzilla.xamarin.com/show_bug.cgi?id=56546#c6 , the bug which hit the Interlocked.CompareExchange bug is https://bugzilla.xamarin.com/show_bug.cgi?id=38012
Comment 8 Bernhard Urban 2017-10-16 11:30:59 UTC
I was hoping that with https://github.com/mono/mono/pull/5780 I was onto something regarding this bug, but alas it didn't help. I'm still clueless what the cause of this bug could be.

Note You need to log in before you can comment on or make changes to this bug.