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

NRE in GetExplicitInterfaceImplementations when building dotnet/runtime #46575

Closed
RikkiGibson opened this issue Aug 5, 2020 · 15 comments
Closed
Assignees
Labels
Area-Compilers Bug Tenet-Reliability Customer telemetry indicates that the product is failing in a crash/hang/dataloss manner.
Milestone

Comments

@RikkiGibson
Copy link
Contributor

RikkiGibson commented Aug 5, 2020

Version Used: 81c5d71

Steps to Reproduce:

.\Build.cmd -pack -configuration Release in Roslyn, then set up a dotnet/runtime enlistment to use your locally build compiler. You may use branch https://github.com/RikkiGibson/runtime/tree/use-local-roslyn as a starting point. NOTE: you must build a release package to repro this bug and change the RestoreAdditionalProjectSources path from Debug to Release.

Once that is complete, run .\Build.cmd -subset libs to repro the bug.

Expected Behavior:
Builds without errors

Actual Behavior:

Process terminated. System.NullReferenceException: Object reference not set to an instance of an object. [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol.get_ExplicitInterfaceImplementations() in C:\Users\rikki\src\roslyn\src\Compilers\CSharp\Portable\Symbols\Metadata\PE\PEMethodSymbol.cs:line 1232 [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions.GetExplicitInterfaceImplementations(Symbol member) in C:\Users\rikki\src\roslyn\src\Compilers\CSharp\Portable\Symbols\MemberSymbolExtensions.cs:line 516 [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol.MakeExplicitInterfaceImplementationMap() in C:\Users\rikki\src\roslyn\src\Compilers\CSharp\Portable\Symbols\TypeSymbol.cs:line 2091 [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol.GetExplicitImplementationForInterfaceMember(Symbol interfaceMember) in C:\Users\rikki\src\roslyn\src\Compilers\CSharp\Portable\Symbols\TypeSymbol.cs:line 2082 [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol.ComputeImplementationForInterfaceMember(Symbol interfaceMember, TypeSymbol implementingType, DiagnosticBag diagnostics, Boolean ignoreImplementationInInterfaces, Boolean& implementationInInterfacesMightChangeResult) in C:\Users\rikki\src\roslyn\src\Compilers\CSharp\Portable\Symbols\TypeSymbol.cs:line 839 [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol.ComputeImplementationAndDiagnosticsForInterfaceMember(Symbol interfaceMember, Boolean ignoreImplementationInInterfaces, Boolean& implementationInInterfacesMightChangeResult) in C:\Users\rikki\src\roslyn\src\Compilers\CSharp\Portable\Symbols\TypeSymbol.cs:line 781 [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol.FindImplementationForInterfaceMemberInNonInterfaceWithDiagnostics(Symbol interfaceMember, Boolean ignoreImplementationInInterfacesIfResultIsNotReady) in C:\Users\rikki\src\roslyn\src\Compilers\CSharp\Portable\Symbols\TypeSymbol.cs:line 757 [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol.ComputeInterfaceImplementations(DiagnosticBag diagnostics, CancellationToken cancellationToken) in C:\Users\rikki\src\roslyn\src\Compilers\CSharp\Portable\Symbols\Source\SourceMemberContainerSymbol_ImplementationChecks.cs:line 157 [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol.GetSynthesizedExplicitImplementations(CancellationToken cancellationToken) in C:\Users\rikki\src\roslyn\src\Compilers\CSharp\Portable\Symbols\Source\SourceMemberContainerSymbol_ImplementationChecks.cs:line 50 [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol.ForceComplete(SourceLocation locationOpt, CancellationToken cancellationToken) in C:\Users\rikki\src\roslyn\src\Compilers\CSharp\Portable\Symbols\Source\SourceMemberContainerSymbol.cs:line 507 [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.CSharp.Symbol.ForceCompleteMemberByLocation(SourceLocation locationOpt, Symbol member, CancellationToken cancellationToken) in C:\Users\rikki\src\roslyn\src\Compilers\CSharp\Portable\Symbols\Symbol.cs:line 800 [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol.<>c__DisplayClass49_1.<ForceComplete>b__0(Int32 i) in C:\Users\rikki\src\roslyn\src\Compilers\CSharp\Portable\Symbols\Source\SourceNamespaceSymbol_Completion.cs:line 61 [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at System.Environment.FailFast(System.String, System.Exception) [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.FailFast.OnFatalException(System.Exception) [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.FatalError.Report(System.Exception, System.Action`1<System.Exception>) [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.FatalError.Report(System.Exception) [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.FatalError.ReportUnlessCanceled(System.Exception) [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol+<>c__DisplayClass49_1.<ForceComplete>b__0(Int32) [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol.get_ExplicitInterfaceImplementations() [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions.GetExplicitInterfaceImplementations(Microsoft.CodeAnalysis.CSharp.Symbol) [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol.MakeExplicitInterfaceImplementationMap() [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol.GetExplicitImplementationForInterfaceMember(Microsoft.CodeAnalysis.CSharp.Symbol) [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol.ComputeImplementationForInterfaceMember(Microsoft.CodeAnalysis.CSharp.Symbol, Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol, Microsoft.CodeAnalysis.DiagnosticBag, Boolean, Boolean ByRef) [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol.ComputeImplementationAndDiagnosticsForInterfaceMember(Microsoft.CodeAnalysis.CSharp.Symbol, Boolean, Boolean ByRef) [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol.FindImplementationForInterfaceMemberInNonInterfaceWithDiagnostics(Microsoft.CodeAnalysis.CSharp.Symbol, Boolean) [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol.ComputeInterfaceImplementations(Microsoft.CodeAnalysis.DiagnosticBag, System.Threading.CancellationToken) [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol.GetSynthesizedExplicitImplementations(System.Threading.CancellationToken) [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol.ForceComplete(Microsoft.CodeAnalysis.SourceLocation, System.Threading.CancellationToken) [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.CSharp.Symbol.ForceCompleteMemberByLocation(Microsoft.CodeAnalysis.SourceLocation, Microsoft.CodeAnalysis.CSharp.Symbol, System.Threading.CancellationToken) [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol+<>c__DisplayClass49_1.<ForceComplete>b__0(Int32) [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Roslyn.Utilities.UICultureUtilities+<>c__DisplayClass6_0`1[[System.Int32, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].<WithCurrentUICulture>b__0(Int32) [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at System.Threading.Tasks.Parallel+<>c__DisplayClass19_0`1[[System.__Canon, System.Private.CoreLib, Version=5.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]].<ForWorker>b__1(System.Threading.Tasks.RangeWorker ByRef, Int32, Boolean ByRef) [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at System.Threading.Tasks.TaskReplicator+Replica`1[[System.Threading.Tasks.RangeWorker, System.Threading.Tasks.Parallel, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a]].ExecuteAction(Boolean ByRef) [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at System.Threading.Tasks.TaskReplicator+Replica.Execute() [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at System.Threading.Tasks.TaskReplicator+Replica+<>c.<.ctor>b__4_0(System.Object) [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at System.Threading.Tasks.Task.InnerInvoke() [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at System.Threading.Tasks.Task+<>c.<.cctor>b__277_0(System.Object) [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(System.Threading.Thread, System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object) [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at System.Threading.Tasks.Task.ExecuteWithThreadLocal(System.Threading.Tasks.Task ByRef, System.Threading.Thread) [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at System.Threading.Tasks.Task.ExecuteEntryUnsafe(System.Threading.Thread) [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at System.Threading.Tasks.Task.ExecuteFromThreadPool(System.Threading.Thread) [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at System.Threading.ThreadPoolWorkQueue.Dispatch() [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback() [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
System.NullReferenceException: Object reference not set to an instance of an object. [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol.get_ExplicitInterfaceImplementations() in C:\Users\rikki\src\roslyn\src\Compilers\CSharp\Portable\Symbols\Metadata\PE\PEMethodSymbol.cs:line 1232 [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions.GetExplicitInterfaceImplementations(Symbol member) in C:\Users\rikki\src\roslyn\src\Compilers\CSharp\Portable\Symbols\MemberSymbolExtensions.cs:line 516 [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol.MakeExplicitInterfaceImplementationMap() in C:\Users\rikki\src\roslyn\src\Compilers\CSharp\Portable\Symbols\TypeSymbol.cs:line 2091 [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol.GetExplicitImplementationForInterfaceMember(Symbol interfaceMember) in C:\Users\rikki\src\roslyn\src\Compilers\CSharp\Portable\Symbols\TypeSymbol.cs:line 2082 [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol.ComputeImplementationForInterfaceMember(Symbol interfaceMember, TypeSymbol implementingType, DiagnosticBag diagnostics, Boolean ignoreImplementationInInterfaces, Boolean& implementationInInterfacesMightChangeResult) in C:\Users\rikki\src\roslyn\src\Compilers\CSharp\Portable\Symbols\TypeSymbol.cs:line 839 [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol.ComputeImplementationAndDiagnosticsForInterfaceMember(Symbol interfaceMember, Boolean ignoreImplementationInInterfaces, Boolean& implementationInInterfacesMightChangeResult) in C:\Users\rikki\src\roslyn\src\Compilers\CSharp\Portable\Symbols\TypeSymbol.cs:line 781 [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol.FindImplementationForInterfaceMemberInNonInterfaceWithDiagnostics(Symbol interfaceMember, Boolean ignoreImplementationInInterfacesIfResultIsNotReady) in C:\Users\rikki\src\roslyn\src\Compilers\CSharp\Portable\Symbols\TypeSymbol.cs:line 757 [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol.ComputeInterfaceImplementations(DiagnosticBag diagnostics, CancellationToken cancellationToken) in C:\Users\rikki\src\roslyn\src\Compilers\CSharp\Portable\Symbols\Source\SourceMemberContainerSymbol_ImplementationChecks.cs:line 157 [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol.GetSynthesizedExplicitImplementations(CancellationToken cancellationToken) in C:\Users\rikki\src\roslyn\src\Compilers\CSharp\Portable\Symbols\Source\SourceMemberContainerSymbol_ImplementationChecks.cs:line 50 [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol.ForceComplete(SourceLocation locationOpt, CancellationToken cancellationToken) in C:\Users\rikki\src\roslyn\src\Compilers\CSharp\Portable\Symbols\Source\SourceMemberContainerSymbol.cs:line 507 [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.CSharp.Symbol.ForceCompleteMemberByLocation(SourceLocation locationOpt, Symbol member, CancellationToken cancellationToken) in C:\Users\rikki\src\roslyn\src\Compilers\CSharp\Portable\Symbols\Symbol.cs:line 800 [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
   at Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol.<>c__DisplayClass49_1.<ForceComplete>b__0(Int32 i) in C:\Users\rikki\src\roslyn\src\Compilers\CSharp\Portable\Symbols\Source\SourceNamespaceSymbol_Completion.cs:line 61 [C:\Users\rikki\src\runtime\src\libraries\System.Diagnostics.Process\ref\System.Diagnostics.Process.csproj]
@RikkiGibson RikkiGibson added Bug Area-Compilers Tenet-Reliability Customer telemetry indicates that the product is failing in a crash/hang/dataloss manner. labels Aug 5, 2020
@RikkiGibson
Copy link
Contributor Author

FYI @safern

@RikkiGibson
Copy link
Contributor Author

@RikkiGibson
Copy link
Contributor Author

Things I have figured out about this bug:

  • This bug was introduced between official builds 3.8.0-2.20403.10 (b0bff92) and 3.8.0-2.20404.11 (2c5f586). Compare link
  • This bug only seems to occur in Release mode, with no debugger attached to VBCSCompiler
  • We only seem to crash when building ref assemblies such as DbCommand in System.Data.Common

The compare link above is quite large and tends to time out, so I also have a list of PRs merged between the two builds

@RikkiGibson
Copy link
Contributor Author

We have added a workaround to the compiler which we should remove once we and our customers are ready to consume a .NET 5 runtime that has the fix.

@safern
Copy link
Member

safern commented Sep 2, 2020

@RikkiGibson and @jaredpar just FYI aspnet/extensions is hitting this as well:

Exception occurred with following context:

Compilation: Microsoft.AspNetCore.Testing.Tests

ISymbol: TestEventSource (NamedType)

System.NullReferenceException: Object reference not set to an instance of an object.

at Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol.get_ExplicitInterfaceImplementations()

at Microsoft.CodeAnalysis.CSharp.Symbols.SymbolExtensions.GetExplicitInterfaceImplementations(Symbol member)

at Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol.MakeExplicitInterfaceImplementationMap()

at Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol.GetExplicitImplementationForInterfaceMember(Symbol interfaceMember)

at Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol.ComputeImplementationForInterfaceMember(Symbol interfaceMember, TypeSymbol implementingType, DiagnosticBag diagnostics, Boolean ignoreImplementationInInterfaces, Boolean& implementationInInterfacesMightChangeResult)

at Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol.ComputeImplementationAndDiagnosticsForInterfaceMember(Symbol interfaceMember, Boolean ignoreImplementationInInterfaces, Boolean& implementationInInterfacesMightChangeResult)

at Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol.FindImplementationForInterfaceMemberInNonInterfaceWithDiagnostics(Symbol interfaceMember, Boolean ignoreImplementationInInterfacesIfResultIsNotReady)

at Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol.FindImplementationForInterfaceMemberInNonInterface(Symbol interfaceMember, Boolean ignoreImplementationInInterfacesIfResultIsNotReady)

at Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol.FindImplementationForInterfaceMember(Symbol interfaceMember)

at Microsoft.CodeAnalysis.CSharp.Symbols.PublicModel.TypeSymbol.Microsoft.CodeAnalysis.ITypeSymbol.FindImplementationForInterfaceMember(ISymbol interfaceMember)

@RikkiGibson
Copy link
Contributor Author

The latest compilers from the VS 16.8 channel should not have this issue. Is there a PR which updates the roslyn dependency for that repo?

@safern
Copy link
Member

safern commented Sep 2, 2020

Yes, we're updating it to the same version as dotnet/runtime.

@RikkiGibson
Copy link
Contributor Author

Could you please link the PR?

@safern
Copy link
Member

safern commented Sep 2, 2020

This is one: dotnet/aspnetcore#25545

@Anipik do you have the one for extensions?

@RikkiGibson
Copy link
Contributor Author

That is surprising and unfortunate. We didn't think that the bug would reproduce for compilers that do not contain #44447. It might be necessary, unfortunately, to take a later compiler which includes #47007, the earliest of which is 3.8.0-3.20421.3

@safern
Copy link
Member

safern commented Sep 2, 2020

FYI: @dougbu in case you don't want to downgrade

@dougbu
Copy link
Member

dougbu commented Sep 2, 2020

(I hope to get dotnet/aspnetcore#25545 in as soon as I hear from my co-workers about the macOS timeouts we're also hitting and that I'm changing there. But, we can follow up later if necessary and I may not hear back today.)

Choosing a newer version of Microsoft.Net.Compilers.Toolset and leaving it unpinned in aspnetcore and aspnetcore-tooling is our current plan for the master branches now that arcade and aspnetcore use the same Mastro++ channels for this dependency (thanks @mmitche❕). But, based on our offline discussion about different versions used in the RC2 branches, I lean toward choosing a single version of this dependency for runtime, aspnetcore, aspnetcore-tooling, and extensions ASAP i.e. pinning them all at the same version (ignoring whatever arcade chooses from here on).

So, @Anipik @ericstj @safern will runtime and extensions move to something between 3.8.0-3.20421.3 (the "earliest" version @RikkiGibson mentioned) and 3.8.0-3.20452.1 (the latest in the 'VS 16.8' channel) today or tomorrow❔ If not, I'll leave dotnet/aspnetcore#25545 at 3.8.0-2.20403.2 for consistency w/ runtime's current toolset version.

@safern
Copy link
Member

safern commented Sep 2, 2020

Since we don't need a compiler feature in runtime or extensions I don't think we will put up an update just to get a "newer" compiler in RC1/2 however we can do it in runtime or arcade master to dog food

@andrei-epure-sonarsource

Hi. We opened in September #47187 which was closed as duplicate of this issue.

FYI #47187 doesn't reproduce anymore in dotnet 5.0.100-rc.2.20479.15 . I'm not sure if this issue should be closed or not.

@jaredpar jaredpar closed this as completed Nov 9, 2020
@RikkiGibson
Copy link
Contributor Author

I had meant to use this issue to track removing the workaround once we had a version of dotnet/runtime with the fix. We might be ready to do that now, so maybe I'll just give it a try and send the PR later this morning.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-Compilers Bug Tenet-Reliability Customer telemetry indicates that the product is failing in a crash/hang/dataloss manner.
Projects
Archived in project
Development

No branches or pull requests

5 participants