[wix-devs] WIXBUG5750 and RollbackBoundary

Hoover, Jacob Jacob.Hoover at greenheck.com
Tue Jan 23 08:05:15 PST 2018


I'm liking the simplification of if it's in ARP, then the cache can stay, however the current plan executes a rollback of a cached package if it fails. Are you saying this behavior should change, or just the concept of cleaning the cache should only happen if ARP = False?

-----Original Message-----
From: wix-devs [mailto:wix-devs-bounces at lists.wixtoolset.org] On Behalf Of Sean Hall via wix-devs
Sent: Monday, January 22, 2018 11:52 PM
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] WIXBUG5750 and RollbackBoundary

I agree, if the bundle is going to stay registered in ARP then it should be allowed to keep packages in the cache. And it sounds like a good idea to try not to clean the cache to save time for a later attempt.

I haven't looked at the code, but I would expect the Chain/@DisableRollback to essentially insert a RollbackBoundary between every package.

(I numbered your examples below)

(1) A stays installed, so bundle stays registered in ARP, so cache can stay.
(2) same as 1.
(3) A is rolled back, nothing is installed so bundle unregisters from ARP, all packages and bundle are cleared from cache.
(4) RollbackBoundary causes the rollback to stop there. A stays installed, so bundle stays registered in ARP, so cache can stay.
(5) same as 4.
(6) same as 1.

On Mon, Jan 22, 2018 at 5:17 PM, Bob Arnson via wix-devs < wix-devs at lists.wixtoolset.org> wrote:

> My vote: Cache should be tied to registration, so "registered in ARP 
> == cached as originally requested." Just because a package failed to 
> install shouldn't eject it from the cache, if the bundle is still 
> registered (so the user can try again without another download).
>
> As I recall (and I don't entirely trust my recollection as I wasn't 
> physically present or deeply involved at the time), package vitality 
> and rollback boundaries were to prevent a transient or simple failure 
> from triggering a painful (in time consumed) rollback and reinstall. 
> IOW, keep as much on the machine as possible so the user could retry.
>
> -----Original Message-----
> From: wix-devs [mailto:wix-devs-bounces at lists.wixtoolset.org] On 
> Behalf Of Hoover, Jacob via wix-devs
> Sent: Monday, 22 January, 2018 17:34
> To: WiX Toolset Developer Mailing List <wix-devs at lists.wixtoolset.org>
> Cc: Hoover, Jacob <Jacob.Hoover at greenheck.com>
> Subject: Re: [wix-devs] WIXBUG5750 and RollbackBoundary
>
> Also, what would the expected state of the cache be under this condition:
>
> (6)<Chain DisableRollback="Yes">
>   <MsiPackage SourceFile="A.msi" />
>   <MsiPackage SourceFile="Fail.msi" />
>   <MsiPackage SourceFile="B.msi" />
> </Chain>
>
> Should B still be cached?
>
> -----Original Message-----
> From: wix-devs [mailto:wix-devs-bounces at lists.wixtoolset.org] On 
> Behalf Of Hoover, Jacob via wix-devs
> Sent: Monday, January 22, 2018 4:06 PM
> To: WiX Toolset Developer Mailing List <wix-devs at lists.wixtoolset.org>
> Cc: Hoover, Jacob <Jacob.Hoover at greenheck.com>
> Subject: [wix-devs] WIXBUG5750 and RollbackBoundary
>
> With regards to a rollback boundary, what is the expected behavior of 
> Burn when a package is authored with or without explicit rollback 
> boundaries, and an error happens during apply execute?
>
> Chain/@DisableRollback - The default is "no" which indicates all 
> packages executed during the chain will be rolledback to their 
> previous state when a vital package fails. If "yes" is specified then 
> when a vital package fails to install only that package will rollback 
> and the chain will stop with the error.
>
> RollbackBoundary/@Vital - Specifies whether the rollback boundary 
> aborts the chain. The default "yes" indicates that if the rollback 
> boundary is encountered then the chain will fail and rollback or stop.
>
> (1)<Chain DisableRollback="Yes">
>   <MsiPackage SourceFile="A.msi" />
>   <RollbackBoundary Vital="No"/>
>   <MsiPackage SourceFile="Fail.msi" /> </Chain> In this example, my 
> impression is that because the failure happened on a vital package in 
> a non-vital rollback boundary, that the bundle would be considered 
> installed and that Fail MSI would have its package cache cleared.
>
> (2)<Chain DisableRollback="Yes">
>   <MsiPackage SourceFile="A.msi" />
>  <MsiPackage SourceFile="Fail.msi" />
> </Chain>
> In this example, I am expecting the A MSI to remain, and the Fail MSI 
> to just have its cache cleared.
>
> (3)<Chain>
>   <MsiPackage SourceFile="A.msi" />
>  <MsiPackage SourceFile="Fail.msi" />
> </Chain>
>                 In this example, I would expect both MSI's to be 
> removed, and their caches purged.
>
> (4)<Chain>
>   <MsiPackage SourceFile="A.msi" />
>   <RollbackBoundary/>
>   <MsiPackage SourceFile="Fail.msi" /> </Chain>
>                 In this example, is this RollbackBoundary ignored 
> because it has the same attributes as the default boundary? Meaning if 
> this chain was installing, a failure would cause A to be uninstalled, 
> and both to have their caches cleared?
>
> (5)<Chain>
>   <RollbackBoundary Vital="No"/>
>   <MsiPackage SourceFile="A.msi" />
>   <MsiPackage SourceFile="Fail.msi" Vital="No" />
>   <RollbackBoundary Vital="Yes">
>   <MsiPackage SourceFile="SecondFail.msi" /> </Chain>
>                 In this example, A would get installed, Failed would 
> be attempted, but then ignored due to the Packages Vital state (but 
> the cache should be cleared), Followed by the SecondFail triggering a 
> rollback of everything?
>
> Thanks,
> Jacob
>
> ____________________________________________________________________
> 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 
> http://www.firegiant.com/
>
____________________________________________________________________
WiX Toolset Developer Mailing List provided by FireGiant http://www.firegiant.com/


More information about the wix-devs mailing list