cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
frobledo
Level 4

Chained install not working on Server 2003?

I have a (basic) MSI package that chains another MSI using InstallShield's Chained .msi Packages view. Neither of the packages require a reboot. The installation works well on XP, Vista and Windows Server 2008 x64, but it fails only on Windows Server 2003 x64.

In order to discard any issues with my packages, I tried with two very simple test MSIs (just one feature / one component / one file each, nothing else), and it didn't work either. I tried in two different boxes, one with 2003 SP1 and the other with 2003 SP2. Windows Installer 4.5 installed on both machines.

By looking at the log, the action ISChainPackagePrepare does schedule the chained package, but it never gets actually launched.

InstallFinalize returns 1, then the (S) properties from the main MSI are printed out, and all of a sudden it just begins to rollback for no apparent reason. After a lot of RemoveFile and RegRemoveValue ops, I get the following:

MSI (s) (44:64) [16:50:48:437]: Executing op: ActionStart(Name=ISChainPackageCommit,,)
MSI (s) (44:64) [16:50:48:437]: Executing op: ActionStart(Name=ISChainPackageRollback,,)
MSI (s) (44:64) [16:50:48:437]: Executing op: CustomActionRollback(Action=ISChainPackageRollback,ActionType=3329,Source=BinaryData,Target=ISChainPackagesCleanup,)
MSI (s) (44:BC) [16:50:48:437]: Invoking remote custom action. DLL: C:\WINDOWS\Installer\MSI47.tmp, Entrypoint: ISChainPackagesCleanup
MSI (s) (44:64) [16:50:48:718]: Executing op: End(Checksum=0,ProgressTotalHDWord=0,ProgressTotalLDWord=0)
MSI (s) (44:64) [16:50:48:718]: Error in rollback skipped. Return: 5
MSI (s) (44:64) [16:50:48:875]: Decrementing counter to disable shutdown. If counter >= 0, shutdown will be denied. Counter after decrement: -1
MSI (s) (44:64) [16:50:48:875]: Restoring environment variables
MSI (s) (44:64) [16:50:48:875]: No System Restore sequence number for this installation.
MSI (c) (6C:80) [16:50:48:875]: Back from server. Return value: 1603
MSI (c) (6C:80) [16:50:48:875]: Decrementing counter to disable shutdown. If counter >= 0, shutdown will be denied. Counter after decrement: -1
MSI (c) (6C:80) [16:50:48:875]: PROPERTY CHANGE: Deleting SECONDSEQUENCE property. Its current value is '1'.
Action ended 16:50:48: ExecuteAction. Return value 3.
MSI (c) (6C:80) [16:50:48:875]: Doing action: SetupCompleteError
Action 16:50:48: SetupCompleteError.
Action start 16:50:48: SetupCompleteError.
Action 16:50:48: SetupCompleteError. Dialog created
MSI (c) (6C:78) [16:51:44:375]: Doing action: ISSetupFilesCleanup
Action 16:51:44: ISSetupFilesCleanup.
Action start 16:51:44: ISSetupFilesCleanup.
MSI (c) (6C:70) [16:51:44:390]: Invoking remote custom action. DLL: C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\1\MSI1E.tmp, Entrypoint: SFCleanupEx
Action ended 16:51:44: ISSetupFilesCleanup. Return value 1.
Action ended 16:51:44: SetupCompleteError. Return value 2.
Action ended 16:51:44: INSTALL. Return value 3.

Any ideas? Is there a known issue with Windows Server 2003?
Labels (1)
0 Kudos
(3) Replies
MichaelU
Level 12 Flexeran
Level 12 Flexeran

That part of the log appears to be long after whatever caused the rollback. Can you tell what actually fails? I would have guessed it was some custom action that you added, but if this reproduces in otherwise clean projects, that's rather unlikely. 😉

I haven't personally tested our chaining support on 2003. I'll see if I can find out what the results were; meanwhile maybe you can isolate the failing action for a better hint why things aren't working.
0 Kudos
frobledo
Level 4

After posting this comment, the problem also occurred on one of our XP test machines (XP+SP3), so the problem doesn’t seem to be OS specific.
To answer Michale’s question, there’s not evident errors, and my test installer had no custom actions at all.

So I decided to create my own chainer and see if it did any difference, however the install also failed. Then I found out that the chainer fails with error code ERROR_ACCESS_DENIED when calling MsiJoinTransaction.

MsiJoinTransaction’s help says that ERROR_ACCESS_DENIED is returned when “The user that owns the transaction and the user that joins the transaction are not the same”. So I ran process explorer in both a working and a failing PC (XP+SP3) and I discovered that in the working PC, the chainer is executed as a child of msiexec.exe, while in the failing PC the chainer is not launched as a subprocess of msiexec.exe. The process trees look something like this:

Working PC:
> System idle process (PID = 0)
>> System (4)
>>> Smss.exe (368)
>>>> Winlogon.exe (628)
>>>>> Services.exe (680)
>>>>>> Msiexec.exe (1020)
>>>>>>> MSIxxx.tmp (1348) << my chainer

Failing PC:
> System idle process (0)
>> System (4)
>>> Smss.exe (640)
>>>> Winlogon.exe (712)
>>>>> Services.exe (756)
>>>>>> Msiexec.exe (3964)
>>>> Winlogon.exe (632)
>>>>> MSIxxx.tmp (2728) << my chainer, not a child of Msiexec

So please help me to understand this issue.
1. Why would the chainer be executed under different parent processes in different machines?
2. Could this have to do with elevation? If so, why does it work OK on Vista?
3. Why would the error happen in one PC with XP-SP3 and not in other?

Whatever the problem is, it looks like InstallShield’s chainer is also affected by the same issue.
0 Kudos
manomatt
Level 8

Hello ..

There is one work around for installing the setup in remote machine... all you have to do is to use the mstsc console mode of admin mode and try to install it then this will work.

mstsc /console

It worked for me.
0 Kudos