[wix-devs] WIXBUG5750 and RollbackBoundary
Hoover, Jacob
Jacob.Hoover at greenheck.com
Mon Jan 22 14:06:09 PST 2018
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
More information about the wix-devs
mailing list