[wix-devs] WIXBUG5750 and RollbackBoundary

Hoover, Jacob Jacob.Hoover at greenheck.com
Mon Jan 22 14:33:52 PST 2018


Also, what would the expected state of the cache be under this condition:

<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.

<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.

<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.

<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.

<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?

<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/


More information about the wix-devs mailing list