Skip to content

Fix issue where RemoteServiceInvoker never initializes (17.13)#11523

Merged
phil-allen-msft merged 1 commit intodotnet:release/dev17.13from
davidwengier:BackportRemoteServiceInvoker
Feb 21, 2025
Merged

Fix issue where RemoteServiceInvoker never initializes (17.13)#11523
phil-allen-msft merged 1 commit intodotnet:release/dev17.13from
davidwengier:BackportRemoteServiceInvoker

Conversation

@davidwengier
Copy link
Copy Markdown
Member

Backport of #11430 to 17.13

The first time that a remote service call is made by RemoteServiceInvoker, it calls into Roslyn OOP to initialize itself. However, the CancellationToken that's passed for initialization is the same one that is passed by the original service caller. If that token is cancelled by the caller during initialization, RemoteServiceInvoker will get stuck and never actually make a remote service call because the initialization task will forever be in a cancelled state.

The fix for this issue is to make RemoteServiceInvoker disposable, and add a CancellationTokenSource that is cancelled when the invoker itself is dispose. Then, pass that CancellationTokenSource's token to initialization.
@davidwengier davidwengier requested a review from a team as a code owner February 20, 2025 22:16
@phil-allen-msft
Copy link
Copy Markdown
Member

/backport to release/dev17.12

@github-actions
Copy link
Copy Markdown
Contributor

Started backporting to release/dev17.12: https://github.com/dotnet/razor/actions/runs/13445725086

@github-actions
Copy link
Copy Markdown
Contributor

@phil-allen-msft backporting to "release/dev17.12" failed, the patch most likely resulted in conflicts:

$ git am --3way --empty=keep --ignore-whitespace --keep-non-patch changes.patch

Applying: Fix issue where RemoteServiceInvoker never initializes
Using index info to reconstruct a base tree...
M	src/Razor/src/Microsoft.VisualStudio.LanguageServices.Razor/Remote/RemoteServiceInvoker.cs
Falling back to patching base and 3-way merge...
Auto-merging src/Razor/src/Microsoft.VisualStudio.LanguageServices.Razor/Remote/RemoteServiceInvoker.cs
CONFLICT (content): Merge conflict in src/Razor/src/Microsoft.VisualStudio.LanguageServices.Razor/Remote/RemoteServiceInvoker.cs
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch
hint: When you have resolved this problem, run "git am --continue".
hint: If you prefer to skip this patch, run "git am --skip" instead.
hint: To restore the original branch and stop patching, run "git am --abort".
hint: Disable this message with "git config set advice.mergeConflict false"
Patch failed at 0001 Fix issue where RemoteServiceInvoker never initializes
Error: The process '/usr/bin/git' failed with exit code 128

Please backport manually!

@davidwengier davidwengier force-pushed the BackportRemoteServiceInvoker branch from 1a5ea2c to 2296f9d Compare February 20, 2025 23:20
@phil-allen-msft phil-allen-msft changed the title Fix issue where RemoteServiceInvoker never initializes Fix issue where RemoteServiceInvoker never initializes (17.13) Feb 21, 2025
@phil-allen-msft phil-allen-msft merged commit 41f62d0 into dotnet:release/dev17.13 Feb 21, 2025
15 of 17 checks passed
@davidwengier davidwengier deleted the BackportRemoteServiceInvoker branch May 2, 2025 07:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants