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

Improve progress when extracting a container #4412

Closed
wixbot opened this issue May 4, 2014 · 4 comments
Closed

Improve progress when extracting a container #4412

wixbot opened this issue May 4, 2014 · 4 comments
Assignees
Milestone

Comments

@wixbot
Copy link

wixbot commented May 4, 2014

Today, Burn plans the caching of packages in the WixAttachedContainer like this:

Cache action[0]: CHECKPOINT id: 1
Cache action[1]: PACKAGE_START id: OldMSI.msi, plan index for skip: 5, payloads to cache: 2, bytes to cache: 425991, skip until retried: No
Cache action[2]: EXTRACT_CONTAINER id: WixAttachedContainer, working path: E:\Bundle.exe, skip until retried: No, skip until acquired by action: 2147483648
       extract package id: OldMSI.msi, payload id: OldMSI.msi, working path: C:\Users\First\AppData\Local\Temp\{29f44040-88f6-46b0-b21d-ad4b56e7ca8f}\OldMSI.msi
       extract package id: OldMSI.msi, payload id: cabE25E2CB28D67BC5252B4BBB0AB945BAA, working path: C:\Users\First\AppData\Local\Temp\{29f44040-88f6-46b0-b21d-ad4b56e7ca8f}\cabE25E2CB28D67BC5252B4BBB0AB945BAA
       extract package id: NewMSI.msi, payload id: NewMSI.msi, working path: C:\Users\First\AppData\Local\Temp\{29f44040-88f6-46b0-b21d-ad4b56e7ca8f}\NewMSI.msi
Cache action[3]: CACHE_PAYLOAD package id: OldMSI.msi, payload id: OldMSI.msi, working path: C:\Users\First\AppData\Local\Temp\{29f44040-88f6-46b0-b21d-ad4b56e7ca8f}\OldMSI.msi, operation: move, skip until retried: No, retry action: 2
Cache action[4]: CACHE_PAYLOAD package id: OldMSI.msi, payload id: cabE25E2CB28D67BC5252B4BBB0AB945BAA, working path: C:\Users\First\AppData\Local\Temp\{29f44040-88f6-46b0-b21d-ad4b56e7ca8f}\cabE25E2CB28D67BC5252B4BBB0AB945BAA, operation: move, skip until retried: No, retry action: 2
Cache action[5]: PACKAGE_STOP id: OldMSI.msi, skip until retried: No
Cache action[6]: SIGNAL_SYNCPOINT event handle: 0x274, skip until retried: No
Cache action[7]: CHECKPOINT id: 7
Cache action[8]: PACKAGE_START id: NewMSI.msi, plan index for skip: 11, payloads to cache: 1, bytes to cache: 401408, skip until retried: No
Cache action[9]: EXTRACT_CONTAINER id: WixAttachedContainer, working path: E:\testprojects\BaselineTesting\Bundle\bin\Debug\Bundle.exe, skip until retried: Yes, skip until acquired by action: 2147483648
       extract package id: NewMSI.msi, payload id: NewMSI.msi, working path: C:\Users\First\AppData\Local\Temp\{29f44040-88f6-46b0-b21d-ad4b56e7ca8f}\NewMSI.msi
Cache action[10]: CACHE_PAYLOAD package id: NewMSI.msi, payload id: NewMSI.msi, working path: C:\Users\First\AppData\Local\Temp\{29f44040-88f6-46b0-b21d-ad4b56e7ca8f}\NewMSI.msi, operation: move, skip until retried: No, retry action: 9

When it provides the progress, the overall cache process goes to 100% as soon as the WixAttachedContainer is extracted (assuming all packages are in the container):

Apply begin
Caching bundle from: 'C:\Users\First\AppData\Local\Temp\{29f44040-88f6-46b0-b21d-ad4b56e7ca8f}\.be\Bundle.exe' to: 'C:\ProgramData\Package Cache\{29f44040-88f6-46b0-b21d-ad4b56e7ca8f}\Bundle.exe'
Registering bundle dependency provider: {29f44040-88f6-46b0-b21d-ad4b56e7ca8f}, version: 1.0.0.0
Verified acquired payload: OldMSI.msi at path: C:\ProgramData\Package Cache\.unverified\OldMSI.msi, moving to: C:\ProgramData\Package Cache\{191A8CC0-CA15-473B-A4A2-3FA215AD1BAD}v1.0.0.0\OldMSI.msi.
WIXSTDBA: OnCacheAcquireProgress() - container/package: OldMSI.msi, payload: OldMSI.msi, progress: 32768, total: 32768, overall progress: 100%

Burn should schedule cache actions to acquire the payload from the temp folder so that it can provide progress on each individual payload. This means that it wouldn't count extracting the container as making progress, which makes sense because the extracted payloads are in the temp folder and not in the cache. This would also take care of this comment in apply.cpp:

        case BURN_CACHE_ACTION_TYPE_EXTRACT_CONTAINER:
            // If this action is to be skipped until the acquire action is not skipped and the other
            // action is still being skipped then skip this action.
            if (BURN_PLAN_INVALID_ACTION_INDEX != pCacheAction->extractContainer.iSkipUntilAcquiredByAction && pPlan->rgCacheActions[pCacheAction->extractContainer.iSkipUntilAcquiredByAction].fSkipUntilRetried)
            {
                // TODO: Note there is a potential bug here where retry can cause this cost to be added multiple times.
                qwSuccessfulCachedProgress += pCacheAction->extractContainer.qwTotalExtractSize;
                break;
            }

Originally opened by rseanhall

@wixbot
Copy link
Author

wixbot commented May 22, 2014

Type changed from Feature to Bug

@wixbot
Copy link
Author

wixbot commented Aug 7, 2014

Originally changed by rseanhall
AssignedTo set to shall

@wixbot
Copy link
Author

wixbot commented Aug 7, 2014

Pull request: wixtoolset/wix#12

Originally posted by rseanhall
Release changed from v4.x to v4.0

@wixbot
Copy link
Author

wixbot commented Aug 25, 2015

Pull request: 108

Originally posted by rseanhall
Resolution set to fixed
Status changed from Open to Resolved

@wixbot wixbot added this to the v4.0 milestone Dec 20, 2015
@wixbot wixbot closed this as completed Dec 20, 2015
@rseanhall rseanhall added this to Done in wix.4.0-preview.0 Nov 16, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
No open projects
Development

No branches or pull requests

2 participants