[wix-devs] WIP 5386- Support MSI transactions

Bob Arnson bob at firegiant.com
Sun Sep 25 13:12:14 PDT 2016


Bundles, like packages, need to support repair. We shouldn't encourage people to disable or avoid it.

The problem with auto-repair is that it was (a) new behavior, (b) undocumented new behavior, and (c) not only not opt-in, it's un-opt-out-able (yes that's a word) without a custom BA. Bad, bad call for v3.x.

All the related bundle behavior should be more authorable.

-----Original Message-----
From: wix-devs [mailto:wix-devs-bounces at lists.wixtoolset.org] On Behalf Of Nir Bar
Sent: Sunday, 25 September, 2016 15:44
To: WiX Toolset Developer Mailing List <wix-devs at lists.wixtoolset.org>
Cc: WiX Toolset Developer Mailing List <wix-devs at lists.wixtoolset.org>
Subject: Re: [wix-devs] WIP 5386- Support MSI transactions

I made the following changes to the pull request:- Failed build if any x86 package precedes a x64 package in a transaction.
- Rollback test
- Test with x86 package before a x64 package 


I vote against bundle auto-repair as not all bundles support repairs; same goes for packages.
Auto-repair requires a bundle/package to at least persist all variables and properties which sometimes isn't desirable



---- On Fri, 23 Sep 2016 07:13:48 +0300 Sean Hall <r.sean.hall at gmail.com> wrote ---- 

Yeah, I saw the pull request this morning and knew I needed to actually look at this (the WIP's still in draft, I guess I have to start reading
those...) 
 
I think this is worth a try, though I'm worried it's going to end up like DisplayInternalUI. If it were me, I would have rather spent my time getting the bundle to automatically repair the old bundle during rollback, but I admit I'm surprised by all the blowback on the automatic repair when a patch is uninstalled that was added in v3.9. 
 
How many other undocumented quirks are there besides the 32-bit/64-bit one? How is progress going to be reported during the commit phase? Should we fail the install if MsiBeginTransaction returns ERROR_ROLLBACK_DISABLED? I think we'll need build time checks like Heath mentioned. To keep things simple for the engine, I would restrict the packages to be only MSI/MSP packages. 
 
Regarding permanent packages, I don't see what's wrong with having those in the transaction. They're not technically installed until the transaction is committed, right? 
 
On Thu, Sep 22, 2016 at 8:00 PM, Heath Stewart <Heath.Stewart at microsoft.com>
wrote: 
 
> Yes, mixing x86 and x64 packages has certain requirements. See > https://blogs.msdn.microsoft.com/heaths/2009/07/03/installation-sequence-
> restrictions-for-multi-package-transactions/. If you go forward with the > feature request, you might either err during build or automatically create > separate transactions (the latter of which probably would be undesirable if > the dev opted for a transaction). 
>
> Heath Stewart
> Visual Studio, Microsoft
> http://blogs.msdn.microsoft.com/heaths
>
> -----Original Message-----
> From: wix-devs [mailto:wix-devs-bounces at lists.wixtoolset.org] On Behalf > Of Rob Mensching > Sent: Thursday, September 22, 2016 5:08 PM > To: WiX Toolset Developer Mailing List <wix-devs at lists.wixtoolset.org>
> Subject: Re: [wix-devs] WIP 5386- Support MSI transactions > > Using an attribute to enable this seems like a great way to bring it in. 
> I'm not thrilled with the name "Transaction" for the attribute but we can > tweak that as better name comes up. 
>
> Sean, given you've been deeper in Burn than anyone else in v4. What do you > think? 
>
> _______________________________________________________________
> FireGiant | Dedicated support for the WiX toolset | > https://na01.safelinks.protection.outlook.com/?url=
> http%3a%2f%2fwww.firegiant.com%2f&data=02%7c01%7cHeath. 
> Stewart%40microsoft.com%7c032034d4cd6b415d3e1008d3e345c5db%
> 7c72f988bf86f141af91ab2d7cd011db47%7c1%7c0%7c636101861225612508&sdata=
> 5jFHfcML3tqDNNyCQlcRS2DPdS0wGa5ypeujDsKdV8A%3d
>
>
> -----Original Message-----
> From: wix-devs [mailto:wix-devs-bounces at lists.wixtoolset.org] On Behalf > Of Nir Bar > Sent: Monday, August 29, 2016 10:57 PM > To: wix-devs at lists.wixtoolset.org > Subject: [wix-devs] WIP 5386- Support MSI transactions > > I created WIP#5386 to fix this scenario:Bundle has multiple MSI packages > During an upgrade: 
> Package#1 applies a major upgrade successfully > Package#2 starts an upgrade and fails > Package#2 rolls back successfully > Package#1 removed > The final result was that the target machine was left with the initial > bundle except package#1- which was definitely a bad rollback > > > The proposed WIP is to support MSI transactions by adding a 'Transaction' 
> attribute to RollbackBoundary elements. 
> If set to 'yes' (default is 'no'), the rollback boundary will start with > MsiBeginTransaction and terminate with MsiEndTransaction to either roll > back multiple packages or commit them. 
>
>
> Bob and and Rob have pointed out that MSI transactions are known not to > support a mixture of x86 and x64 packages and a general impression that MSI > transactions were buggy. 
>
>
> As we currently don't have a better way to fix that scenario, I would like > to give it a try and see if the alleged bugs in MSI transactions are > something that we can handle or at least document properly and let > packagers opt in to use in supported cases. 
>
>
> Comments are welcome
> Does anybody know of other bugs in MSI transactions? 
>
>
> Thanks
>
> Nir Bar
> Panel::Software Architecture and Development > > Mobile: +972-54-2490321 > Mail: nir.bar at panel-sw.com > Web: https://na01.safelinks.protection.outlook.com/?url=
> www.panel-sw.com&data=02%7c01%7cHeath.Stewart%40microsoft.com%
> 7c032034d4cd6b415d3e1008d3e345c5db%7c72f988bf86f141af91ab2d7cd011
> db47%7c1%7c0%7c636101861225612508&sdata=Y9Gm6wk5gUF6sypCa2E7wZDI0nL1Ne
> qTjeikTpN03V0%3d
> - C++ On Windows, Linux and Embedded Platforms > > - WiX &amp; InstallShield > - Build &amp; Continuous Integration > > ____________________________________________________________________
> WiX Toolset Developer Mailing List provided by FireGiant > https://na01.safelinks.protection.outlook.com/?url=
> http%3a%2f%2fwww.firegiant.com%2f&data=02%7c01%7cHeath. 
> Stewart%40microsoft.com%7c032034d4cd6b415d3e1008d3e345c5db%
> 7c72f988bf86f141af91ab2d7cd011db47%7c1%7c0%7c636101861225612508&sdata=
> 5jFHfcML3tqDNNyCQlcRS2DPdS0wGa5ypeujDsKdV8A%3d
> ____________________________________________________________________
> 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