Hello,

 

We are seeing a weird case where the rollback sequence is incorrect. Our
product does a major upgrade on every install and schedules
RemoveExistingProduct before InstallInitialize. For most of our customers
this works really well and we see the following during an upgrade. We've had
a number of cases where the install of the new version fails due to an error
starting a windows service. The following sequence happens as a result:

 

.         RemoveExisitingProduct runs and removes the old version.

.         Install of the new version fails (InstallFinalize fails with
return value 3)

.         Rollback script runs and removes the new version, then install the
old version.

 

This is exactly what we expect. 

 

We've seen a couple of incidents where the rollback script is not doing the
right thing. Here is a snippet of the setup log in such cases:

 

MSI (s) (DC:60) [15:28:36:334]: Executing op:
ServiceControl(,Name=foo,Action=1,Wait=1,)

MSI (s) (C0:74) [19:07:01:595]: Executing op:
ServiceControl(,Name=bar,Action=1,Wait=1,)

MSI (s) (C0:74) [19:11:05:415]: Product: Foo Product -- Error 1920. Service
'Bar' (bar) failed to start.  Verify that you have sufficient privileges to
start system services.

 

MSI (s) (C0:74) [19:11:05:421]: User policy value 'DisableRollback' is 0

MSI (s) (C0:74) [19:11:05:421]: Machine policy value 'DisableRollback' is 0

Action ended 19:11:05: InstallFinalize. Return value 3.

MSI (s) (C0:74) [19:11:05:424]: Executing op:
Header(Signature=1397708873,Version=400,Timestamp=1022007512,LangId=1033,Pla
tform=0,ScriptType=2,ScriptMajorVersion=21,ScriptMinorVersion=4,ScriptAttrib
utes=1)

MSI (s) (C0:74) [19:11:05:425]: Executing op:
DialogInfo(Type=0,Argument=1033)

MSI (s) (C0:74) [19:11:05:425]: Executing op: DialogInfo(Type=1,Argument=Foo
Product)

MSI (s) (C0:74) [19:11:05:426]: Executing op:
RollbackInfo(,RollbackAction=Rollback,RollbackDescription=Rolling back
action:,RollbackTemplate=[1],CleanupAction=RollbackCleanup,CleanupDescriptio
n=Removing backup files,CleanupTemplate=File: [1])

MSI (s) (C0:74) [19:11:05:426]: Executing op:
RegisterBackupFile(File=C:\Config.Msi\17181ca6.rbf)

MSI (s) (C0:74) [19:11:05:426]: Executing op:
RegisterBackupFile(File=C:\Config.Msi\17181ca7.rbf)

.

 

Note that InstallFinalize failed with return value 3, however when the
rollback script runs it does NOT call ServiceControl  with Action=2 to stop
the 'bar' service. The end result is rollback fails and the product is
completely hosed. Here is a snippet of the log with the correct rollback
script:

 

MSI (s) (DC:60) [15:28:36:334]: Executing op:
ServiceControl(,Name=foo,Action=1,Wait=1,)

MSI (s) (C0:74) [19:07:01:595]: Executing op:
ServiceControl(,Name=bar,Action=1,Wait=1,)

MSI (s) (C0:74) [19:11:05:415]: Product: Foo Product -- Error 1920. Service
'Bar' (bar) failed to start.  Verify that you have sufficient privileges to
start system services.

 

MSI (s) (DC:60) [15:29:11:600]: User policy value 'DisableRollback' is 0
MSI (s) (DC:60) [15:29:11:600]: Machine policy value 'DisableRollback' is 0
Action ended 15:29:11: InstallFinalize. Return value 3.
MSI (s) (DC:60) [15:29:11:601]: Executing op:
Header(Signature=1397708873,Version=500,Timestamp=1023245202,LangId=1033,Pla
tform=0,ScriptType=2,ScriptMajorVersion=21,ScriptMinorVersion=4,ScriptAttrib
utes=1)
MSI (s) (DC:60) [15:29:11:601]: Executing op:
DialogInfo(Type=0,Argument=1033)
MSI (s) (DC:60) [15:29:11:602]: Executing op: DialogInfo(Type=1,Argument=Foo
Product)
MSI (s) (DC:60) [15:29:11:602]: Executing op:
RollbackInfo(,RollbackAction=Rollback,RollbackDescription=Rolling back
action:,RollbackTemplate=[1],CleanupAction=RollbackCleanup,CleanupDescriptio
n=Removing backup files,CleanupTemplate=File: [1])
MSI (s) (DC:60) [15:29:11:602]: Executing op:
ActionStart(Name=StartServices,Description=Starting
services,Template=Service: [1])
MSI (s) (DC:60) [15:29:11:602]: Executing op:
ProductInfo(ProductKey={F2E168F5-DF3E-40B0-98F8-D541035AC726},ProductName=Sy
mform
Node,PackageName=SymformNode.msi,Language=1033,Version=33555244,Assignment=1
,ObsoleteArg=0,ProductIcon=MainIcon.ico,,PackageCode={C892451A-EDAF-40CF-B24
0-17CF1D53E4D2},,,InstanceType=0,LUASetting=0,RemoteURTInstalls=0,ProductDep
loymentFlags=3)
MSI (s) (DC:60) [15:29:11:603]: Executing op:
ServiceControl(,Name=foo,Action=2,Wait=1,)

 

Note that the 'foo' service is stopped in the rollback script.

 

Any ideas what might be causing this? We've tried this on all supported
platforms and with different versions of MSI and cannot repro. It only
happens on a small number of customer's machines.

 

Thanks!

Bassam

 

 

------------------------------------------------------------------------------
The Palm PDK Hot Apps Program offers developers who use the
Plug-In Development Kit to bring their C/C++ apps to Palm for a share
of $1 Million in cash or HP Products. Visit us here for more details:
http://p.sf.net/sfu/dev2dev-palm
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to