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

First usage feedback: multiple non-silent fails, one crash, and two types of repeats #1009

Open
Master-Guy opened this issue May 28, 2021 · 16 comments
Labels
Issue-Bug
Milestone

Comments

@Master-Guy
Copy link

@Master-Guy Master-Guy commented May 28, 2021

Brief description of your issue

Sorry if this shouldn't be reported this way, but I'm not yet up-to-speed on the Microsoft ways-of-work on Github.
After installing winget-cli this morning, and running winget upgrade --all, I got the following feedback:

  • Multiple non-silent fails
  • One crash of winget
  • Looping installation after fail
  • Upgrades of up-to-date applications

Steps to reproduce

Have an old 32-bit version of Teamviewer installed on your 64 machine, together with any old version of the other apps listed below under Actual behaviour.
Then run winget upgrade --all as administrator in a Windows Terminal session running Powershell as default.

Expected behavior

Winget to update these packages, and kill a running download when pressing CTRL+C.

Actual behavior

While downloading the Unity update of 2GB, I pressed CTRL+C because I needed my bandwidth for a Teams meeting, but it seems the download kept running even though I got my Powershell prompt back.

Multiple packages (also a number of packages not listed here) have visible installers. It wouldn't be too much of an issue if these would be running in the background, but they are being pushed as top window, and get the focus of Windows, which makes it possible to accidentally cancel an installation, otherwise interrupt an installation, or close an error message.

  • Battle.Net: Keeps re-installing the update (and launching after installation).
  • Discord: Installer fails to install, because Discord.exe was still running. 2nd attempts installs a version that still needs to update when running for the first time.
  • LockHunter: Keeps re-installing the update (and popping up their website after installation).
  • Parsec: Installer hash does not match; this cannot be overridden when running as admin.
  • PyCharm Community Edition: Installation fails, because it attempts to install into a non-empty directory. Then it re-tries, gives the same error, and continues to the next package. As long as the error is open, winget does not continue.
  • Speccy: Keeps re-installing the update.
  • Spotify: Fails because it can only be installed under user level, and not as administrator.
  • TrackMania Nations Forever: Keeps re-installing the update (500MB slow download with visible installer).
  • TeamViewer: Returns error 0x80072f7c and exits winget. After manually updating, it successfully skips this package.
  • CORSAIR iCUE 4 Software: Installer freezes after spawning multiple C++ Application Development Frameworks (QtWebEngineProcess.exe). winget reported error 1603 and continued after I killed the installer.
  • euroscope: Installer failed with exit code: 1603 (no user-interaction happened)
  • PowerShell: Installation killed my PowerShell session, and with that it killed winget
  • Unity: Keeps re-installing the update (2GB download!)
  • Unity Hub: Keeps re-installing the update
  • Ubisoft Connect: Keeps re-installing the update
  • Visual Studio Community 2019: Keeps re-installing the update
  • Barrier: Installer fails because the process takes too long to be killed
  • Epic Games Launcher: Installer failed with exit code: 1603 (no user-interaction happened)
  • Visual Studio Code: Keeps re-installing the update, application launches after installation

Mozilla Firefox, VLC media player, Zoom and Adobe Acrobat Reader DC aren't automatically updating at all with winget upgrade --all and return No applicable update found. when trying to upgrade them one-by-one.

image
image
image

Environment

Windows Package Manager v1.0.11451
Copyright (c) Microsoft Corporation. All rights reserved.

Windows: Windows.Desktop v10.0.19041.1023
Package: Microsoft.DesktopAppInstaller v1.11.11451.0
PS C:\Users\maste> winget upgrade
Name                         Id                                    Version              Available         Source
----------------------------------------------------------------------------------------------------------------
Battle.Net                   Blizzard.BattleNet                    Unknown              1.22.0.12040      winget
Discord                      Discord.Discord                       1.0.9000             1.0.9002          winget
LockHunter                   CrystalRich.LockHunter                Unknown              3.3.4.139         winget
Mozilla Firefox              Mozilla.Firefox                       84.0.2               88.0.1            winget
Parsec                       ParsecCloudInc.Parsec                 150-36               150.47            winget
PyCharm Community Edition    JetBrains.PyCharm.Community           203.6682.179         2021.1.1          winget
PyCharm Community Edition    JetBrains.PyCharm.Community           211.7142.13          2021.1.1          winget
Speccy                       Piriform.Speccy                       1.32                 1.32.774          winget
Spotify                      Spotify.Spotify                       1.1.60.668.gff09d345 latest            winget
TrackMania Nations Forever   Nadeo.TrackManiaNationsForever        Unknown              2.11.26           winget
Unity                        UnityTechnologies.Unity               2018.4.26f1          2021.1.7f1        winget
Unity Hub                    UnityTechnologies.UnityHub            2.2.2                2.4.3             winget
Ubisoft Connect              Ubisoft.Connect                       38.2                 121.0.0.10451     winget
VLC media player             VideoLAN.VLC                          3.0.11               3.0.14            winget
Zoom                         Zoom.Zoom                             5.3.1 (52879.0927)   5.6.961           winget
Visual Studio Community 2019 Microsoft.VisualStudio.2019.Community 16.8.31005.135       16.10.31321.278   winget
Barrier                      DebaucheeOpenSourceGroup.Barrier      2.3.3-release        2.3.3             winget
CORSAIR iCUE 4 Software      Corsair.iCUE                          4.9.338              4.11.274          winget
euroscope                    gergelycsernak.euroscope              3.2                  3.2.1.0           winget
Adobe Acrobat Reader DC      Adobe.AdobeAcrobatReaderDC            21.001.20155         2021.001.20155    winget
Epic Games Launcher          EpicGames.EpicGamesLauncher           1.1.257.0            1.2.17.0          winget
Visual Studio Code           Microsoft.VisualStudioCode            1.56.2               1.56.2.054a929533 winget

Logs:
DiagOutputDir.zip

@msftbot msftbot bot added the Needs-Triage label May 28, 2021
@Master-Guy Master-Guy changed the title First usage feedback: multiple non-silent fails, and one crash, and two types of repeats First usage feedback: multiple non-silent fails, one crash, and two types of repeats May 28, 2021
@denelon denelon added Issue-Bug and removed Needs-Triage labels May 28, 2021
@denelon denelon added this to To Do in Client-Bugs via automation May 28, 2021
@denelon
Copy link
Contributor

@denelon denelon commented May 28, 2021

@Master-Guy this is awesome feedback! Thank you for taking the time to be so thorough here.

There are several different things you are reporting. I think we have Issues for many of them. Be sure to add your 👍 to those issues to help us prioritize.

There may be a couple of new asks. I don't think anyone has created a new feature to request the ability to specify either a preference or a requirement for a setting in winget settings to "prefer" or "require" silent install vs. silent with progress (our default).

Edit: It's this one #910 Settings for installer modes

The "list" command/feature is used to do most of the heavy lifting to match manifests in the source to Apps in Add / Remove Programs. In some cases, an adjustment to a manifest will address failure to update. In other cases, we have features to add additional keys to the manifest to help with better matching.

The "main" actionable item we can look at in the client in this issue is "kill a running download when pressing CTRL+C."

@Master-Guy
Copy link
Author

@Master-Guy Master-Guy commented May 28, 2021

Thank you! I'm really looking forward to using this on an enterprise level, but it requires some finetuning :)

@denelon
Copy link
Contributor

@denelon denelon commented Oct 1, 2021

@Master-Guy

We've made improvements for [Ctrl]+[C] in several areas. Can you confirm if the "kill a running download when pressing CTRL+C" is resolved?

I believe we've isolated most of the other issues you've reported. The work is ongoing and primarily tracked with #1243.

@denelon denelon added this to To do in Client-Current via automation Oct 1, 2021
@denelon denelon removed this from the v.Next-Client milestone Oct 1, 2021
@denelon denelon added this to the v1.2-Client milestone Oct 1, 2021
@Master-Guy
Copy link
Author

@Master-Guy Master-Guy commented Oct 2, 2021

@denelon thank you for getting back to me.
I can confirm that CTRL+C now kills the download.

Since I've re-installed my Windows, a lot of the checks are uncheckable for me now.
Other things that I'm noticing now:

Ryzen fails due to failed version comparison:
image

Discord fails due to it still running:

13008> 2021-10-02 08:32:32> Program: Starting Squirrel Updater: --install . /s
13008> 2021-10-02 08:32:32> Program: Starting install, writing to C:\Users\maste\AppData\Local\SquirrelTemp
13008> 2021-10-02 08:32:32> Program: About to install to: C:\Users\maste\AppData\Local\Discord
13008> 2021-10-02 08:32:32> Program: Install path C:\Users\maste\AppData\Local\Discord already exists, burning it to the ground
13008> 2021-10-02 08:32:32> IEnableLogger: Failed to remove existing directory on full install, is the app still running???: System.IO.IOException: Access to the path 'C:\Users\maste\AppData\Local\Discord' is denied.

Unity is still being installed as a separate version when doing upgrade --all. Suggestion: Remove the upgrade option from Winget for this application.
image

@denelon denelon removed this from the v1.2-Client milestone Jan 8, 2022
@denelon denelon added this to the v1.3-Client milestone Jan 8, 2022
@denelon denelon removed this from the v1.3-Client milestone May 31, 2022
@denelon denelon added this to the v1.4-Client milestone May 31, 2022
@denelon
Copy link
Contributor

@denelon denelon commented Jun 21, 2022

@Master-Guy

We've been busy making tons of improvements and we're close to getting Windows Package Manager 1.3 flighted for "Windows Insider Release Preview". That's the last step before GA.

Are there any problems you're having that haven't been reported yet? I think we're close to being able to close this issue 😊

@Master-Guy
Copy link
Author

@Master-Guy Master-Guy commented Jun 22, 2022

I did re-install Windows 11 in the meantime, so this might not be completely representative anymore :)
Running winget upgrade --all now, will post the results when finished.
Thanks for all your very hard work on this project!

image

@Master-Guy
Copy link
Author

@Master-Guy Master-Guy commented Jun 22, 2022

Visual Studio


Visual Studio Community is updating very nicely! Both 2019 and 2022 updated sequentially and without issues. However Visual Studio Build Tools don't seem to be updated automatically.

Discord


The Discord installer fails, because Discord still is in use. Even though the installation fails, it reports a success in the prompt.

SquirrelSetup.log

No indication of installations running


Multiple apps are installing in the background, invisible, even though no arguments were given to do so. Updating Docker (for example) takes a while, and with winget showing `Starting package install...` instead of `Installing package`, it makes it appear as if it has issues starting the setup, even though it's actually installing in the background.

EPIC Games


EPIC games fails to install because it's still running, but this one gives a correct error message.

WinGet-EpicGames.EpicGamesLauncher.1.3.23.0-2022-06-22-17-15-14.256.log

Run complete


After the first run, except for the expected Discord and EPIC Games, there are a number of other applications also still showing up in the list.
Running the command again, it does go through most of the installers, and most of those show the appropriate dialogs. None of them, however, upgrade to the version shown as available.
The weird part though, is that it doesn't even create a log file for the installation of two of the packages:

  • Google Chrome
  • Ubisoft Connect
Log files

Corsair iCue


The installation of Corsair iCue seems to go without issues, but winget doesn't tell me I need to reboot the system in order to complete the installation. This caused me to not have any audio after the installation. It also doesn't launch the application. After manually launching the application, it showed me the reboot message.
WinGet-Corsair.iCUE.4.4.24.193-2022-06-22-17-06-50.711.log

Client-Bugs automation moved this from To Do to Done Jun 22, 2022
Client-Current automation moved this from To do to Done Jun 22, 2022
@Master-Guy
Copy link
Author

@Master-Guy Master-Guy commented Jun 22, 2022

Sorry, wrong button..

@Master-Guy Master-Guy reopened this Jun 22, 2022
Client-Bugs automation moved this from Done to To Do Jun 22, 2022
Client-Current automation moved this from Done to In progress Jun 22, 2022
@denelon
Copy link
Contributor

@denelon denelon commented Jun 22, 2022

Discord is a tricky one. As a squirrel installer, the initial child process spawned to run the installer returns with "0" success. Then the child process continues to run. If it fails, we don't get the response. We're going to likely need to watch the entire process tree.

@denelon
Copy link
Contributor

@denelon denelon commented Jun 22, 2022

Corsair iCue "might" be willing to give a custom return code so we can inform the user a reboot is required with expected return codes:

"ExpectedReturnCodes": {
"type": [ "array", "null" ],
"items": {
"type": "object",
"title": "ExpectedReturnCode",
"properties": {
"InstallerReturnCode": {
"$ref": "#/definitions/InstallerReturnCode"
},
"ReturnResponse": {
"type": "string",
"enum": [
"packageInUse",
"installInProgress",
"fileInUse",
"missingDependency",
"diskFull",
"insufficientMemory",
"noNetwork",
"contactSupport",
"rebootRequiredToFinish",
"rebootRequiredForInstall",
"rebootInitiated",
"cancelledByUser",
"alreadyInstalled",
"downgrade",
"blockedByPolicy",
"custom"
]
},

Otherwise, we would need add "post install display notes" to the manifest:

@denelon
Copy link
Contributor

@denelon denelon commented Jun 22, 2022

No indication of installations running

What kinds of ideas do you have that might improve this? Windows Package Manager essentially executes the installer and doesn't show progress until we get indication from the installer.

Maybe as a more "appealing" placebo, we could have a timeout on the initial message and then switch the message to "Installing package..."
or
"Installing <packageName> <packageVersion> [<packageIdentifier>]...".

@denelon
Copy link
Contributor

@denelon denelon commented Jun 22, 2022

Epic Games

Error 1603 is returned, but it's a bit unclear to the user. We've been discussing improving the output to the user so they have some idea of what might be happening. The challenge with MSI Error 1603 is it isn't really clear what happened.

@denelon
Copy link
Contributor

@denelon denelon commented Jun 22, 2022

Visual Studio

I'm not sure what's happening with Build Tools, I'll have to ask around or dig in deeper.

@denelon
Copy link
Contributor

@denelon denelon commented Jun 22, 2022

Run complete

I'm not sure why logs aren't produced for:

  • Google Chrome
  • Ubisoft Connect

@Master-Guy
Copy link
Author

@Master-Guy Master-Guy commented Jun 22, 2022

Appending a message Installing <packageName> <packageVersion> [<packageIdentifier>]... after confirming the executable launched sounds like a good thing to do.

For Epic: Can we ask them to return the correct returncode if it detects the app running?

VS Build Tools: My guess is there just isn't a winget package available for that one.

@denelon
Copy link
Contributor

@denelon denelon commented Jun 22, 2022

Appending a message Installing <packageName> <packageVersion> [<packageIdentifier>]... after confirming the executable launched sounds like a good thing to do.

👍

For Epic: Can we ask them to return the correct returncode if it detects the app running?

I'm not sure there is a better return code for MSI installers. There may be an opportunity to return a custom error code. It might also be a good time to consider migrating from MSI to MSIX (assuming there aren't any blockers). At they end of the day, they should be in control of their customer experience.

VS Build Tools: My guess is there just isn't a winget package available for that one.
🤔

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Issue-Bug
Projects
Client-Bugs
  
To Do
Client-Current
In progress
Development

No branches or pull requests

2 participants