Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Burn does not honor RollbackBoundaries when uncaching packages during rollback #4711

Closed
wixbot opened this issue Mar 20, 2015 · 1 comment · Fixed by wixtoolset/wix#3
Closed
Assignees
Milestone

Comments

@wixbot
Copy link

wixbot commented Mar 20, 2015

When an acquisition failure occurs, packages from another rollback boundary are removed even if installed. From a log,

[0748:0FD0][2014-10-21T14:10:41]i101: Detected package: vc_cpp_rest, state: Absent, cached: Complete
...

[0748:0FD0][2014-10-21T14:10:41]i201: Planned package: vc_cpp_rest, state: Absent, default requested: Present, ba requested: Present, execute: Install, rollback: Uninstall, cache: No, uncache: No, dependency: Register
...

[0E9C:0EA0][2014-10-21T14:10:43]i304: Verified existing payload: vc_cpp_rest at path: C:\ProgramData\Package Cache\{4781443E-204D-4D98-8899-18A123C13B1E}v1.0\packages\cpp_rest\vc_cpprest.msi.
...

[0E9C:0B88][2014-10-21T14:10:44]i323: Registering package dependency provider: {4781443E-204D-4D98-8899-18A123C13B1E}, version: 1.0, package: vc_cpp_rest
[0E9C:0B88][2014-10-21T14:10:44]i301: Applying execute package: vc_cpp_rest, action: Install, path: C:\ProgramData\Package Cache\{4781443E-204D-4D98-8899-18A123C13B1E}v1.0\packages\cpp_rest\vc_cpprest.msi, arguments: ' MSIFASTINSTALL="7" VSEXTUI="1"'
[0E9C:0EA0][2014-10-21T14:10:44]i304: Verified existing payload: vc_cpp_mobile at path: C:\ProgramData\Package Cache\{D8DEAAC1-A503-4C97-90F7-EF1E58A3E509}v1.0\packages\cpp_mobile\vc_cppmobile.msi.
[0748:06D4][2014-10-21T14:10:44]i000: MUX:  Source confirmed
[0E9C:0EA0][2014-10-21T14:10:44]i304: Verified existing payload: cabF9B48690EE0D5D8140F42508D532C035 at path: C:\ProgramData\Package Cache\{D8DEAAC1-A503-4C97-90F7-EF1E58A3E509}v1.0\packages\cpp_mobile\cmob1.cab.
[0748:06D4][2014-10-21T14:10:44]i000: MUX:  Source confirmed
...

[0748:0FD0][2014-10-21T14:10:50]i000: MUX:  Installation size in bytes for package: vc_cpp_rest MaxAppDrive: 0  MaxSysDrive: 6858959  AppDrive: 0  SysDrive: 0
[0748:0FD0][2014-10-21T14:10:50]i000: MUX:  Return Code:0x0 Msi Messages:0 Result Detail:RollbackCleanup Restart:None
[0748:0FD0][2014-10-21T14:10:50]i000: MUX:  Reset execution Result
[0748:0FD0][2014-10-21T14:10:50]i000: MUX:  Reset Result
[0748:0FD0][2014-10-21T14:10:50]i000: MUX:  Engine Requested: None
[0748:0FD0][2014-10-21T14:10:50]i319: Applied execute package: vc_cpp_rest, result: 0x0, restart: None
[0E9C:0B88][2014-10-21T14:10:50]i325: Registering dependency: {e76a4eec-bd85-4277-a252-2917f5875e48} on package provider: {4781443E-204D-4D98-8899-18A123C13B1E}, package: vc_cpp_rest
...

[0E9C:0EA0][2014-10-21T14:13:14]i351: Removing cached package: vc_cpp_rest, from path: C:\ProgramData\Package Cache\{4781443E-204D-4D98-8899-18A123C13B1E}v1.0\

This appears to be because of PlanExecuteCacheSyncAndRollback() that gets called by the individual engines (ex: msiengine.cpp) to clean-up during rollback. Passing pPackage->fUncache to the last BOOL parameter would suffice, but then fUncache has to be correctly at the right time for all packages which really changes when these decisions are made. Currently, they are made late and moving them up incurs significant risk because of how the code was intentionally refactored a couple years ago when we added related bundle and better patching support because making all the decisions inline lead to the wrong conclusions.

Originally opened by heaths

@wixbot
Copy link
Author

wixbot commented Mar 24, 2015

Release changed from v4.x to v3.x

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
Development

Successfully merging a pull request may close this issue.

2 participants