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

Avoid loading assemblies that only contain IDE analyzers #59554

Closed
wants to merge 1 commit into from

Conversation

tmat
Copy link
Member

@tmat tmat commented Feb 15, 2022

No description provided.

@tmat tmat requested a review from a team as a code owner February 15, 2022 02:33
@@ -255,6 +263,13 @@ private static async Task<CompilationWithAnalyzersCacheEntry> CreateCompilationW
continue;
}

// do not attempt to load assemblies that we know only have IDE analyzers.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// do not attempt to load assemblies that we know only have IDE analyzers.
// do not attempt to load assemblies that we know only have IDE (in-process) analyzers.

@sharwell
Copy link
Member

Feature 'Diagnostic analyzer runner' is currently unavailable due to an internal error.
StreamJsonRpc.RemoteInvocationException: Failed to deserialize: PreferIsNotExpression-VisualBasicCodeStyleOptions-False-
   at StreamJsonRpc.JsonRpc.<InvokeCoreAsync>d__143`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__16`1.MoveNext() in /_/src/Workspaces/Remote/Core/BrokeredServiceConnection.cs:line 184
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.GetClrWatsonExceptionInfo(Exception exceptionObject)
RPC server exception:
System.InvalidOperationException: Failed to deserialize: PreferIsNotExpression-VisualBasicCodeStyleOptions-False-
      at Microsoft.CodeAnalysis.Remote.ThrowingTraceListener.Fail(String message, String detailMessage) in /_/src/Workspaces/Remote/ServiceHub/Host/ThrowingTraceListener.cs:line 24
      at System.Diagnostics.TraceInternal.Fail(String message, String detailMessage)
      at System.Diagnostics.TraceInternal.TraceProvider.Fail(String message, String detailMessage)
      at System.Diagnostics.Debug.Fail(String message, String detailMessage)
      at System.Diagnostics.Debug.Fail(String message)
      at Microsoft.CodeAnalysis.Options.SerializableOptionSet.<Deserialize>g__TryDeserializeOptionKey|16_1(ObjectReader reader, ILookup`2 lookup) in /_/src/Workspaces/Core/Portable/Options/SerializableOptionSet.cs:line 469
      at Microsoft.CodeAnalysis.Options.SerializableOptionSet.Deserialize(ObjectReader reader, IOptionService optionService, CancellationToken cancellationToken) in /_/src/Workspaces/Core/Portable/Options/SerializableOptionSet.cs:line 380
      at Microsoft.CodeAnalysis.Serialization.SerializerService.DeserializeOptionSet(ObjectReader reader, CancellationToken cancellationToken) in /_/src/Workspaces/Core/Portable/Serialization/SerializerService_OptionSet.cs:line 25
      at Microsoft.CodeAnalysis.Serialization.SerializerService.Deserialize[T](WellKnownSynchronizationKind kind, ObjectReader reader, CancellationToken cancellationToken) in /_/src/Workspaces/Core/Portable/Serialization/SerializerService.cs:line 213
      at Microsoft.CodeAnalysis.Remote.RemoteHostAssetSerialization.ReadData(Stream stream, Int32 scopeId, ISet`1 checksums, ISerializerService serializerService, CancellationToken cancellationToken) in /_/src/Workspaces/Remote/Core/RemoteHostAssetSerialization.cs:line 172
      at Microsoft.CodeAnalysis.Remote.RemoteHostAssetSerialization.ReadDataAsync(PipeReader pipeReader, Int32 scopeId, ISet`1 checksums, ISerializerService serializerService, CancellationToken cancellationToken) in /_/src/Workspaces/Remote/Core/RemoteHostAssetSerialization.cs:line 111
      at Microsoft.CodeAnalysis.Remote.RemoteHostAssetSerialization.ReadDataAsync(PipeReader pipeReader, Int32 scopeId, ISet`1 checksums, ISerializerService serializerService, CancellationToken cancellationToken) in /_/src/Workspaces/Remote/Core/RemoteHostAssetSerialization.cs:line 124
      at Microsoft.CodeAnalysis.Remote.BrokeredServiceConnection`1.<>c__DisplayClass26_0`1.<<InvokeStreamingServiceAsync>b__1>d.MoveNext() in /_/src/Workspaces/Remote/Core/BrokeredServiceConnection.cs:line 422
   --- End of stack trace from previous location ---
      at Microsoft.CodeAnalysis.Remote.BrokeredServiceConnection`1.<>c__DisplayClass26_0`1.<<InvokeStreamingServiceAsync>b__1>d.MoveNext() in /_/src/Workspaces/Remote/Core/BrokeredServiceConnection.cs:line 431
   --- End of stack trace from previous location ---
      at Microsoft.CodeAnalysis.Remote.BrokeredServiceConnection`1.InvokeStreamingServiceAsync[TResult](TService service, Func`4 invocation, Func`3 reader, CancellationToken cancellationToken) in /_/src/Workspaces/Remote/Core/BrokeredServiceConnection.cs:line 434
      at Microsoft.CodeAnalysis.Remote.RemoteCallback`1.InvokeAsync[TResult](Func`4 invocation, Func`3 reader, CancellationToken cancellationToken) in /_/src/Workspaces/Remote/Core/RemoteCallback.cs:line 68
      at Microsoft.VisualStudio.Telemetry.WindowsErrorReporting.WatsonReport.GetClrWatsonExceptionInfo(Exception exceptionObject)
   --- End of stack trace from previous location ---
      at Microsoft.CodeAnalysis.Remote.SolutionAssetSource.GetAssetsAsync(Int32 scopeId, ISet`1 checksums, ISerializerService serializerService, CancellationToken cancellationToken) in /_/src/Workspaces/Remote/ServiceHub/Host/SolutionAssetSource.cs:line 34
      at Microsoft.CodeAnalysis.Remote.AssetProvider.RequestAssetsAsync(ISet`1 checksums, CancellationToken cancellationToken) in /_/src/Workspaces/Remote/ServiceHub/Host/AssetProvider.cs:line 162
      at Microsoft.CodeAnalysis.Remote.AssetProvider.SynchronizeAssetsAsync(ISet`1 checksums, CancellationToken cancellationToken) in /_/src/Workspaces/Remote/ServiceHub/Host/AssetProvider.cs:line 133
      at Microsoft.CodeAnalysis.Remote.ChecksumSynchronizer.SynchronizeAssets_NoLockAsync(IEnumerable`1 checksumOrCollections, CancellationToken cancellationToken) in /_/src/Workspaces/Remote/ServiceHub/Host/ChecksumSynchronizer.cs:line 95
      at Microsoft.CodeAnalysis.Remote.ChecksumSynchronizer.SynchronizeSolutionAssetsAsync(Checksum solutionChecksum, CancellationToken cancellationToken) in /_/src/Workspaces/Remote/ServiceHub/Host/ChecksumSynchronizer.cs:line 42
      at Microsoft.CodeAnalysis.Remote.AssetProvider.SynchronizeSolutionAssetsAsync(Checksum solutionChecksum, CancellationToken cancellationToken) in /_/src/Workspaces/Remote/ServiceHub/Host/AssetProvider.cs:line 88
      at Microsoft.CodeAnalysis.Remote.RemoteWorkspace.CreateFullSolution_NoLockAsync(AssetProvider assetProvider, Checksum solutionChecksum, Boolean fromPrimaryBranch, Int32 workspaceVersion, Solution baseSolution, CancellationToken cancellationToken) in /_/src/Workspaces/Remote/ServiceHub/Host/RemoteWorkspace.cs:line 192
      at Microsoft.CodeAnalysis.Remote.RemoteWorkspace.GetFullSolutionAsync(AssetProvider assetProvider, Checksum solutionChecksum, Boolean fromPrimaryBranch, Int32 workspaceVersion, CancellationToken cancellationToken) in /_/src/Workspaces/Remote/ServiceHub/Host/RemoteWorkspace.cs:line 128
      at Microsoft.CodeAnalysis.Remote.RemoteDiagnosticAnalyzerService.<>c__DisplayClass3_0.<<CalculateDiagnosticsAsync>b__0>d.MoveNext() in /_/src/Workspaces/Remote/ServiceHub/Services/DiagnosticAnalyzer/RemoteDiagnosticAnalyzerService.cs:line 51
   --- End of stack trace from previous location ---
      at Microsoft.CodeAnalysis.Remote.BrokeredServiceBase.RunServiceImplAsync[T](Func`2 implementation, CancellationToken cancellationToken) in /_/src/Workspaces/Remote/ServiceHub/Services/BrokeredServiceBase.cs:line 101

/// <summary>
/// List of assemblies that contain analyzers that only run in-proc and should not be loaded OOP.
/// </summary>
private static readonly ImmutableArray<string> s_wellKnownAssembliesContainingIdeAnalyzersOnly = ImmutableArray.Create(
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, do we actually load those assemblies in OOP? (i thought so, but the integration tests are passing now so I'm confused)

@jasonmalinowski
Copy link
Member

@tmat was this change still needed?

@tmat tmat closed this Feb 25, 2022
@tmat
Copy link
Member Author

tmat commented Feb 25, 2022

I don't think so.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants