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

Enable 64-bit (out-of-process) integration tests #47870

Closed
wants to merge 6 commits into from

Conversation

sharwell
Copy link
Member

@sharwell sharwell commented Sep 19, 2020

No description provided.

@sharwell sharwell requested a review from a team as a code owner September 19, 2020 20:46
@sharwell sharwell requested a review from a team as a code owner September 20, 2020 06:51
eng/Versions.props Outdated Show resolved Hide resolved
eng/Versions.props Outdated Show resolved Hide resolved
@sharwell sharwell requested a review from a team as a code owner September 21, 2020 05:29
@sharwell sharwell requested a review from a team as a code owner September 21, 2020 13:10
@sharwell sharwell marked this pull request as draft September 21, 2020 15:55
@sharwell

This comment has been minimized.

@sharwell sharwell force-pushed the enable-tests branch 2 times, most recently from 8edbb80 to de1c265 Compare September 21, 2020 19:38
@jmarolf

This comment has been minimized.

@sharwell
Copy link
Member Author

@tmat there are definitely bugs remaining but I got a clean integration test build on first try at this commit

@sharwell sharwell marked this pull request as ready for review September 29, 2020 04:03
Comment on lines +85 to +86
if (baseResult is ServiceDescriptor)
return baseResult;
Copy link
Member Author

@sharwell sharwell Sep 29, 2020

Choose a reason for hiding this comment

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

📝 This path is always used by 16.8 Preview 3 and newer, so this override is effectively a NOP in current production. The rest of this method is an inlined version of the fixed code. I'll submit a follow-up pull request (#48153) to remove this method as soon as this pull request merges, and we can merge that follow-up as soon as roslyn-integration-CI is updated to 16.8 Preview 3 or newer.

@sharwell sharwell requested a review from a team as a code owner September 29, 2020 18:26
@sharwell sharwell marked this pull request as draft September 29, 2020 18:31
Comment on lines +235 to +243
if (exception is OperationCanceledException)
{
// Wrap in InvalidOperationException since cancellation was not requested
throw new InvalidOperationException(exception.Message, exception);
}
Copy link
Member Author

Choose a reason for hiding this comment

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

📝 This should be removed for release. It's only used by OOP things, but it could cause a ReportUnlessCancelled to fail when it would otherwise continue.

@@ -86,7 +87,7 @@ protected async ValueTask<T> RunServiceAsync<T>(Func<CancellationToken, ValueTas
protected async ValueTask RunServiceAsync(Func<CancellationToken, ValueTask> implementation, CancellationToken cancellationToken)
{
WorkspaceManager.SolutionAssetCache.UpdateLastActivityTime();
using var _ = LinkToken(ref cancellationToken);
Copy link
Member Author

Choose a reason for hiding this comment

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

@tmat This was changing the cancellation token which was subsequently passed to ReportWithoutCrashUnlessCanceledAndPropagate.

Copy link
Member

Choose a reason for hiding this comment

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

That was definitely intentional. The combined one is not used above.

Copy link
Member

Choose a reason for hiding this comment

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

We want to cancel the processing of the service if either the client cancellation token is signaled or the client disconnects.

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

Successfully merging this pull request may close these issues.

Thread aborts in the test runner can crash background ProjectCacheService operations
6 participants