component release build mini_installer.exe not executing with sxs error |
||||||||||
Issue descriptionChrome Version: 57.0.2950.0 a77510ea6 OS: Win 8.1 64-bit What steps will reproduce the problem? (1) build with following gn args is_component_build = true is_debug = false target_cpu = "x86" enable_nacl = false remove_webcore_debug_symbols = true is_chrome_branded = true is_clang = true (2) ninja -C out\default mini_installer (3) copy mini_installer.exe to VM (4) execute mini_installer.exe --system-level from elevated prompt What is the expected result? Chrome runs What happens instead? Chrome does not run with a sxs error (see image). Please use labels and text to provide additional information. For graphics-related bugs, please copy/paste the contents of the about:gpu page at the end of this report.
,
Dec 13 2016
attaching a trace
,
Dec 13 2016
maybe this is needed too/instead?
,
Dec 13 2016
Relevant bit: INFO: Parsing Manifest File C:\Program Files (x86)\Google\Chrome\Application\57.0.2950.0\57.0.2950.0.MANIFEST. INFO: Manifest Definition Identity is 57.0.2950.0,type="win32",version="57.0.2950.0". ERROR: The file osmesa.dll is included by multiple assemblies. ERROR: Activation Context generation failed.
,
Dec 13 2016
,
Dec 14 2016
This is happening for me, too, but with the non-clang build. I'd say this is pretty important since it makes development a pain. Bumping to P1.
,
Dec 14 2016
Okay, so osmesa.dll, libGLESv2.dll, and libEGL.dll are each listed twice in the manifest. Delete the duplicates and chrome.exe will launch.
,
Dec 14 2016
aaaaand that's because .../gen/chrome_component.runtime_deps contains duplicates:
./libEGL.dll
./libGLESv2.dll
./osmesa.dll
Packages/ui/libEGL.dll
Packages/ui/libGLESv2.dll
Packages/ui/osmesa.dll
I think this is a result of //services/ui. I have no idea what's going on there.
Ken: What is this "Packages" directory? Is it expected that chrome.dll has a dependency on both copies of these dlls?
Here's a snippet of the dependency tree leading to references to the two instances of the DLLs:
//chrome/installer/mini_installer:mini_installer_archive
//chrome:chrome
//chrome:chrome_initial
//chrome:chrome_dll
//chrome:main_dll
//chrome:browser_dependencies
//chrome/browser:browser
//apps:apps
//chrome/browser/extensions:extensions
//chrome/browser/devtools:devtools
//chrome/common:common
//chrome/common/extensions/api:extensions_features
//chrome/common/extensions/api:api_features
//chrome/common/extensions/api:api_features_json_features
//extensions/common:common
//content/public/common:common
//content:content
//content/gpu:gpu_sources
//content/child:child
//components/mime_util:mime_util
//media:media
//gpu/command_buffer/common:common
//gpu:gpu
//gpu/command_buffer/service:service_sources
//gpu/config:config_sources
//ui/gl:gl
//third_party/mesa:osmesa
//content/common:common
//ui/shell_dialogs:shell_dialogs
//ui/aura:aura
//services/ui:ui
//services/ui:copy_gl_libraries
//third_party/angle:libEGL...
//third_party/angle:libGLESv2...
//third_party/mesa:osmesa...
,
Dec 14 2016
+gab and jbauman who know more about how create_installer_archive.py generates the manifest than I do. tl;dr: for you two: component chrome no longer runs after install because the manifest has duplicate entries for three dlls. i think this started happening as a result of what's going on in //services/ui. maybe we just need to filter duplicates when generating the manifest, but maybe the problem is that these duplicate dependencies are there in the first place. i'm not sure.
,
Dec 14 2016
We should not be archiving anything in Packages.
,
Dec 14 2016
Should chrome.dll really have a dependency on DLLs in Packages?
,
Dec 14 2016
The dependencies are determined by GN: https://cs.chromium.org/chromium/src/chrome/installer/mini_installer/BUILD.gn?rcl=0&l=82 If we need any other solution than addressing the DEPS, the right solution is to address issue 581133 (better manifest method post-XP).
,
Dec 14 2016
I've confirmed that r437776 ("Build services as standalone executables") is the one that caused the breakage by introducing the new dependency. Ken: can you confirm that this is expected and correct?
,
Dec 14 2016
The data dependency is technically correct, yes, though it's only needed under certain runtime conditions -- namely certain flags which are never used in production by default.
,
Jan 6 2017
Any progress with this issue? I can't run locally built Chromium on a test laptop anymore. Any workarounds other than not doing a component build?
,
Jan 7 2017
I've just tried the workaround mentioned in comment #7 and it works.
,
Feb 22 2017
r445870 reversed the change that caused this breakage, so I'm closing this issue. Fixing issue 581133 is still important to avoid future regressions.
,
May 3 2017
I've just hit this issue again. The duplicating entries are libGLESv2.dll and libEGL.dll.
,
Aug 1 2017
FYI SwiftShader team. Possibly related to the inclusion of the SwiftShader dlls?
,
Aug 2 2017
I'll take a swing.
,
Aug 3 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/d3f0779344128cbeea778bbc6ee2172f88aab25b commit d3f0779344128cbeea778bbc6ee2172f88aab25b Author: Greg Thompson <grt@chromium.org> Date: Thu Aug 03 15:57:13 2017 Fix duplicate entries in component builds' version manifest. Specifically, staged files are now ignored regardless of case and containing directory. BUG= 673900 Change-Id: I72ded358fbde1c525eaec538ebdb184a79b58c6e Reviewed-on: https://chromium-review.googlesource.com/598091 Reviewed-by: Gabriel Charette <gab@chromium.org> Reviewed-by: Sébastien Marchand <sebmarchand@chromium.org> Commit-Queue: Greg Thompson <grt@chromium.org> Cr-Commit-Position: refs/heads/master@{#491752} [modify] https://crrev.com/d3f0779344128cbeea778bbc6ee2172f88aab25b/chrome/tools/build/win/create_installer_archive.py
,
Aug 8 2017
We should be back to normal now. Please re-open if you notice the dreaded side-by-side configuration error again. Thanks. |
||||||||||
►
Sign in to add a comment |
||||||||||
Comment 1 by wfh@chromium.org
, Dec 13 2016