Discussion:
[wix-users] (deprecated) Windows Installer Repair Failure
Colin Sim
2015-07-26 22:04:17 UTC
Permalink
We use a PowerShell script to upgrade our development servers and our product is contained in a 1.7GB MSI file. The PowerShell script copies the package from a network share to the local %TEMP% directory, then executes the MSI in silent mode. Upon successful installation the copy of the MSI in the %TEMP% directory is removed.

On development servers, it is typical for developers to replace components that are installed through the MSI with components they build themselves - these components generally will have a higher version number than that installed by the MSI. As a result, here is the scenario on upgrade and subsequently the error:
1. When upgrading some components are marked as "leave alone" because they have a higher version number than the new package.
2. The upgrade process performs an uninstall, which removes all components of existing package (including those that were marked as "leave alone" - this must be a bug in the Windows Install!!!).
3. The upgrade process performs an install; however, does not install the components that were previously marked as "leave alone".
4. When we first run an application from our product Windows Installer detects the missing component(s) and triggers a repair.
5. The repair initiates using the cached MSI under C:\Windows\Installer. However, when it comes time to replace the missing component:
i. it looks like the Windows Installer does another search for the MSI that contains the component (bizarre)
ii. fails to find the original copy as it's already been deleted
iii. finds the cached copy, which is already executing; hence locked, and pops up a dialog requesting the location of a source MSI file.

COME ON - THIS MUST TO BE A BUG!!!!


I have attached the full repair log, and snippets of what I thought were interesting below with my comments surround in square brackets. I would appreciate any feedback and possible work around. I would presume (many) others would've come across something like this before.

[Cached copy of installer found]
Original package ==> C:\Windows\Installer\14a4210d.msi
Package we're running from ==> C:\Windows\Installer\14a4210d.msi

[Not sure if this is a problem but seems weird to me]
MSI (s) (20:54) [07:32:29:318]: APPCOMPAT: looking for appcompat database entry with ProductCode '{FA2B343E-75B9-4EBB-A1C6-974E3B55775E}'.
MSI (s) (20:54) [07:32:29:318]: APPCOMPAT: no matching ProductCode found in database.

MSI (s) (20:54) [07:32:29:709]: Package name retrieved from configuration data: 'IPFX Server Install.msi'

[Repairing around here]

[Time to replace missing component - this is when things go south]
MSI (s) (20:54) [07:34:16:569]: Executing op: RegisterSharedComponentProvider(,,File=servicemanager.exe,Component={C750EF8F-87DA-4610-8658-8C513E1F8529},ComponentVersion=6.3.211.0,ProductCode={FA2B343E-75B9-4EBB-A1C6-974E3B55775E},ProductVersion=6.3.211,PatchSize=0,PatchAttributes=0,PatchSequence=0,SharedComponent=0,IsFullFile=0)
MSI (s) (20:54) [07:34:16:569]: Executing op: FileCopy(SourceName=SERVIC~1.EXE|servicemanager.exe,SourceCabKey=servicemanager.exe,DestName=servicemanager.exe,Attributes=16384,FileSize=3023656,PerTick=65536,,VerifyMedia=1,,,,,CheckCRC=0,Version=6.3.211.0,Language=5129,InstallMode=59113472,,,,,,,)
MSI (s) (20:54) [07:34:16:585]: File: C:\VMLocal\servicemanager.exe; To be installed; Won't patch; No existing file
MSI (s) (20:54) [07:34:16:600]: Resolving source.
MSI (s) (20:54) [07:34:16:600]: User policy value 'SearchOrder' is 'nmu'
MSI (s) (20:54) [07:34:16:600]: User policy value 'DisableMedia' is 0
MSI (s) (20:54) [07:34:16:600]: Machine policy value 'AllowLockdownMedia' is 0
MSI (s) (20:54) [07:34:16:600]: SOURCEMGMT: Media enabled only if package is safe.
MSI (s) (20:54) [07:34:16:600]: SOURCEMGMT: Looking for sourcelist for product {FA2B343E-75B9-4EBB-A1C6-974E3B55775E}
MSI (s) (20:54) [07:34:16:600]: SOURCEMGMT: Adding {FA2B343E-75B9-4EBB-A1C6-974E3B55775E}; to potential sourcelist list (pcode;disk;relpath).
MSI (s) (20:54) [07:34:16:600]: SOURCEMGMT: Now checking product {FA2B343E-75B9-4EBB-A1C6-974E3B55775E}
MSI (s) (20:54) [07:34:16:600]: SOURCEMGMT: Media is enabled for product.
MSI (s) (20:54) [07:34:16:600]: SOURCEMGMT: Attempting to use LastUsedSource from source list.
MSI (s) (20:54) [07:34:16:600]: SOURCEMGMT: Trying source C:\Users\shanep\AppData\Local\Temp\.

[The original copy which no longer exists]
MSI (s) (20:54) [07:34:16:600]: Note: 1: 2203 2: C:\Users\shanep\AppData\Local\Temp\IPFX Server Install.msi 3: -2147287038
MSI (s) (20:54) [07:34:16:600]: SOURCEMGMT: Source is invalid due to missing/inaccessible package.
MSI (s) (20:54) [07:34:16:600]: Note: 1: 1706 2: -2147483647 3: IPFX Server Install.msi
MSI (s) (20:54) [07:34:16:600]: SOURCEMGMT: Processing net source list.
MSI (s) (20:54) [07:34:16:600]: Note: 1: 1706 2: -2147483647 3: IPFX Server Install.msi
MSI (s) (20:54) [07:34:16:600]: SOURCEMGMT: Processing media source list.
MSI (s) (20:54) [07:34:17:725]: Note: 1: 2203 2: 3: -2147287037
MSI (s) (20:54) [07:34:17:725]: SOURCEMGMT: Source is invalid due to missing/inaccessible package.
MSI (s) (20:54) [07:34:17:725]: Note: 1: 1706 2: -2147483647 3: IPFX Server Install.msi
MSI (s) (20:54) [07:34:17:725]: SOURCEMGMT: Processing URL source list.
MSI (s) (20:54) [07:34:17:725]: Note: 1: 1402 2: UNKNOWN\URL 3: 2
MSI (s) (20:54) [07:34:17:725]: Note: 1: 1706 2: -2147483647 3: IPFX Server Install.msi
MSI (s) (20:54) [07:34:17:725]: Note: 1: 1706 2: 3: IPFX Server Install.msi
MSI (c) (BC:B0) [07:34:17:741]: User policy value 'SearchOrder' is 'nmu'
MSI (c) (BC:B0) [07:34:17:741]: User policy value 'DisableMedia' is 0
MSI (c) (BC:B0) [07:34:17:741]: Machine policy value 'AllowLockdownMedia' is 0
MSI (c) (BC:B0) [07:34:17:741]: SOURCEMGMT: Media enabled only if package is safe.
MSI (c) (BC:B0) [07:34:17:741]: SOURCEMGMT: Prompting user for a valid source.
MSI (c) (BC:B0) [07:34:17:741]: Machine policy value 'DisableBrowse' is 0
MSI (c) (BC:B0) [07:34:17:741]: Machine policy value 'AllowLockdownBrowse' is 1
MSI (c) (BC:B0) [07:34:17:741]: SOURCEMGMT: Browsing is enabled.
MSI (c) (BC:B0) [07:34:17:772]: Font created. Charset: Req=0, Ret=0, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg
MSI (c) (BC:B0) [07:34:17:772]: Machine policy value 'DisableUserInstalls' is 0
MSI (c) (BC:B0) [07:34:17:772]: SOURCEMGMT: Now checking product {FA2B343E-75B9-4EBB-A1C6-974E3B55775E}
MSI (c) (BC:B0) [07:34:17:788]: SOURCEMGMT: Media is enabled for product.
MSI (c) (BC:B0) [07:34:17:788]: SOURCEMGMT: Attempting to use LastUsedSource from source list.
MSI (c) (BC:B0) [07:34:17:788]: Note: 1: 1706 2: 3: IPFX Server Install.msi
MSI (c) (BC:B0) [07:34:17:788]: SOURCEMGMT: Processing net source list.
MSI (c) (BC:B0) [07:34:17:788]: Note: 1: 1706 2: -2147483647 3: IPFX Server Install.msi
MSI (c) (BC:B0) [07:34:17:788]: SOURCEMGMT: Processing media source list.
MSI (c) (BC:B0) [07:34:17:788]: SOURCEMGMT: Trying media source DISK1;1.
MSI (c) (BC:B0) [07:34:17:788]: Note: 1: 1706 2: 3: IPFX Server Install.msi
MSI (c) (BC:B0) [07:34:17:788]: SOURCEMGMT: Processing URL source list.
MSI (c) (BC:B0) [07:34:17:788]: Note: 1: 1402 2: UNKNOWN\URL 3: 2
MSI (c) (BC:B0) [07:34:17:788]: Note: 1: 1706 2: -2147483647 3: IPFX Server Install.msi
MSI (c) (BC:B0) [07:34:17:788]: Note: 1: 1706 2: 3: IPFX Server Install.msi

[Eventually finds cached copy, which is what's executing]
MSI (c) (BC:B4) [07:45:23:837]: SOURCEMGMT: Trying source C:\Windows\Installer\14a4210d.msi.
MSI (c) (BC:B4) [07:45:23:868]: Note: 1: 2203 2: C:\Windows\Installer\IPFX Server Install.msiMSI (s) (20:BC) [07:45:33:305]: Running as a service.
MSI (s) (20:E4) [07:45:33:727]: Running as a service.
MSI (s) (20:E4) [07:45:33:743]: Generating random cookie.
MSI (s) (20:E4) [07:45:33:743]: Created Custom Action Server with PID 4764 (0x129C).
MSI (s) (20:BC) [07:45:33:868]: Running as a service.
MSI (s) (20:BC) [07:45:33:868]: Hello, I'm your 32bit Impersonated custom action server.
MSI (s) (20:E4) [07:45:54:399]: Server locked. Will skip uninstalled package cleanup, and allow locking install to perform cleanup.
MSI (s) (20:B4) [07:46:45:837]: Running as a service.
MSI (s) (20:B4) [07:46:45:837]: Entering CMsiConfigurationManager::SetLastUsedSource.
MSI (s) (20:B4) [07:46:45:837]: Specifed source is not already in a list.
MSI (s) (20:B4) [07:46:45:837]: User policy value 'SearchOrder' is 'nmu'
MSI (s) (20:B4) [07:46:45:837]: Machine policy value 'DisableBrowse' is 0
MSI (s) (20:B4) [07:46:45:837]: Machine policy value 'AllowLockdownBrowse' is 1
MSI (s) (20:B4) [07:46:45:837]: Adding new sources is allowed.
MSI (s) (20:B4) [07:46:45:837]: Added new source 'C:\IPFX\' with index '2'
MSI (s) (20:B4) [07:46:45:837]: Set LastUsedSource to: C:\IPFX\.
MSI (s) (20:B4) [07:46:45:852]: Set LastUsedType to: n.
MSI (s) (20:B4) [07:46:45:852]: Set LastUsedIndex to: 2.
MSI (s) (20:54) [07:46:45:868]: SOURCEMGMT: Now checking product {FA2B343E-75B9-4EBB-A1C6-974E3B55775E}
MSI (s) (20:54) [07:46:45:868]: SOURCEMGMT: Media is enabled for product.
MSI (s) (20:54) [07:46:45:884]: SOURCEMGMT: Attempting to use LastUsedSource from source list.
MSI (s) (20:54) [07:46:45:884]: SOURCEMGMT: Trying source C:\IPFX\.
MSI (s) (20:54) [07:46:45:915]: SOURCEMGMT: Resolved source to: 'C:\IPFX\'
MSI (s) (20:54) [07:46:45:915]: PROPERTY CHANGE: Adding SourceDir property. Its value is 'C:\IPFX\'.
MSI (s) (20:54) [07:46:45:915]: PROPERTY CHANGE: Adding SOURCEDIR property. Its value is 'C:\IPFX\'.
MSI (s) (20:54) [07:46:45:915]: PROPERTY CHANGE: Adding SourcedirProduct property. Its value is '{FA2B343E-75B9-4EBB-A1C6-974E3B55775E}'.
MSI (s) (20:54) [07:46:45:915]: SOURCEDIR ==> C:\IPFX\
MSI (s) (20:54) [07:46:45:915]: SOURCEDIR product ==> {FA2B343E-75B9-4EBB-A1C6-974E3B55775E}
MSI (s) (20:54) [07:46:45:946]: SECREPAIR: CryptAcquireContext succeeded
MSI (s) (20:54) [07:46:45:946]: Determining source type
MSI (s) (20:54) [07:46:45:946]: Source type from package 'IPFX Server Install.msi': 0
MSI (s) (20:54) [07:46:45:962]: SECREPAIR: Hash Database: C:\Windows\Installer\SourceHash{FA2B343E-75B9-4EBB-A1C6-974E3B55775E}
MSI (s) (20:54) [07:47:16:305]: Source for file 'servicemanager.exe' is compressed
3: -2147287038
MSI (c) (BC:B4) [07:45:23:868]: SOURCEMGMT: Source is invalid due to missing/inaccessible package.
MSI (c) (BC:B4) [07:45:23:868]: Note: 1: 1706 2: -2147483647 3: IPFX Server Install.msi
MSI (c) (BC:B4) [07:45:23:947]: Font created. Charset: Req=0, Ret=0, Font: Req=MS Shell Dlg, Ret=MS Shell Dlg

MSI (c) (BC:5C) [07:46:45:758]: SOURCEMGMT: Trying source C:\IPFX.
MSI (c) (BC:5C) [07:46:45:837]: Cloaking enabled.
MSI (c) (BC:5C) [07:46:45:837]: Attempting to enable all disabled privileges before calling Install on Server
MSI (c) (BC:5C) [07:46:45:837]: Connected to service.
MSI (c) (BC:B0) [07:46:45:868]: SOURCEMGMT: Resolved source to: 'C:\IPFX\'
MSI (s) (20:54) [07:47:16:337]: SOFTWARE RESTRICTION POLICY: Verifying object --> 'C:\IPFX\IPFX Server Install.msi' against software restriction policy
MSI (s) (20:54) [07:47:16:337]: SOFTWARE RESTRICTION POLICY: C:\IPFX\IPFX Server Install.msi has a digital signature
MSI (s) (20:54) [07:47:29:930]: SOFTWARE RESTRICTION POLICY: C:\IPFX\IPFX Server Install.msi is permitted to run at the 'unrestricted' authorization level.

This e-mail contains IPFX information which may be privileged or confidential and is intended for use only by the individual(s) or entity named above. If you are not the intended recipient, note that disclosing, copying, distributing or using this information is prohibited. If you have received this e-mail in error, please advise immediately to the e-mail address above and permanently delete this message and any attachments. Please note that any views or opinions presented in this email are solely those of the author and do not necessarily represent those of the company. We monitor our e-mail system and may record your e-mails. Thank you.
Nir Bar
2015-07-28 18:58:39 UTC
Permalink
I must say that the description doesn't seem right
Can you post the full log with no inline comments?

If this is a major upgrade then depending on the scheduling of
RemoveExistingProducts
<https://msdn.microsoft.com/en-us/library/aa371197(v=vs.85).aspx> you'll
get a full uninstall then full install, or delete/overwrite/add files.

For minor upgardes you will not get any removal, just overwrite/add files.
The partial log you posted isn't enough for me to understand which- if any-
upgrade is occuring.



-----
Nir Bar
Freelance Developer
Mail: ***@panel-sw.com
Web: www.panel-sw.com
- C++ On Windows, Linux and Embedded Platforms
- WiX & InstallShield
--
View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/wix-users-deprecated-Windows-Installer-Repair-Failure-tp7600931p7600936.html
Sent from the wix-users mailing list archive at Nabble.com.

------------------------------------------------------------------------------
Colin Sim
2015-07-28 21:16:27 UTC
Permalink
We're doing a major upgrade and RemoveExistingProducts may not be schedule in the most efficient place, i.e. between InstallValidate and InstallInitialize.

I'll attach the upgrade log in a following email as it's 42MB in size and I'm not sure if it'll be allowed.

-----Original Message-----
From: Nir Bar [mailto:***@panel-sw.com]
Sent: Wednesday, 29 July 2015 6:59 a.m.
To: wix-***@lists.sourceforge.net
Subject: Re: [wix-users] (deprecated) Windows Installer Repair Failure

I must say that the description doesn't seem right Can you post the full log with no inline comments?

If this is a major upgrade then depending on the scheduling of RemoveExistingProducts
<https://msdn.microsoft.com/en-us/library/aa371197(v=vs.85).aspx> you'll
get a full uninstall then full install, or delete/overwrite/add files.

For minor upgardes you will not get any removal, just overwrite/add files.
The partial log you posted isn't enough for me to understand which- if any- upgrade is occuring.



-----
Nir Bar
Freelance Developer
Mail: ***@panel-sw.com
Web: www.panel-sw.com
- C++ On Windows, Linux and Embedded Platforms
- WiX & InstallShield
--
View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/wix-users-deprecated-Windows-Installer-Repair-Failure-tp7600931p7600936.html
Sent from the wix-users mailing list archive at Nabble.com.

Loading...