test_installer fails on LUCI windows 7 bot |
||||
Issue descriptionThe test_installer step is failing on LUCI on "Win7 Tests (1)" I've done some debugging and found that it can't figure out how to uninstall chrome on a system level once it installs it. You can see this in https://luci-milo.appspot.com/p/chromium/builders/luci.chromium.ci/Win7%20Tests%20%281%29/142 Subsequent builds fail because chrome was never uninstalled on the machine. It tries to run a test to install chrome on a per user basis and fails, because it tries to verify that chrome isn't installed on a system level, and it is, because the previous test failed. It seems like there should be a step at the beginning of the test to make sure chromium isn't installed anywhere on the bots, so that we start at a known state every time, but maybe I don't understand how the test works. Anyways, it seems that the chrome install step is failing somehow; the error when running the uninstall_chrome.py script I get (and the build gets) is: KeyError: 'Registry key HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Chromium is missing' I looked at the registry on that machine, and that key really is missing. There's a node which looks like it could replace that, but it has Wow6432Node in the name; I have no idea what that means. The machines seem to be for all intents and purposes identical; they're both Windows 7 SP1, with similar RAM and CPU. My guess is that the old machine has been running long enough that something changed about how we image windows 7 machines, and that is causing issues on the new one. Labs, any ideas here? Test installer people, do you have any idea why this could be happening? Would definitely appreciate some help here. Not sure if these are the right components, feel free to re-route.
,
Mar 16 2018
My psychic debugging powers tell me that this bot is running a 64-bit python.exe, whereas most/all others are running 32-bit python.exe. The problem is that uninstall_chrome.py must include _winreg.KEY_WOW64_64KEY when it opens the uninstall reg key on line 41:
key = _winreg.OpenKey(root_key, sub_key, 0, _winreg.KEY_QUERY_VALUE)
should be:
key = _winreg.OpenKey(root_key, sub_key, 0,
_winreg.KEY_QUERY_VALUE | _winreg.KEY_WOW64_64KEY)
,
Mar 16 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/643f20ffe7f9138815f639ea92e0cf090dc90a30 commit 643f20ffe7f9138815f639ea92e0cf090dc90a30 Author: Greg Thompson <grt@chromium.org> Date: Fri Mar 16 20:12:37 2018 Make uninstall_chrome.py look in the right registry hive. When run using a 64-bit build of python.exe, the tool needs to explicitly look in the 32-bit hive for Chrome's uninstall key. BUG= 822448 Change-Id: Icc0274f73411a717878651ec50ad65e7292f3102 Reviewed-on: https://chromium-review.googlesource.com/966444 Commit-Queue: Stephen Martinis <martiniss@chromium.org> Reviewed-by: Stephen Martinis <martiniss@chromium.org> Cr-Commit-Position: refs/heads/master@{#543800} [modify] https://crrev.com/643f20ffe7f9138815f639ea92e0cf090dc90a30/chrome/test/mini_installer/uninstall_chrome.py
,
Mar 16 2018
https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Win7%20Tests%20%281%29/523 (which hasn't run yet) should include #3. I'll check to see what happens on that build. I might need to manually run the uninstall script.
,
Mar 16 2018
The test harness will uninstall Chrome before running the tests. The fix above should help with that. Let's see. If it doesn't, there may be another bug specific to 64-bit python in there.
,
Mar 16 2018
Oh JK, https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Win7%20Tests%20%281%29/523 won't work. It got an older chromium revision. So sometime today #3 will run and we'll see if it works.
,
Mar 16 2018
It passed in https://ci.chromium.org/p/chromium/builders/luci.chromium.ci/Win7%20Tests%20%281%29/524 ! Woo, thanks!
,
Mar 16 2018
,
Mar 17 2018
Awesome. |
||||
►
Sign in to add a comment |
||||
Comment 1 by martiniss@chromium.org
, Mar 16 2018