This website uses cookies. By clicking Accept, you consent to the use of cookies. Click Here to learn more about how we use cookies.
Turn on suggestions
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
- Revenera Community
- :
- InstallShield
- :
- InstallShield Forum
- :
- Re: Patch not saving files in basline cache.
Subscribe
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Feb 06, 2009
07:47 AM
Patch not saving files in basline cache.
I am facing an issue with patching. All of my patched files are not going to the baseline cache. My verbose debug log shows me this:
Action 2:26:46: PatchFiles. Patching files
MSI (s) (08:70) [02:26:46:843]: Executing op: ProgressTotal(Total=48376213,Type=0,ByteEquivalent=1)
MSI (s) (08:70) [02:26:46:843]: Executing op: ChangeMedia(,MediaPrompt=Please insert the disk: ,MediaCabinet=PCW_CAB_Family1,BytesPerTick=0,CopierType=2,ModuleFileName=C:\WINDOWS\Installer\aeda7d.msp,,,,,)
MSI (s) (08:70) [02:26:46:843]: Executing op: CacheBaselineFile(Baseline=0,FileKey=symaccess.1,FilePath=C:\Program Files\EMC\SYMCLI\Man\Man1\symaccess.1,,Existing=0)
MSI (s) (08:70) [02:26:46:843]: Baseline: symaccess.1 not touched in this transaction, no cache created
MSI (s) (08:70) [02:26:46:843]: Executing op: PatchApply(PatchName=symaccess.1,TargetName=C:\Program Files\EMC\SYMCLI\Man\Man1\symaccess.1,PatchSize=331,TargetSize=21004,PerTick=0,,FileAttributes=16384,PatchAttributes=0,CheckCRC=0)
PatchFiles: File: symaccess.1, Directory: C:\Program Files\EMC\SYMCLI\Man\Man1\, Size: 21004
MSI (s) (08:70) [02:26:46:843]: Re-applying security from existing file.
MSI (s) (08:70) [02:26:46:843]: SOFTWARE RESTRICTION POLICY: Verifying object --> 'C:\WINDOWS\Installer\aeda7d.msp' against software restriction policy
MSI (s) (08:70) [02:26:46:843]: Note: 1: 2262 2: DigitalSignature 3: -2147287038
MSI (s) (08:70) [02:26:46:843]: SOFTWARE RESTRICTION POLICY: C:\WINDOWS\Installer\aeda7d.msp is not digitally signed
MSI (s) (08:70) [02:26:46:859]: SOFTWARE RESTRICTION POLICY: C:\WINDOWS\Installer\aeda7d.msp is permitted to run at the 'unrestricted' authorization level.
MSI (s) (08:70) [02:26:46:859]: Note: 1: 2318 2: C:\Config.Msi\PF230.tmp
MSI (s) (08:70) [02:26:46:953]: Note: 1: 2302 2: 0
MSI (s) (08:70) [02:26:46:968]: Note: 1: 2302 2: 21004
MSI (s) (08:70) [02:26:47:046]: Verifying accessibility of file: symaccess.1
MSI (s) (08:70) [02:26:47:046]: Verifying accessibility of file: symaccess.1
MSI (s) (08:70) [02:26:47:046]: Note: 1: 2318 2: C:\Program Files\EMC\SYMCLI\Man\Man1\symaccess.1
MSI (s) (08:70) [02:26:47:046]: Verifying accessibility of file: symaccess.1
MSI (s) (08:70) [02:26:47:046]: Note: 1: 2318 2: C:\Program Files\EMC\SYMCLI\Man\Man1\symaccess.1
MSI (s) (08:70) [02:26:47:046]: Note: 1: 2318 2: C:\Program Files\EMC\SYMCLI\Man\Man1\symaccess.1
MSI (s) (08:70) [02:26:47:046]: File will have security applied from OpCode.
MSI (s) (08:70) [02:26:47:046]: Executing op: CacheBaselineFile(Baseline=0,FileKey=symaccess.exe,FilePath=C:\Program Files\EMC\SYMCLI\bin\symaccess.exe,,Existing=0)
MSI (s) (08:70) [02:26:47:046]: Baseline: symaccess.exe not touched in this transaction, no cache created
MSI (s) (08:70) [02:26:47:046]: Executing op: PatchApply(PatchName=symaccess.exe,TargetName=C:\Program Files\EMC\SYMCLI\bin\symaccess.exe,PatchSize=13768,TargetSize=204800,PerTick=0,,FileAttributes=16384,PatchAttributes=0,CheckCRC=0)
PatchFiles: File: symaccess.exe, Directory: C:\Program Files\EMC\SYMCLI\bin\, Size: 204800
-------------------------------------------
maxpatchcacheseize=25% (that's more the enough I think)
Action 2:26:46: PatchFiles. Patching files
MSI (s) (08:70) [02:26:46:843]: Executing op: ProgressTotal(Total=48376213,Type=0,ByteEquivalent=1)
MSI (s) (08:70) [02:26:46:843]: Executing op: ChangeMedia(,MediaPrompt=Please insert the disk: ,MediaCabinet=PCW_CAB_Family1,BytesPerTick=0,CopierType=2,ModuleFileName=C:\WINDOWS\Installer\aeda7d.msp,,,,,)
MSI (s) (08:70) [02:26:46:843]: Executing op: CacheBaselineFile(Baseline=0,FileKey=symaccess.1,FilePath=C:\Program Files\EMC\SYMCLI\Man\Man1\symaccess.1,,Existing=0)
MSI (s) (08:70) [02:26:46:843]: Baseline: symaccess.1 not touched in this transaction, no cache created
MSI (s) (08:70) [02:26:46:843]: Executing op: PatchApply(PatchName=symaccess.1,TargetName=C:\Program Files\EMC\SYMCLI\Man\Man1\symaccess.1,PatchSize=331,TargetSize=21004,PerTick=0,,FileAttributes=16384,PatchAttributes=0,CheckCRC=0)
PatchFiles: File: symaccess.1, Directory: C:\Program Files\EMC\SYMCLI\Man\Man1\, Size: 21004
MSI (s) (08:70) [02:26:46:843]: Re-applying security from existing file.
MSI (s) (08:70) [02:26:46:843]: SOFTWARE RESTRICTION POLICY: Verifying object --> 'C:\WINDOWS\Installer\aeda7d.msp' against software restriction policy
MSI (s) (08:70) [02:26:46:843]: Note: 1: 2262 2: DigitalSignature 3: -2147287038
MSI (s) (08:70) [02:26:46:843]: SOFTWARE RESTRICTION POLICY: C:\WINDOWS\Installer\aeda7d.msp is not digitally signed
MSI (s) (08:70) [02:26:46:859]: SOFTWARE RESTRICTION POLICY: C:\WINDOWS\Installer\aeda7d.msp is permitted to run at the 'unrestricted' authorization level.
MSI (s) (08:70) [02:26:46:859]: Note: 1: 2318 2: C:\Config.Msi\PF230.tmp
MSI (s) (08:70) [02:26:46:953]: Note: 1: 2302 2: 0
MSI (s) (08:70) [02:26:46:968]: Note: 1: 2302 2: 21004
MSI (s) (08:70) [02:26:47:046]: Verifying accessibility of file: symaccess.1
MSI (s) (08:70) [02:26:47:046]: Verifying accessibility of file: symaccess.1
MSI (s) (08:70) [02:26:47:046]: Note: 1: 2318 2: C:\Program Files\EMC\SYMCLI\Man\Man1\symaccess.1
MSI (s) (08:70) [02:26:47:046]: Verifying accessibility of file: symaccess.1
MSI (s) (08:70) [02:26:47:046]: Note: 1: 2318 2: C:\Program Files\EMC\SYMCLI\Man\Man1\symaccess.1
MSI (s) (08:70) [02:26:47:046]: Note: 1: 2318 2: C:\Program Files\EMC\SYMCLI\Man\Man1\symaccess.1
MSI (s) (08:70) [02:26:47:046]: File will have security applied from OpCode.
MSI (s) (08:70) [02:26:47:046]: Executing op: CacheBaselineFile(Baseline=0,FileKey=symaccess.exe,FilePath=C:\Program Files\EMC\SYMCLI\bin\symaccess.exe,,Existing=0)
MSI (s) (08:70) [02:26:47:046]: Baseline: symaccess.exe not touched in this transaction, no cache created
MSI (s) (08:70) [02:26:47:046]: Executing op: PatchApply(PatchName=symaccess.exe,TargetName=C:\Program Files\EMC\SYMCLI\bin\symaccess.exe,PatchSize=13768,TargetSize=204800,PerTick=0,,FileAttributes=16384,PatchAttributes=0,CheckCRC=0)
PatchFiles: File: symaccess.exe, Directory: C:\Program Files\EMC\SYMCLI\bin\, Size: 204800
-------------------------------------------
maxpatchcacheseize=25% (that's more the enough I think)
(4) Replies
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Feb 06, 2009
07:25 PM
Have you tried including these files are whole files in your patch instead of delta patches?
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Feb 06, 2009
11:20 PM
Nop I do not want to include the whole file.. it defeats the purpose of patch. I would rather have a minor upgrade in that case..
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Feb 09, 2009
03:26 AM
So I figured out the issue my self. Looks like a bug in Windows Installer.
The previous developer in my team checked "Always Overwrite" attribute for all the file in package. What this did internally is that it made the version of all the files as: 65535.0.0.0
So while msi prepares the package for baseline it picks up this version i.e. 65535.0.0.0.
MSI (c) (38:80) [02:23:48:359]: Baseline: First patch for symaccess.exe, saving native info.
MSI (c) (38:80) [02:23:48:359]: Baseline: symaccess.exe version for baseline at patch Native: 65535.0.0.0, 1033, 208896.
However at the time of caching it checks for the actual file version:
MSI (s) (08:70) [02:26:44:578]: Baseline: symaccess.exe not touched in this transaction, verification required.
MSI (s) (08:70) [02:26:44:578]: Baseline: Existing symaccess.exe version 1.0.0.1 does not match any baseline. Will not be cached.
So that's the problem. I think this is a bug with windows installer. While making entry for baseline it picks up the version mentioned in "File table". However when it comes to picking up files for caching, it tries to pick up the version from physical file. The end result is that files do not get cached in baseline image and hence during patch uninstall, require the source..
The previous developer in my team checked "Always Overwrite" attribute for all the file in package. What this did internally is that it made the version of all the files as: 65535.0.0.0
So while msi prepares the package for baseline it picks up this version i.e. 65535.0.0.0.
MSI (c) (38:80) [02:23:48:359]: Baseline: First patch for symaccess.exe, saving native info.
MSI (c) (38:80) [02:23:48:359]: Baseline: symaccess.exe version for baseline at patch Native: 65535.0.0.0, 1033, 208896.
However at the time of caching it checks for the actual file version:
MSI (s) (08:70) [02:26:44:578]: Baseline: symaccess.exe not touched in this transaction, verification required.
MSI (s) (08:70) [02:26:44:578]: Baseline: Existing symaccess.exe version 1.0.0.1 does not match any baseline. Will not be cached.
So that's the problem. I think this is a bug with windows installer. While making entry for baseline it picks up the version mentioned in "File table". However when it comes to picking up files for caching, it tries to pick up the version from physical file. The end result is that files do not get cached in baseline image and hence during patch uninstall, require the source..
- Mark as New
- Subscribe
- Mute
- Permalink
- Report Inappropriate Content
‎Feb 12, 2009
03:40 PM
Using the always overwrite option could be causing MSI's baseline caching mechanism to skip caching the files since their versions in the File table do not match the physical files copied to the machine. You could try testing without using always overwrite on these files to see if the behavior changes. Unfortunately, the only information available on how MSI determines what will be cached does not detail a scenario like the one you are seeing (see Reducing Patch Size).
The other thing to be aware of is using always overwrite has the same risk of using 'a' in the REINSTALLMODE property in that it can cause Windows Installer to require the original source media at any time (not just patch uninstall). For example, a file could be included in a base package, it's version set to always overwrite, and the file is not included in a subsequent patch. If a repair of the product is performed, or a patch is applied to the product, and the original source media is not currently available, MSI may require the original source since it will always try to install this file regardless of the file state on the machine. Note that the InstallShield Best Practice validator ISBP14 performs a check against File table versions and actual file versions, and would flag this case.
The other thing to be aware of is using always overwrite has the same risk of using 'a' in the REINSTALLMODE property in that it can cause Windows Installer to require the original source media at any time (not just patch uninstall). For example, a file could be included in a base package, it's version set to always overwrite, and the file is not included in a subsequent patch. If a repair of the product is performed, or a patch is applied to the product, and the original source media is not currently available, MSI may require the original source since it will always try to install this file regardless of the file state on the machine. Note that the InstallShield Best Practice validator ISBP14 performs a check against File table versions and actual file versions, and would flag this case.
![](/skins/images/A5EADE085F77DE82FB3B14D6B307AE6A/responsive_peak/images/icon_anonymous_message.png)