-
Notifications
You must be signed in to change notification settings - Fork 4.2k
Description
StreamJsonRpc.RemoteInvocationException: Assertion failed
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 System.Runtime.CompilerServices.ConfiguredValueTaskAwaitable`1.ConfiguredValueTaskAwaiter.GetResult()
at Microsoft.CodeAnalysis.Remote.BrokeredServiceConnection`1.<TryInvokeAsync>d__22`1.MoveNext() in C:\R0\src\Workspaces\Remote\Core\BrokeredServiceConnection.cs:line 257
RPC server exception:
System.InvalidOperationException: Assertion failed
at Microsoft.CodeAnalysis.Remote.ThrowingTraceListener.Fail(String message, String detailMessage) in C:\R0\src\Workspaces\Remote\ServiceHub\Host\ThrowingTraceListener.cs:line 14
at System.Diagnostics.TraceInternal.Fail(String message, String detailMessage)
at System.Diagnostics.Debug.Fail(String message, String detailMessage)
at Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamedTypeSymbol.AfterMembersCompletedChecks(BindingDiagnosticBag diagnostics) in C:\R0\src\Compilers\CSharp\Portable\Symbols\Source\SourceNamedTypeSymbol.cs:line 1841
at Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberContainerTypeSymbol.ForceComplete(SourceLocation locationOpt, Predicate`1 filter, CancellationToken cancellationToken) in C:\R0\src\Compilers\CSharp\Portable\Symbols\Source\SourceMemberContainerSymbol.cs:line 677
at Microsoft.CodeAnalysis.CSharp.Symbol.ForceCompleteMemberConditionally(SourceLocation locationOpt, Predicate`1 filter, Symbol member, CancellationToken cancellationToken) in C:\R0\src\Compilers\CSharp\Portable\Symbols\Symbol.cs:line 965
at Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol.ForceComplete(SourceLocation locationOpt, Predicate`1 filter, CancellationToken cancellationToken) in C:\R0\src\Compilers\CSharp\Portable\Symbols\Source\SourceNamespaceSymbol_Completion.cs:line 80
at Microsoft.CodeAnalysis.CSharp.Symbol.ForceCompleteMemberConditionally(SourceLocation locationOpt, Predicate`1 filter, Symbol member, CancellationToken cancellationToken) in C:\R0\src\Compilers\CSharp\Portable\Symbols\Symbol.cs:line 965
at Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol.ForceComplete(SourceLocation locationOpt, Predicate`1 filter, CancellationToken cancellationToken) in C:\R0\src\Compilers\CSharp\Portable\Symbols\Source\SourceNamespaceSymbol_Completion.cs:line 80
at Microsoft.CodeAnalysis.CSharp.Symbol.ForceCompleteMemberConditionally(SourceLocation locationOpt, Predicate`1 filter, Symbol member, CancellationToken cancellationToken) in C:\R0\src\Compilers\CSharp\Portable\Symbols\Symbol.cs:line 965
at Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol.ForceComplete(SourceLocation locationOpt, Predicate`1 filter, CancellationToken cancellationToken) in C:\R0\src\Compilers\CSharp\Portable\Symbols\Source\SourceNamespaceSymbol_Completion.cs:line 80
at Microsoft.CodeAnalysis.CSharp.Symbol.ForceCompleteMemberConditionally(SourceLocation locationOpt, Predicate`1 filter, Symbol member, CancellationToken cancellationToken) in C:\R0\src\Compilers\CSharp\Portable\Symbols\Symbol.cs:line 965
at Microsoft.CodeAnalysis.CSharp.Symbols.SourceNamespaceSymbol.ForceComplete(SourceLocation locationOpt, Predicate`1 filter, CancellationToken cancellationToken) in C:\R0\src\Compilers\CSharp\Portable\Symbols\Source\SourceNamespaceSymbol_Completion.cs:line 80
at Microsoft.CodeAnalysis.CSharp.Symbols.SourceModuleSymbol.ForceComplete(SourceLocation locationOpt, Predicate`1 filter, CancellationToken cancellationToken) in C:\R0\src\Compilers\CSharp\Portable\Symbols\Source\SourceModuleSymbol.cs:line 272
at Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol.ForceComplete(SourceLocation locationOpt, Predicate`1 filter, CancellationToken cancellationToken) in C:\R0\src\Compilers\CSharp\Portable\Symbols\Source\SourceAssemblySymbol.cs:line 929
at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.GetSourceDeclarationDiagnostics(SyntaxTree syntaxTree, Nullable`1 filterSpanWithinTree, Func`4 locationFilterOpt, Predicate`1 symbolFilter, CancellationToken cancellationToken) in C:\R0\src\Compilers\CSharp\Portable\Compilation\CSharpCompilation.cs:line 3232
at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.GetDiagnosticsWithoutSeverityFiltering(CompilationStage stage, Boolean includeEarlierStages, BindingDiagnosticBag builder, Predicate`1 symbolFilter, CancellationToken cancellationToken) in C:\R0\src\Compilers\CSharp\Portable\Compilation\CSharpCompilation.cs:line 3006
at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.GetDiagnostics(CompilationStage stage, Boolean includeEarlierStages, DiagnosticBag diagnostics, Predicate`1 symbolFilter, CancellationToken cancellationToken) in C:\R0\src\Compilers\CSharp\Portable\Compilation\CSharpCompilation.cs:line 2931
at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.GetDiagnostics(CompilationStage stage, Boolean includeEarlierStages, Predicate`1 symbolFilter, CancellationToken cancellationToken) in C:\R0\src\Compilers\CSharp\Portable\Compilation\CSharpCompilation.cs:line 2919
at Microsoft.CodeAnalysis.CSharp.CSharpCompilation.CompileMethods(CommonPEModuleBuilder moduleBuilder, Boolean emittingPdb, DiagnosticBag diagnostics, Predicate`1 filterOpt, CancellationToken cancellationToken) in C:\R0\src\Compilers\CSharp\Portable\Compilation\CSharpCompilation.cs:line 3481
at Microsoft.CodeAnalysis.Compilation.Emit(Stream peStream, Stream metadataPEStream, Stream pdbStream, Stream xmlDocumentationStream, Stream win32Resources, IEnumerable`1 manifestResources, EmitOptions options, IMethodSymbol debugEntryPoint, Stream sourceLinkStream, IEnumerable`1 embeddedTexts, RebuildData rebuildData, CompilationTestData testData, CancellationToken cancellationToken) in C:\R0\src\Compilers\Core\Portable\Compilation\Compilation.cs:line 2970
at Microsoft.CodeAnalysis.Compilation.Emit(Stream peStream, Stream pdbStream, Stream xmlDocumentationStream, Stream win32Resources, IEnumerable`1 manifestResources, EmitOptions options, IMethodSymbol debugEntryPoint, Stream sourceLinkStream, IEnumerable`1 embeddedTexts, Stream metadataPEStream, RebuildData rebuildData, CancellationToken cancellationToken) in C:\R0\src\Compilers\Core\Portable\Compilation\Compilation.cs:line 2911
at Microsoft.CodeAnalysis.Compilation.Emit(Stream peStream, Stream pdbStream, Stream xmlDocumentationStream, Stream win32Resources, IEnumerable`1 manifestResources, EmitOptions options, IMethodSymbol debugEntryPoint, Stream sourceLinkStream, IEnumerable`1 embeddedTexts, Stream metadataPEStream, CancellationToken cancellationToken) in C:\R0\src\Compilers\Core\Portable\Compilation\Compilation.cs:line 2799
at Microsoft.CodeAnalysis.SolutionCompilationState.SkeletonReferenceCache.<CreateSkeletonSet>g__TryCreateMetadataAndHandle|10_0(<>c__DisplayClass10_0&) in C:\R0\src\Workspaces\Core\Portable\Workspace\Solution\SolutionCompilationState.SkeletonReferenceCache.cs:line 247
at Microsoft.CodeAnalysis.SolutionCompilationState.SkeletonReferenceCache.CreateSkeletonSet(SolutionServices services, Compilation compilation, CancellationToken cancellationToken) in C:\R0\src\Workspaces\Core\Portable\Workspace\Solution\SolutionCompilationState.SkeletonReferenceCache.cs:line 221
at Microsoft.CodeAnalysis.SolutionCompilationState.SkeletonReferenceCache.<>c.<CreateSkeletonReferenceSetAsync>b__9_1(ValueTuple`2 arg, CancellationToken cancellationToken) in C:\R0\src\Workspaces\Core\Portable\Workspace\Solution\SolutionCompilationState.SkeletonReferenceCache.cs:line 212
at Roslyn.Utilities.AsyncLazy`1.AsyncLazyImpl`1.StartAsynchronousComputation(AsynchronousComputationToStart computationToStart, Request requestToCompleteSynchronously, CancellationToken callerCancellationToken) in C:\R0\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AsyncLazy`1.cs:line 409
at Roslyn.Utilities.AsyncLazy`1.AsyncLazyImpl`1.GetValueAsync(CancellationToken cancellationToken) in C:\R0\src\Workspaces\SharedUtilitiesAndExtensions\Compiler\Core\Utilities\AsyncLazy`1.cs:line 369
at Microsoft.CodeAnalysis.SolutionCompilationState.SkeletonReferenceCache.CreateSkeletonReferenceSetAsync(ICompilationTracker compilationTracker, SolutionCompilationState compilationState, CancellationToken cancellationToken) in C:\R0\src\Workspaces\Core\Portable\Workspace\Solution\SolutionCompilationState.SkeletonReferenceCache.cs:line 215
at Microsoft.CodeAnalysis.SolutionCompilationState.SkeletonReferenceCache.TryGetOrCreateReferenceSetAsync(ICompilationTracker compilationTracker, SolutionCompilationState compilationState, VersionStamp version, CancellationToken cancellationToken) in C:\R0\src\Workspaces\Core\Portable\Workspace\Solution\SolutionCompilationState.SkeletonReferenceCache.cs:line 178
at Microsoft.CodeAnalysis.SolutionCompilationState.SkeletonReferenceCache.GetOrBuildReferenceAsync(ICompilationTracker compilationTracker, SolutionCompilationState compilationState, MetadataReferenceProperties properties, CancellationToken cancellationToken) in C:\R0\src\Workspaces\Core\Portable\Workspace\Solution\SolutionCompilationState.SkeletonReferenceCache.cs:line 150
at Microsoft.CodeAnalysis.SolutionCompilationState.GetMetadataReferenceAsync(ICompilationTracker tracker, ProjectState fromProject, ProjectReference projectReference, Boolean includeCrossLanguage, CancellationToken cancellationToken) in C:\R0\src\Workspaces\Core\Portable\Workspace\Solution\SolutionCompilationState.cs:line 1313
at Microsoft.CodeAnalysis.SolutionCompilationState.RegularCompilationTracker.<>c__DisplayClass25_0.<<GetOrBuildFinalStateAsync>g__FinalizeCompilationWorkerAsync|4>d.MoveNext() in C:\R0\src\Workspaces\Core\Portable\Workspace\Solution\SolutionCompilationState.RegularCompilationTracker.cs:line 537
--- End of stack trace from previous location ---
at Microsoft.CodeAnalysis.SolutionCompilationState.RegularCompilationTracker.<>c__DisplayClass25_0.<<GetOrBuildFinalStateAsync>g__FinalizeCompilationAsync|3>d.MoveNext() in C:\R0\src\Workspaces\Core\Portable\Workspace\Solution\SolutionCompilationState.RegularCompilationTracker.cs:line 455
--- End of stack trace from previous location ---
at Microsoft.CodeAnalysis.SolutionCompilationState.RegularCompilationTracker.<>c__DisplayClass25_0.<<GetOrBuildFinalStateAsync>g__BuildFinalStateAsync|0>d.MoveNext() in C:\R0\src\Workspaces\Core\Portable\Workspace\Solution\SolutionCompilationState.RegularCompilationTracker.cs:line 305
--- End of stack trace from previous location ---
at Microsoft.CodeAnalysis.SolutionCompilationState.RegularCompilationTracker.GetOrBuildFinalStateAsync(SolutionCompilationState compilationState, CancellationToken cancellationToken) in C:\R0\src\Workspaces\Core\Portable\Workspace\Solution\SolutionCompilationState.RegularCompilationTracker.cs:line 267
at Microsoft.CodeAnalysis.SolutionCompilationState.RegularCompilationTracker.GetCompilationSlowAsync(SolutionCompilationState compilationState, CancellationToken cancellationToken) in C:\R0\src\Workspaces\Core\Portable\Workspace\Solution\SolutionCompilationState.RegularCompilationTracker.cs:line 238
at Microsoft.CodeAnalysis.SemanticSearch.QueryExecutionContext.<>c__DisplayClass18_0.<<InvokeAsync>b__0>d.MoveNext() in C:\R0\src\Features\Core\Portable\SemanticSearch\QueryExecutionContext.cs:line 58
--- End of stack trace from previous location ---
at Microsoft.CodeAnalysis.SemanticSearch.QueryExecutionContext.<>c__DisplayClass18_0.<<InvokeAsync>b__0>d.MoveNext() in C:\R0\src\Features\Core\Portable\SemanticSearch\QueryExecutionContext.cs:line 113
--- End of stack trace from previous location ---
at System.Threading.Tasks.Parallel.<>c__53`1.<<ForEachAsync>b__53_0>d.MoveNext()
--- End of stack trace from previous location ---
at Microsoft.CodeAnalysis.SemanticSearch.QueryExecutionContext.InvokeAsync(Solution solution, QueryKind queryKind, CancellationToken cancellationToken) in C:\R0\src\Features\Core\Portable\SemanticSearch\QueryExecutionContext.cs:line 54
at Microsoft.CodeAnalysis.SemanticSearch.AbstractSemanticSearchService.ExecuteQueryAsync(Solution solution, CompiledQueryId queryId, ISemanticSearchResultsObserver observer, OptionsProvider`1 classificationOptions, TraceSource traceSource, CancellationToken cancellationToken) in C:\R0\src\Features\Core\Portable\SemanticSearch\AbstractSemanticSearchService.cs:line 185
at Microsoft.CodeAnalysis.SemanticSearch.AbstractSemanticSearchService.ExecuteQueryAsync(Solution solution, CompiledQueryId queryId, ISemanticSearchResultsObserver observer, OptionsProvider`1 classificationOptions, TraceSource traceSource, CancellationToken cancellationToken) in C:\R0\src\Features\Core\Portable\SemanticSearch\AbstractSemanticSearchService.cs:line 207
at Microsoft.CodeAnalysis.Remote.RemoteSemanticSearchService.<>c__DisplayClass6_0.<<ExecuteQueryAsync>b__0>d.MoveNext() in C:\R0\src\Workspaces\Remote\ServiceHub\Services\SemanticSearch\RemoteSemanticSearchService.cs:line 101
--- End of stack trace from previous location ---
at Microsoft.CodeAnalysis.Remote.RemoteWorkspace.<>c__DisplayClass7_0`1.<<RunWithSolutionAsync>g__ProcessSolutionAsync|1>d.MoveNext() in C:\R0\src\Workspaces\Remote\ServiceHub\Host\RemoteWorkspace.cs:line 162
--- 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) in C:\R0\src\Workspaces\Remote\ServiceHub\Host\RemoteWorkspace.cs:line 102
at Microsoft.CodeAnalysis.Remote.RemoteWorkspace.RunWithSolutionAsync[T](AssetProvider assetProvider, Checksum solutionChecksum, Boolean updatePrimaryBranch, Func`2 implementation, CancellationToken cancellationToken) in C:\R0\src\Workspaces\Remote\ServiceHub\Host\RemoteWorkspace.cs:line 113
at Microsoft.CodeAnalysis.Remote.BrokeredServiceBase.RunWithSolutionAsync[T](Checksum solutionChecksum, Func`2 implementation, CancellationToken cancellationToken) in C:\R0\src\Workspaces\Remote\ServiceHub\Services\BrokeredServiceBase.cs:line 91
at Microsoft.CodeAnalysis.Remote.BrokeredServiceBase.RunServiceImplAsync[T](Func`2 implementation, CancellationToken cancellationToken) in C:\R0\src\Workspaces\Remote\ServiceHub\Services\BrokeredServiceBase.cs:line 116
Repro:
- Open Roslyn.sln
- Run the following query in Semantic Search:
using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
static async IAsyncEnumerable<ISymbol> Find(IMethodSymbol method)
{
foreach (var syntaxReference in method.DeclaringSyntaxReferences)
{
var syntaxNode = await syntaxReference.GetSyntaxAsync();
if (syntaxNode is MethodDeclarationSyntax methodDeclaration)
{
var semanticModel = await methodDeclaration.SyntaxTree.GetSemanticModelAsync();
if (semanticModel == null)
{
continue;
}
var invocations = methodDeclaration.DescendantNodes()
.OfType<InvocationExpressionSyntax>();
bool callsKeysToList = invocations.Any(invocation =>
{
var symbol = semanticModel.GetSymbolInfo(invocation).Symbol as IMethodSymbol;
return symbol?.Name == "ToList" &&
symbol.ContainingType?.Name == "Enumerable" &&
invocation.Expression is MemberAccessExpressionSyntax memberAccess &&
memberAccess.Expression is MemberAccessExpressionSyntax innerMemberAccess &&
innerMemberAccess.Name.Identifier.Text == "Keys" &&
semanticModel.GetTypeInfo(innerMemberAccess.Expression).Type?.Name == "Dictionary";
});
bool callsRemove = invocations.Any(invocation =>
{
var symbol = semanticModel.GetSymbolInfo(invocation).Symbol as IMethodSymbol;
return symbol?.Name == "Remove" &&
symbol.ContainingType?.Name == "Dictionary";
});
if (callsKeysToList && callsRemove)
{
yield return method;
}
}
}
}