dotnet / vscode-dotnet-runtime

VSCode Extension for Installing .NET via VS Code
MIT License
138 stars 256 forks source link

Apt-Get Lock can be Busy when Executing Linux Install #1806

Closed nagilson closed 2 months ago

nagilson commented 4 months ago

Describe the bug.

When installing the Global .NET SDK on the machine, either via C# DevKit's SDK walkthrough 'Install' button or via our command, Linux users who are supported (newer versions of Ubuntu and RHEL) may face the following error:

Cancelling .NET Install, as command apt-get update returned with status 100.

This error occurs because the apt-get lock is busy, (or for one of many other reasons related to apt-get failing.) This could happen for any number of reasons, e.g. another install on the system, of which the system may occasionally do automatically.

This is the highest cause of failure on Linux we have and constitutes a decent chunk of our failure rate. If you want a workaround you can try to install the SDK yourself or push the extension through this step by running sudo apt-get update manually and see what the error is, orsudo apt-get install -y dotnet-sdk-8.0 (or your given version) and try again.

For some other reasons this might happen, see: https://stackoverflow.com/questions/38002543/apt-get-update-returned-a-non-zero-code-100?rq=4

For us, we should investigate remedying this. The first thing we can do and maybe the only one is wait and spin to see if the apt-get lock opens up if taken.

Please attach log file(s) here if you have any.

The log file location should be copied to your clipboard if you came from VS Code.

Reproduction Steps

Install SDK on Linux with apt-get lock taken

Expected Behavior

Should install once apt-get is free

Exceptions & Errors (if any)

No response

.NET Install Tool Version

2.0.5

Your operating system? Please provide more detail, such as the version and or distro above.

N/A

VS Code Version

No response

baronfel commented 4 months ago

An additional note - any mechanism we create here should be able to work on other platforms as well - the yum manager has similar locks, as do Windows MSI installations.