dotnet / dotnet/vscode-dotnet-runtime

Legacy Deletion Code Causes Incorrect Uninstall Logic

Open
#2,178 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
209
Forks
455
PR merge metrics
No merged PRs in 30d

Description

There is a thing called the 'graveyard' which was meant to handle legacy install type objects and storage state from old extension versions that are now very old. This logic now basically does nothing as most of that has been deprecated and there are very few people on those versions. In fact, there is a weird bug where it will create an infinite set of uninstalls under certain concurrency and invalid memory state conditions with different extension versions. This should be fixed. The logic for tracking and holding a lock is also mildly faulty during uninstall since the installing state and promises are not true to what they actually do.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.