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

Better msi handling (MSI 1618 and others) #484

Open
yurikoles opened this issue Nov 20, 2015 · 7 comments
Open

Better msi handling (MSI 1618 and others) #484

yurikoles opened this issue Nov 20, 2015 · 7 comments

Comments

@yurikoles
Copy link

Here is what I see when I have tried to install ChocolateyGUI while installing VS2015 in another cmd session.

2015-11-20 10:55:06,815 [ERROR] -      + FullyQualifiedErrorId : [ERROR] Running msiexec with /i "C:\ProgramData\chocolatey\lib\ChocolateyGUI\tools\Choco 

2015-11-20 10:55:06,821 [ERROR] -     lateyGUI.msi" /quiet  was not successful. Exit code was '1618' Error Message:

My suggestions:

  • Check if there is another msi installation already running.
  • Print user-friendly info
  • Don't start install of another msi.
  • Allow to autoskip packages in case of msi failure.
  • Advanced: use optional global msi queue for all choco commands, e.g. if user wants to install some apps in parallel session – allow it, but place msi packages it in queue.
@DarwinJS
Copy link
Contributor

DarwinJS commented Apr 2, 2016

I just encountered this with 9.10-beta1-231 with the autouninstaller and even though it shows an accurate 1618 on the screen, it goes ahead and removes the choco package - preventing me from further servicing the package using choco. If I was uninstalling on 10,000 desktops it would be inevitable that I would hit this in some cases.

Many management systems like SCCM will auto-retry automation jobs that fail - but since choco still removes it's "knowledge" of the install when encountering a 1618 - the retrys will fail - creating a need to create a separate job that uses underlying installer calls to pull the package.

If choco would leave the install on the system when it gets a 1618 during uninstall, the retry support of a management / orchestration system that is calling it would then work.

It would be best if choco was smart enough to properly handle 1618 on uninstall for both autouninstall AND CHocolateyUninstall.ps1.

Let me know if you want a separate issue for uninstall as it would seem to me to be a more critical case as a calling management system would work fine on retry's when choco gets a 1618 on install.

@ferventcoder
Copy link
Member

It would be best if choco was smart enough to properly handle 1618 on uninstall for both autouninstall AND CHocolateyUninstall.ps1.

@DarwinJS I think you are looking for failOnAutoUninstaller

c: > choco feature list

failOnAutoUninstaller - [Disabled] | Fail if automatic uninstaller fails.

@ferventcoder
Copy link
Member

I think it will be on by default in 0.9.11, or maybe sometime during the 0.9.10 series. I hesitate to transition it too early.

@ferventcoder
Copy link
Member

@yurikoles this is a great idea. 👍

Added to the backlog.

@DarwinJS
Copy link
Contributor

DarwinJS commented Apr 2, 2016

I would make a case that 1618 specifically on uninstall would merit special handling regardless of that setting due to the implications of what a packager would have to do when using choco for scaled operations.

Having to redo an entire automation job just because of a transient failure is a heavy price that would likely put a bad (non-chocolatey) taste in their mouth because of all the tools they use, it would only be chocolatey that exhibits the behavior of requiring new automation job to be built upon a transient failure. In many large shops automation jobs are tested just like software and so a new job means new unit testing and new end-to-end testing.

It would probably be a useful pattern for all transient failures - but on scaled automation 1618 on uninstall is both likely and significantly painful.

Admittedly this is one of the areas that affects Desktop much, much more than server, On Desktop it cannot be predicted that a user is running another install - whether by an official company self-service install system that is not wired up to coordinate with the management system or just by running installers on the OS themselves. (You might be able to check right before you start, but there are unpredictable delays in an MSI getting to the InstallExecuteSequence - which is the only part of an MSI that can't run simultaneously with another MSI) This can still happen on servers if there are multiple mechanisms being used to schedule automated installs.

@ferventcoder ferventcoder modified the milestones: 0.9.10.1, 0.9.10 Apr 25, 2016
@ferventcoder ferventcoder modified the milestones: 0.9.10.1, 0.9.10.2, 0.9.10.3, 0.9.10.4, 0.9.10.5 Jun 17, 2016
@ferventcoder
Copy link
Member

1638 errors as well.

@ferventcoder ferventcoder changed the title Better msi handling Better msi handling (MSI 1618 and others) Mar 25, 2018
@ferventcoder
Copy link
Member

@ferventcoder ferventcoder modified the milestones: 0.10.10, 0.10.11 Mar 27, 2018
@ferventcoder ferventcoder modified the milestones: 0.10.11, 0.10.12 May 3, 2018
@ferventcoder ferventcoder modified the milestones: 0.10.12, 0.10.13, 0.10.14 Mar 9, 2019
@ferventcoder ferventcoder modified the milestones: 0.10.14, 0.10.15 Apr 1, 2019
@gep13 gep13 modified the milestones: 0.10.15, 0.10.16 May 31, 2019
@ferventcoder ferventcoder modified the milestones: 0.10.16, 0.10.17 Jan 15, 2020
@ferventcoder ferventcoder modified the milestones: 0.10.17, 0.10.x Apr 14, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants