Skip to content

Unexpected value 'Unknown' of type 'Microsoft.CodeAnalysis.CSharp.AccessorKind' #78566

@rmontanob0830

Description

@rmontanob0830

Hey all, not sure if this would be the correct channel for internal requests, code is accessible through ADO:

Version Used:

Microsoft Visual Studio Enterprise 2022 (64-bit) - Current
Version 17.13.6

Trying to compile a .NET 8 SDK style project

Roslyn: .nuget\packages\oss.roslynanalysis\1.4.10\

Steps to Reproduce:

  1. Trying to build the project
  2. Compilation fails with message: "csc.exe" exited with code -2146232797.
  3. Did a crash dump on csc.exe, found this error message there:

Unhandled exception at 0x00007FFB08201BC7 (Microsoft.CodeAnalysis.ni.dll) in csc.exe.dmp
Source: "Microsoft.CodeAnalysis.CSharp

Also, a message started appearing on VS:

Feature 'Diagnostic analyzer runner' is currently unavailable due to an internal error. (pasting stack trace down below)

A minimal repro, with source-code provided, is ideal. Most compiler/language issues can be distilled into a snippet that can be pasted into sharplab.

Diagnostic Id: N/A, although not sure if you can provide instructions to get it.

Expected Behavior:

  • No crash at compilation time other than code errors

Actual Behavior:

  • csc.exe crashes while compiling
  • The 'Diagnostic analyzer runner' crashes

Crash dump info:

  Name Value Type
$exception {"Unexpected value 'Unknown' of type 'Microsoft.CodeAnalysis.CSharp.AccessorKind'"} System.InvalidOperationException
  Name Value Type
  StackTrace " at Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis.MethodInfo.Create(PropertySymbol property, AccessorKind accessorKind)\r\n at Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis.VisitIndexerAccess(BoundIndexerAccess node)\r\n at Microsoft.CodeAnalysis.CSharp.BoundTreeWalkerWithStackGuard.VisitExpressionOrPatternWithoutStackGuard(BoundNode node)\r\n at Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor.VisitExpressionOrPatternWithStackGuard(Int32& recursionDepth, BoundNode node)\r\n at Microsoft.CodeAnalysis.CSharp.BoundTreeWalker.VisitNameOfOperator(BoundNameOfOperator node)\r\n at Microsoft.CodeAnalysis.CSharp.BoundTreeWalkerWithStackGuard.VisitExpressionOrPatternWithoutStackGuard(BoundNode node)\r\n at Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor.VisitExpressionOrPatternWithStackGuard(Int32& recursionDepth, BoundNode node)\r\n at Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis.VisitArgumentsAndGetArgumentPlaceholders(BoundExpression receiverOpt, ImmutableArray1 arguments)\r\n at Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis.VisitObjectCreationExpressionBase(BoundObjectCreationExpressionBase node)\r\n at Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis.VisitObjectCreationExpression(BoundObjectCreationExpression node)\r\n at Microsoft.CodeAnalysis.CSharp.BoundTreeWalkerWithStackGuard.VisitExpressionOrPatternWithoutStackGuard(BoundNode node)\r\n at Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor.VisitExpressionOrPatternWithStackGuard(Int32& recursionDepth, BoundNode node)\r\n at Microsoft.CodeAnalysis.CSharp.BoundTreeWalker.VisitConversion(BoundConversion node)\r\n at Microsoft.CodeAnalysis.CSharp.BoundTreeWalkerWithStackGuard.VisitExpressionOrPatternWithoutStackGuard(BoundNode node)\r\n at Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor.VisitExpressionOrPatternWithStackGuard(BoundNode node)\r\n at Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor.VisitExpressionOrPatternWithStackGuard(Int32& recursionDepth, BoundNode node)\r\n at Microsoft.CodeAnalysis.CSharp.BoundTreeWalker.VisitThrowStatement(BoundThrowStatement node)\r\n at Microsoft.CodeAnalysis.CSharp.BoundTreeWalkerWithStackGuard.Visit(BoundNode node)\r\n at Microsoft.CodeAnalysis.CSharp.BoundTreeWalker.VisitList[T](ImmutableArray1 list)\r\n at Microsoft.CodeAnalysis.CSharp.BoundTreeWalker.VisitBlock(BoundBlock node)\r\n at Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis.VisitBlock(BoundBlock node)\r\n at Microsoft.CodeAnalysis.CSharp.BoundTreeWalkerWithStackGuard.Visit(BoundNode node)\r\n at Microsoft.CodeAnalysis.CSharp.BoundTreeWalkerWithStackGuardWithoutRecursionOnTheLeftOfBinaryOperator.VisitIfStatement(BoundIfStatement node)\r\n at Microsoft.CodeAnalysis.CSharp.BoundTreeWalkerWithStackGuard.Visit(BoundNode node)\r\n at Microsoft.CodeAnalysis.CSharp.BoundTreeWalker.VisitList[T](ImmutableArray1 list)\r\n at Microsoft.CodeAnalysis.CSharp.BoundTreeWalker.VisitBlock(BoundBlock node)\r\n at Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis.VisitBlock(BoundBlock node)\r\n at Microsoft.CodeAnalysis.CSharp.BoundTreeWalkerWithStackGuard.Visit(BoundNode node)\r\n at Microsoft.CodeAnalysis.CSharp.BoundTreeWalker.VisitTryStatement(BoundTryStatement node)\r\n at Microsoft.CodeAnalysis.CSharp.BoundTreeWalkerWithStackGuard.Visit(BoundNode node)\r\n at Microsoft.CodeAnalysis.CSharp.BoundTreeWalker.VisitList[T](ImmutableArray1 list)\r\n at Microsoft.CodeAnalysis.CSharp.BoundTreeWalker.VisitBlock(BoundBlock node)\r\n at Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis.VisitBlock(BoundBlock node)\r\n at Microsoft.CodeAnalysis.CSharp.BoundTreeWalkerWithStackGuard.Visit(BoundNode node)\r\n at Microsoft.CodeAnalysis.CSharp.BoundTreeWalker.VisitNonConstructorMethodBody(BoundNonConstructorMethodBody node)\r\n at Microsoft.CodeAnalysis.CSharp.BoundTreeWalkerWithStackGuard.Visit(BoundNode node)\r\n at Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis.Analyze(CSharpCompilation compilation, MethodSymbol symbol, BoundNode node, BindingDiagnosticBag diagnostics)\r\n at Microsoft.CodeAnalysis.CSharp.MethodCompiler.BindMethodBody(MethodSymbol method, TypeCompilationState compilationState, BindingDiagnosticBag diagnostics, Boolean includeInitializersInBody, BoundNode initializersBody, Boolean reportNullableDiagnostics, ImportChain& importChain, Boolean& originalBodyNested, Boolean& prependedDefaultValueTypeConstructorInitializer, InitialState& forSemanticModel)\r\n at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileMethod(MethodSymbol methodSymbol, Int32 methodOrdinal, ProcessedFieldInitializers& processedInitializers, SynthesizedSubmissionFields previousSubmissionFields, TypeCompilationState compilationState)\r\n at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileNamedType(NamedTypeSymbol containingType)\r\n at Microsoft.CodeAnalysis.CSharp.MethodCompiler.<>c__DisplayClass25_0.b__0()" string

Feature 'Diagnostic analyzer runner' is currently unavailable due to an internal error stack trace:

StreamJsonRpc.RemoteInvocationException: Unexpected value 'Unknown' of type 'Microsoft.CodeAnalysis.CSharp.AccessorKind'
   at StreamJsonRpc.JsonRpc.<InvokeCoreAsync>d__156`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Microsoft.CodeAnalysis.Remote.BrokeredServiceConnection`1.<TryInvokeAsync>d__18`1.MoveNext()
RPC server exception:
System.InvalidOperationException: Unexpected value 'Unknown' of type 'Microsoft.CodeAnalysis.CSharp.AccessorKind'
      at Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis.MethodInfo.Create(PropertySymbol property, AccessorKind accessorKind)
      at Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis.VisitIndexerAccess(BoundIndexerAccess node)
      at Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor.VisitExpressionOrPatternWithStackGuard(Int32& recursionDepth, BoundNode node)
      at Microsoft.CodeAnalysis.CSharp.BoundTreeWalker.VisitNameOfOperator(BoundNameOfOperator node)
      at Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis.VisitArgumentsAndGetArgumentPlaceholders(BoundExpression receiverOpt, ImmutableArray`1 arguments)
      at Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis.VisitObjectCreationExpressionBase(BoundObjectCreationExpressionBase node)
      at Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis.VisitObjectCreationExpression(BoundObjectCreationExpression node)
      at Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor.VisitExpressionOrPatternWithStackGuard(Int32& recursionDepth, BoundNode node)
      at Microsoft.CodeAnalysis.CSharp.BoundTreeWalker.VisitConversion(BoundConversion node)
      at Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor.VisitExpressionOrPatternWithStackGuard(BoundNode node)
      at Microsoft.CodeAnalysis.CSharp.BoundTreeVisitor.VisitExpressionOrPatternWithStackGuard(Int32& recursionDepth, BoundNode node)
      at Microsoft.CodeAnalysis.CSharp.BoundTreeWalker.VisitThrowStatement(BoundThrowStatement node)
      at Microsoft.CodeAnalysis.CSharp.BoundTreeWalker.VisitList[T](ImmutableArray`1 list)
      at Microsoft.CodeAnalysis.CSharp.BoundTreeWalker.VisitBlock(BoundBlock node)
      at Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis.VisitBlock(BoundBlock node)
      at Microsoft.CodeAnalysis.CSharp.BoundTreeWalkerWithStackGuardWithoutRecursionOnTheLeftOfBinaryOperator.VisitIfStatement(BoundIfStatement node)
      at Microsoft.CodeAnalysis.CSharp.BoundTreeWalker.VisitList[T](ImmutableArray`1 list)
      at Microsoft.CodeAnalysis.CSharp.BoundTreeWalker.VisitBlock(BoundBlock node)
      at Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis.VisitBlock(BoundBlock node)
      at Microsoft.CodeAnalysis.CSharp.BoundTreeWalker.VisitTryStatement(BoundTryStatement node)
      at Microsoft.CodeAnalysis.CSharp.BoundTreeWalker.VisitList[T](ImmutableArray`1 list)
      at Microsoft.CodeAnalysis.CSharp.BoundTreeWalker.VisitBlock(BoundBlock node)
      at Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis.VisitBlock(BoundBlock node)
      at Microsoft.CodeAnalysis.CSharp.BoundTreeWalker.VisitNonConstructorMethodBody(BoundNonConstructorMethodBody node)
      at Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis.Analyze(CSharpCompilation compilation, MethodSymbol symbol, BoundNode node, BindingDiagnosticBag diagnostics)
      at Microsoft.CodeAnalysis.CSharp.MethodCompiler.BindMethodBody(MethodSymbol method, TypeCompilationState compilationState, BindingDiagnosticBag diagnostics, Boolean includeInitializersInBody, BoundNode initializersBody, Boolean reportNullableDiagnostics, ImportChain& importChain, Boolean& originalBodyNested, Boolean& prependedDefaultValueTypeConstructorInitializer, InitialState& forSemanticModel)
      at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileMethod(MethodSymbol methodSymbol, Int32 methodOrdinal, ProcessedFieldInitializers& processedInitializers, SynthesizedSubmissionFields previousSubmissionFields, TypeCompilationState compilationState)
      at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileNamedType(NamedTypeSymbol containingType)
      at Microsoft.CodeAnalysis.CSharp.MethodCompiler.<>c__DisplayClass25_0.<CompileNamedTypeAsync>b__0()
      at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
   --- End of stack trace from previous location ---
      at System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(Thread threadPoolThread, ExecutionContext executionContext, ContextCallback callback, Object state)
      at System.Threading.Tasks.Task.ExecuteWithThreadLocal(Task& currentTaskSlot, Thread threadPoolThread)
   --- End of stack trace from previous location ---
      at Microsoft.CodeAnalysis.CSharp.MethodCompiler.WaitForWorkers()
      at Microsoft.CodeAnalysis.CSharp.MethodCompiler.CompileMethodBodies(CSharpCompilation compilation, PEModuleBuilder moduleBeingBuiltOpt, Boolean emittingPdb, Boolean hasDeclarationErrors, Boolean emitMethodBodies, BindingDiagnosticBag diagnostics, Predicate`1 filterOpt, CancellationToken cancellationToken)
      at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.<GetDiagnosticsForMethodBodiesInTree>g__compileMethodBodiesAndDocComments|238_0(SyntaxTree filterTree, Nullable`1 filterSpan, BindingDiagnosticBag bindingDiagnostics, CancellationToken cancellationToken)
      at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.GetDiagnosticsForMethodBodiesInTree(SyntaxTree tree, Nullable`1 span, CancellationToken cancellationToken)
      at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.GetDiagnosticsForSyntaxTree(CompilationStage stage, SyntaxTree syntaxTree, Nullable`1 filterSpanWithinTree, Boolean includeEarlierStages, CancellationToken cancellationToken)
      at Microsoft.CodeAnalysis.CSharp.SyntaxTreeSemanticModel.GetDiagnostics(Nullable`1 span, CancellationToken cancellationToken)
      at Microsoft.CodeAnalysis.Diagnostics.CompilationWithAnalyzers.<GetCompilationEventsForSingleFileAnalysis>g__generateCompilationEvents|64_0(Compilation compilation, AnalysisScope analysisScope, CancellationToken cancellationToken)
      at Microsoft.CodeAnalysis.Diagnostics.CompilationWithAnalyzers.GetCompilationEventsForSingleFileAnalysis(Compilation compilation, AnalysisScope analysisScope, ImmutableArray`1 additionalFiles, Boolean hasAnyActionsRequiringCompilationEvents, CancellationToken cancellationToken)
      at Microsoft.CodeAnalysis.Diagnostics.CompilationWithAnalyzers.ComputeAnalyzerDiagnosticsAsync(AnalysisScope analysisScope, CancellationToken cancellationToken)
      at Microsoft.CodeAnalysis.Diagnostics.CompilationWithAnalyzers.GetAnalysisResultCoreAsync(SemanticModel model, Nullable`1 filterSpan, ImmutableArray`1 analyzers, CancellationToken cancellationToken)
      at Microsoft.CodeAnalysis.Diagnostics.CompilationWithAnalyzersPair.GetAnalysisResultAsync(SemanticModel model, Nullable`1 filterSpan, ImmutableArray`1 projectAnalyzers, ImmutableArray`1 hostAnalyzers, CancellationToken cancellationToken)
      at Microsoft.CodeAnalysis.Diagnostics.Extensions.GetAnalysisResultAsync(CompilationWithAnalyzersPair compilationWithAnalyzers, DocumentAnalysisScope documentAnalysisScope, CancellationToken cancellationToken)
      at Microsoft.CodeAnalysis.Diagnostics.Extensions.GetAnalysisResultAsync(CompilationWithAnalyzersPair compilationWithAnalyzers, DocumentAnalysisScope documentAnalysisScope, Project project, DiagnosticAnalyzerInfoCache analyzerInfoCache, CancellationToken cancellationToken)
      at Microsoft.CodeAnalysis.Remote.Diagnostics.DiagnosticComputer.AnalyzeAsync(CompilationWithAnalyzersPair compilationWithAnalyzers, BidirectionalMap`2 analyzerToIdMap, ImmutableArray`1 projectAnalyzers, ImmutableArray`1 hostAnalyzers, SkippedHostAnalyzersInfo skippedAnalyzersInfo, Boolean reportSuppressedDiagnostics, Boolean logPerformanceInfo, Boolean getTelemetryInfo, CancellationToken cancellationToken)
      at Microsoft.CodeAnalysis.Remote.Diagnostics.DiagnosticComputer.GetDiagnosticsAsync(ImmutableArray`1 projectAnalyzerIds, ImmutableArray`1 hostAnalyzerIds, Boolean reportSuppressedDiagnostics, Boolean logPerformanceInfo, Boolean getTelemetryInfo, CancellationToken cancellationToken)
      at Microsoft.CodeAnalysis.Remote.Diagnostics.DiagnosticComputer.GetNormalPriorityDiagnosticsAsync(ImmutableArray`1 projectAnalyzerIds, ImmutableArray`1 hostAnalyzerIds, Boolean reportSuppressedDiagnostics, Boolean logPerformanceInfo, Boolean getTelemetryInfo, CancellationToken cancellationToken)
      at Microsoft.CodeAnalysis.Remote.RemoteDiagnosticAnalyzerService.<>c__DisplayClass3_0.<<CalculateDiagnosticsAsync>b__0>d.MoveNext()
   --- End of stack trace from previous location ---
      at Microsoft.CodeAnalysis.Remote.RemoteWorkspace.<>c__DisplayClass7_0`1.<<RunWithSolutionAsync>g__ProcessSolutionAsync|1>d.MoveNext()
   --- End of stack trace from previous location ---
      at Microsoft.CodeAnalysis.Remote.RemoteWorkspace.RunWithSolutionAsync[T](AssetProvider assetProvider, Checksum solutionChecksum, Boolean updatePrimaryBranch, Func`2 implementation, CancellationToken cancellationToken)
      at Microsoft.CodeAnalysis.Remote.RemoteWorkspace.RunWithSolutionAsync[T](AssetProvider assetProvider, Checksum solutionChecksum, Boolean updatePrimaryBranch, Func`2 implementation, CancellationToken cancellationToken)
      at Microsoft.CodeAnalysis.Remote.BrokeredServiceBase.RunWithSolutionAsync[T](Checksum solutionChecksum, Func`2 implementation, CancellationToken cancellationToken)
      at Microsoft.CodeAnalysis.Remote.RemoteDiagnosticAnalyzerService.CalculateDiagnosticsAsync(Checksum solutionChecksum, DiagnosticArguments arguments, CancellationToken cancellationToken)

Please let me know if you would need any more details, thanks!

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions