[wix-devs] 6297 - Burn needs to do better at unregistering
r.sean.hall at gmail.com
Thu Dec 31 09:24:24 PST 2020
Maybe I haven't drawn enough attention to the first two points of my
1. When doing a real operation (CACHE/INSTALL/MODIFY/REPAIR/UNINSTALL), if
any non-permanent packages are installed or cached at the end of Apply then
the bundle must be registered in ARP (and cached in the package cache).
2. When doing a real operation, if there aren't any non-permanent packages
installed or cached at the end of Apply then the bundle must be
unregistered from ARP (and removed from the package cache).
3. These points don't apply if the plan was not completed due to restarting
This will remove any special behavior we have for INSTALL and UNINSTALL.
Under this proposal, my 2015 scenario would behave differently - the bundle
would stay registered. The engine never recommends that a package stay
installed during UNINSTALL, so that means the BA told the engine to do two
mutually exclusive things - uninstall the bundle and keep a package
installed. This new proposal means that the BA's request to keep the
package installed overrides its initial request to uninstall the bundle.
There's no tradeoff here between potential source prompts and dirtying the
machine, just the problem of potentially having a bundle that can't be
uninstalled. But that can happen anyway due to improperly written BA's,
which this is an example of.
On Thu, Dec 31, 2020 at 10:53 AM Bob Arnson <bob at firegiant.com> wrote:
> Probably. But I'm worried about your 2015 message: leaving behind stuff in
> the cache without a bundle to manage it is a violation of the Prime
> Directive and if we've been doing it all this time, the damage to the
> timeline might not be repairable. I'm trying to decide whether removing the
> cache and risking (not guaranteeing) a source prompt is worse than dirtying
> the machine.
> -----Original Message-----
> From: wix-devs <wix-devs-bounces at lists.wixtoolset.org> On Behalf Of Sean
> Hall via wix-devs
> Sent: Wednesday, 30 December, 2020 11:15
> To: WiX Toolset Developer Mailing List <wix-devs at lists.wixtoolset.org>
> Cc: Sean Hall <r.sean.hall at gmail.com>
> Subject: Re: [wix-devs] 6297 - Burn needs to do better at unregistering
> Are you suggesting that this always happens for the UNINSTALL action or
> are we discussing creating a new FORCE_UNINSTALL action? Like I said, I
> think the BA should have to do something special to get this best-effort
> behavior so I'm leaning towards a new FORCE_UNINSTALL action.
> On Wed, Dec 30, 2020 at 9:51 AM Bob Arnson <bob at firegiant.com> wrote:
> > Plan could report that the plan leaves behind packages on an uninstall
> > action. Of course, the BA could already detect that, if it wanted to...
> > There's no choice to leave the package installed (in this scenario) so
> > best-effort would be to remove the cached package if we're going to
> > remove the bundle. (Leaving it behind with no bundle violates the
> > Prime Directive we discussed in 4822.)
> > The closest analog is Visual Studio supporting `/uninstall /force`.
> > -----Original Message-----
> > From: wix-devs <wix-devs-bounces at lists.wixtoolset.org> On Behalf Of
> > Sean Hall via wix-devs
> > Sent: Tuesday, 29 December, 2020 22:13
> > To: WiX Toolset Developer Mailing List <wix-devs at lists.wixtoolset.org>
> > Cc: Sean Hall <r.sean.hall at gmail.com>
> > Subject: Re: [wix-devs] 6297 - Burn needs to do better at
> > unregistering
> > I don't think any feedback could be added for Plan since nothing can
> > be determined until Apply finishes. I guess OnApplyComplete could
> > provide the new value of fInstalled (which is currently provided in
> > What "best-effort" are you thinking of?
> > 1. Leave package installed and in the package cache (I thought we
> > decided in 4822 this is not an option) and uninstall the bundle.
> > 2. Leave package installed but remove from package cache and uninstall
> > the bundle (guaranteeing a source prompt if they try to do anything
> > with the package).
> > 3. Something else?
> > I don't understand the feedback there, the BA should have to do
> > something special to get this best-effort functionality.
> > On Tue, Dec 29, 2020 at 8:29 PM Bob Arnson <bob at firegiant.com> wrote:
> > > Seems like Plan/Apply should provide feedback to the BA in that case.
> > > (Hey, S_FALSE!) Probably need to tolerate it, in the case of a
> > > stubborn package that won't uninstall -- there should still be a
> > "best-effort"
> > > attempt to clean up what it can (again, with feedback to the BA).
> > >
> > > -----Original Message-----
> > > From: wix-devs <wix-devs-bounces at lists.wixtoolset.org> On Behalf Of
> > > Sean Hall via wix-devs
> > > Sent: Tuesday, 29 December, 2020 18:58
> > > To: WiX Toolset Developer Mailing List
> > > <wix-devs at lists.wixtoolset.org>
> > > Cc: Sean Hall <r.sean.hall at gmail.com>
> > > Subject: Re: [wix-devs] 6297 - Burn needs to do better at
> > > unregistering
> > >
> > > I've started looking at implementing this. It looks like I need to
> > > modify the proposal for how Burn decides whether to keep the ARP
> > > entry during a normal operation:
> > >
> > > 1. Burn needs to track non-permanent packages installed or anything
> > > being cached.
> > > 2. Due to non-Vital packages and rollback boundaries, Burn needs to
> > > keep track of these during Apply instead of determining it ahead of
> > > time
> > in Plan.
> > >
> > > This brings me to a question I had a long time ago -
> > > http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Burn-c
> > > ac hing-behavior-during-uninstall-td7599411.html
> > > .
> > > Burn currently always unregisters and uncaches the bundle during
> > > Uninstall (if it succeeds), but I think the answer here is that it
> > > shouldn't actually uninstall the bundle if there will still be
> > > non-permanent packages installed or anything in the cache. That's
> > > going to break a lot of assumptions in the code, though.
> > >
> > > On Fri, Dec 11, 2020 at 6:07 PM Sean Hall <r.sean.hall at gmail.com>
> > >
> > > > I created a WIP for the automatic uninstalling of the bundle
> > > > discussion we were having in 4822 at
> > > >
> > https://wixtoolset.org/development/wips/6297-cleanup-bundle-after-quit/.
> > > > I think the interesting parts here are:
> > > >
> > > > 1. Under what conditions does the engine try to automatically
> > uninstall?
> > > > 2. When during runtime does it cleanup the bundle?
> > > > 3. Should the BA be involved at all during this automatic behavior?
> > > >
> > > ____________________________________________________________________
> > > WiX Toolset Developer Mailing List provided by FireGiant
> > > http://www.firegiant.com/
> > >
> > ____________________________________________________________________
> > WiX Toolset Developer Mailing List provided by FireGiant
> > http://www.firegiant.com/
> WiX Toolset Developer Mailing List provided by FireGiant
More information about the wix-devs