Catastrophic failure from Torch utility #5485

Closed
chadmiles opened this Issue Feb 3, 2017 · 7 comments

Comments

Projects
None yet
2 participants
@chadmiles
  • Which version of WiX are you building with? 3.7.3.8

(WiX version in major.minor.release.build format)

  • Which version of Visual Studio are you building with (if any)? 2015 Update 3

(Visual Studio version, including year and update)

  • Which version of .NET are you building with? 4.0

(.NET version)

  • If the problem occurs when installing your packages built with WiX, what is the version of Windows the package is running on? Not an install-time issue, it's a build-time issue.

(Windows version)

  • Describe the problem and the steps to reproduce it.

(Be as specific as you can and err on the side of providing too much information, including code, error messages, command lines you used to invoke the build, and so forth.)

We're switching to WiX patching from msidiff/msimsp. We need to use melt.exe to correct the source image because our build tree will not be available during our patch build.

Our melt command is:

melt.exe "$(LOCAL_PREV_MSI)" -out "$(OUTDIR)$(BINFILE:B)Corrected.wixpdb" -pdb "$(PATCH_TARGET_PATH)$(PACKAGE_DIR)\pdbs$(BINFILE:B).wixpdb" -x "$(TIER_ROOT:s-/--)\gen$(TARGET)$(PATCH_BASENAME)\P00Bits" $(MELT_OUTPUT)

Running: torch.exe -p -xi ReleasePatch\XYZCorrected.wixpdb D:\builds\xyz_team_ref.pyro.systest\pub\gen\install\packages\Release\pdbs\XYZ.wixpdb -out ReleasePatch\DefaultPatchDiff.wixmst
Windows Installer Xml Transform Builder version 3.7.3.12
Copyright (C) Outercurve Foundation. All rights reserved.
torch.exe : error TRCH0001 : Catastrophic failure (Exception from HRESULT: 0x8000FFFF (E_UNEXPECTED))
Exception Type: System.Runtime.InteropServices.COMException
Stack Trace:
at Microsoft.Tools.WindowsInstallerXml.Cab.Interop.NativeMethods.CreateCabFinish(IntPtr contextHandle, IntPtr newCabNamesCallBackAddress)
at Microsoft.Tools.WindowsInstallerXml.Cab.WixCreateCab.Complete(IntPtr newCabNamesCallBackAddress) in d:\pulse\data\agents\ibuild09_1\recipes\426787955\base\pub\dists\wix\src\wix\Cab\WixCreateCab.cs:line 252
at Microsoft.Tools.WindowsInstallerXml.Output.SaveCab(String path, BinderFileManager binderFileManager, WixVariableResolver wixVariableResolver, String tempFilesLocation) in d:\pulse\data\agents\ibuild09_1\recipes\426787955\base\pub\dists\wix\src\wix\Output.cs:line 396
at Microsoft.Tools.WindowsInstallerXml.Output.Save(String path, BinderFileManager binderFileManager, WixVariableResolver wixVariableResolver, String tempFilesLocation) in d:\pulse\data\agents\ibuild09_1\recipes\426787955\base\pub\dists\wix\src\wix\Output.cs:line 422
at Microsoft.Tools.WindowsInstallerXml.Tools.Torch.Run(String[] args) in d:\pulse\data\agents\ibuild09_1\recipes\426787955\base\pub\dists\wix\src\torch\torch.cs:line 315

  • Describe the behavior you expected and how it differed from the actual behavior.

I would expect torch to perform the diff and output the .wixmst file for consumption by pyro. I'm taking a guess as this could be a cabinet size issue, but currently with msimsp.exe our patch cabinet is less than 2GB uncompressed so this should work.

(Be as specific as you can and err on the side of providing too much information.)

@barnson

This comment has been minimized.

Show comment
Hide comment
@barnson

barnson Feb 3, 2017

Member

As you're using a custom build of WiX, are you able to reproduce the problem with a current version (3.10.3) of stock WiX tools?

Member

barnson commented Feb 3, 2017

As you're using a custom build of WiX, are you able to reproduce the problem with a current version (3.10.3) of stock WiX tools?

@chadmiles

This comment has been minimized.

Show comment
Hide comment
@chadmiles

chadmiles Feb 3, 2017

@chadmiles

This comment has been minimized.

Show comment
Hide comment
@chadmiles

chadmiles Feb 3, 2017

Sorry I read the first part of your reply incorrectly and thought you asked "Are you using a custom build". I should say we are then, as I'm guessing you're seeing the fact we got past the null string error. :)

But that's about it, we don't customize much further than what's mentioned. We do have a way to use legacy patching since this only affects 1 install, our largest install, out of many. And we can release future upgrades and patches for that one product the 'legacy' way and can use WiX patching for everything else. We're trying to move towards speeding up builds and building patches in parallel without needing mutexes for admin installs/msimsp.

Thanks again.

Sorry I read the first part of your reply incorrectly and thought you asked "Are you using a custom build". I should say we are then, as I'm guessing you're seeing the fact we got past the null string error. :)

But that's about it, we don't customize much further than what's mentioned. We do have a way to use legacy patching since this only affects 1 install, our largest install, out of many. And we can release future upgrades and patches for that one product the 'legacy' way and can use WiX patching for everything else. We're trying to move towards speeding up builds and building patches in parallel without needing mutexes for admin installs/msimsp.

Thanks again.

@barnson

This comment has been minimized.

Show comment
Hide comment
@barnson

barnson Feb 14, 2017

Member

If you can provide more details, we'll take a look at our next online meeting on 28-Feb.

Member

barnson commented Feb 14, 2017

If you can provide more details, we'll take a look at our next online meeting on 28-Feb.

@chadmiles

This comment has been minimized.

Show comment
Hide comment
@chadmiles

chadmiles Feb 14, 2017

Definitely, I am working towards getting those. I'm working through bypassing strong-name validation with WiX 3.11 for our offical build machines.

Definitely, I am working towards getting those. I'm working through bypassing strong-name validation with WiX 3.11 for our offical build machines.

@chadmiles

This comment has been minimized.

Show comment
Hide comment
@chadmiles

chadmiles Feb 16, 2017

It looks like upgrading to WiX 3.11 solved all our problems. We don't have to bind files with light first and can rely on melt for handling the Binary/Module table for us, and also we're able to build our largest patch and not hit that catastrophic error message. Awesome, thanks Bob!

I do have a few final questions, which I can post over on Nabble if you prefer.

  1. Did something get optimized regarding cab compression? I'm seeing a good amount of size savings with 3.11 vs 3.7. We use MediaTemplate with high compression level and I'm seeing our 1.4GB MSI shrink to 1.1GB. I'll take it but was curious if that's something that was knowingly updated?

  2. I'm all for upgrading to WiX 3.11, but the biggest concern is the one-time initialization command that needs run. We could do that easily for the machine where we build WiX, but I'm seeing that I would need to run that on every potential build machine that simply references WiX (meaning it simply just calls candle or light from our custom build we pull down to any given build machine).

Is this something that was new to WiX 3.11 or was it in a prior update for say 3.8/3.9/3.10? What I'm getting at is I'd love to see a way to get the changes in 3.11 but without having to run the sn command line for the build init step.

If it's not possible and all the changes for the 2 issues I was running into (binary/module/icon table extraction + that cab size catastrophic failure) were addressed initially in 3.11, and I have to work with the strong-naming validation process for WiX, are there other ways to address this within individual project files. I'd like to build the toolset on a build machine without having to run the sn.exe command on every build machine that may pull down our copy of WiX.

Many thanks Bob!

It looks like upgrading to WiX 3.11 solved all our problems. We don't have to bind files with light first and can rely on melt for handling the Binary/Module table for us, and also we're able to build our largest patch and not hit that catastrophic error message. Awesome, thanks Bob!

I do have a few final questions, which I can post over on Nabble if you prefer.

  1. Did something get optimized regarding cab compression? I'm seeing a good amount of size savings with 3.11 vs 3.7. We use MediaTemplate with high compression level and I'm seeing our 1.4GB MSI shrink to 1.1GB. I'll take it but was curious if that's something that was knowingly updated?

  2. I'm all for upgrading to WiX 3.11, but the biggest concern is the one-time initialization command that needs run. We could do that easily for the machine where we build WiX, but I'm seeing that I would need to run that on every potential build machine that simply references WiX (meaning it simply just calls candle or light from our custom build we pull down to any given build machine).

Is this something that was new to WiX 3.11 or was it in a prior update for say 3.8/3.9/3.10? What I'm getting at is I'd love to see a way to get the changes in 3.11 but without having to run the sn command line for the build init step.

If it's not possible and all the changes for the 2 issues I was running into (binary/module/icon table extraction + that cab size catastrophic failure) were addressed initially in 3.11, and I have to work with the strong-naming validation process for WiX, are there other ways to address this within individual project files. I'd like to build the toolset on a build machine without having to run the sn.exe command on every build machine that may pull down our copy of WiX.

Many thanks Bob!

@barnson

This comment has been minimized.

Show comment
Hide comment
@barnson

barnson Feb 16, 2017

Member

You can do an official build to strong-name sign the binaries. For support, please contact the wix-users mailing list.

Member

barnson commented Feb 16, 2017

You can do an official build to strong-name sign the binaries. For support, please contact the wix-users mailing list.

@barnson barnson closed this Feb 16, 2017

@barnson barnson added the moreinfo label Feb 16, 2017

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment