-
Notifications
You must be signed in to change notification settings - Fork 68
Open
Labels
Description
Hey folks, I'm from the Visual Studio perf and reliability team, and our telemetry shows that WakaTime is hanging Visual Studio on shutdown via the following path, causing folks to kill Visual Studio via Task Manager.
[Async] mscorlib.dll!Task (System.Net.Http.HttpResponseMessage) [Promise] C# <--- hangs Visual Studio until network request is completed
[Async] WakaTime.Shared.ExtensionUtils.dll!WakaTime.Shared.ExtensionUtils.Dependencies.DownloadFile(string url, string saveAs) Line 286 C#
[Async] WakaTime.Shared.ExtensionUtils.dll!WakaTime.Shared.ExtensionUtils.Dependencies.InstallCli() Line 99 C#
[Async] WakaTime.Shared.ExtensionUtils.dll!WakaTime.Shared.ExtensionUtils.Dependencies.CheckAndInstallCli() Line 75 C#
[Async] WakaTime.Shared.ExtensionUtils.dll!WakaTime.Shared.ExtensionUtils.Dependencies.CheckAndInstall() Line 58 C#
[Async] WakaTime.Shared.ExtensionUtils.dll!WakaTime.Shared.ExtensionUtils.WakaTime.InitializeAsync() Line 62 C#
[Async] WakaTime.Dev17.dll!WakaTime.WakaTimePackage.InitializeAsync(System.Threading.CancellationToken cancellationToken) Line 81 C#
[Async] WakaTime.Dev17.dll!WakaTime.WakaTimePackage.InitializeAsync(System.Threading.CancellationToken cancellationToken, System.IProgress<Microsoft.VisualStudio.Shell.ServiceProgressData> progress) Line 65 C#
[Async] Microsoft.VisualStudio.Shell.15.0.dll!Microsoft.VisualStudio.Shell.AsyncPackage.Microsoft.VisualStudio.Shell.Interop.IAsyncLoadablePackageInitialize.Initialize.AnonymousMethod__1(System.Threading.CancellationToken token) Line 248 C#
[Async] [Awaited by multiple tasks/threads]
This is occuring because WakaTime is making a network request without passing through the cancellation token through to HttpClient. Please pass through the cancellation token along this path and pass it to every method on HttpClient and HttpContent that takes it.
Thanks
Dave
guibranco