New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 710975 link

Starred by 7 users

Issue metadata

Status: Archived
Owner:
Closed: Apr 2017
Cc:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug



Sign in to add a comment

page_cycler_v2.typical_25 is failing on CrOS in Oobe.readyForTesting

Project Member Reported by laszio@chromium.org, Apr 12 2017

Issue description

This will block master-chromium-pfq in a few days.

https://pantheon.corp.google.com/storage/browser/chromeos-autotest-results/112201905-chromeos-test/chromeos4-row11-rack9-host17/telemetry_AFDOGenerate/debug/

04/11 20:41:05.162 DEBUG|        base_utils:0185| Running 'ssh 100.115.219.135 python /home/chromeos-test/images/chell-chrome-pfq/R59-9453.0.0-rc1/telemetry_src/src/tools/perf/run_benchmark --verbose --browser=cros-chrome --output-format=chartjson --output-dir=/home/chromeos-test/images/chell-chrome-pfq/R59-9453.0.0-rc1/telemetry_src/src --remote=chromeos4-row11-rack9-host17 --pageset-repeat=1 page_cycler_v2.typical_25'
04/11 21:02:23.453 DEBUG|  telemetry_runner:0284| Error occurred executing.
04/11 21:02:23.455 DEBUG|  telemetry_runner:0290| Completed with exit code: 255.
stdout:[ RUN      ] http://www.nick.com/games@{'cache_temperature': 'pcv1-cold'}
Traceback (most recent call last):
  File "/home/chromeos-test/images/chell-chrome-pfq/R59-9453.0.0-rc1/telemetry_src/src/third_party/catapult/telemetry/telemetry/internal/story_runner.py", line 82, in _RunStoryAndProcessErrorIfNeeded
    state.WillRunStory(story)
  File "/home/chromeos-test/images/chell-chrome-pfq/R59-9453.0.0-rc1/telemetry_src/src/third_party/catapult/common/py_trace_event/py_trace_event/trace_event_impl/decorators.py", line 75, in traced_function
    return func(*args, **kwargs)
  File "/home/chromeos-test/images/chell-chrome-pfq/R59-9453.0.0-rc1/telemetry_src/src/third_party/catapult/telemetry/telemetry/page/shared_page_state.py", line 214, in WillRunStory
    self._StartBrowser(page)
  File "/home/chromeos-test/images/chell-chrome-pfq/R59-9453.0.0-rc1/telemetry_src/src/third_party/catapult/common/py_trace_event/py_trace_event/trace_event_impl/decorators.py", line 75, in traced_function
    return func(*args, **kwargs)
  File "/home/chromeos-test/images/chell-chrome-pfq/R59-9453.0.0-rc1/telemetry_src/src/third_party/catapult/telemetry/telemetry/page/shared_page_state.py", line 174, in _StartBrowser
    self._browser = self._possible_browser.Create(self._finder_options)
  File "/home/chromeos-test/images/chell-chrome-pfq/R59-9453.0.0-rc1/telemetry_src/src/third_party/catapult/telemetry/telemetry/internal/backends/chrome/cros_browser_finder.py", line 52, in Create
    browser_backend, self._platform_backend, self._credentials_path)
  File "/home/chromeos-test/images/chell-chrome-pfq/R59-9453.0.0-rc1/telemetry_src/src/third_party/catapult/telemetry/telemetry/internal/browser/browser.py", line 58, in __init__
    self._browser_backend.Start()
  File "/home/chromeos-test/images/chell-chrome-pfq/R59-9453.0.0-rc1/telemetry_src/src/third_party/catapult/common/py_trace_event/py_trace_event/trace_event_impl/decorators.py", line 75, in traced_function
    return func(*args, **kwargs)
  File "/home/chromeos-test/images/chell-chrome-pfq/R59-9453.0.0-rc1/telemetry_src/src/third_party/catapult/telemetry/telemetry/internal/backends/chrome/cros_browser_backend.py", line 163, in Start
    self._gaia_id, not self.browser_options.disable_gaia_services)
  File "/home/chromeos-test/images/chell-chrome-pfq/R59-9453.0.0-rc1/telemetry_src/src/third_party/catapult/common/py_trace_event/py_trace_event/trace_event_impl/decorators.py", line 75, in traced_function
    return func(*args, **kwargs)
  File "/home/chromeos-test/images/chell-chrome-pfq/R59-9453.0.0-rc1/telemetry_src/src/third_party/catapult/telemetry/telemetry/internal/backends/chrome/oobe.py", line 61, in NavigateFakeLogin
    enterprise_enroll)
  File "/home/chromeos-test/images/chell-chrome-pfq/R59-9453.0.0-rc1/telemetry_src/src/third_party/catapult/common/py_trace_event/py_trace_event/trace_event_impl/decorators.py", line 75, in traced_function
    return func(*args, **kwargs)
  File "/home/chromeos-test/images/chell-chrome-pfq/R59-9453.0.0-rc1/telemetry_src/src/third_party/catapult/telemetry/telemetry/internal/backends/chrome/oobe.py", line 41, in _ExecuteOobeApi
    "typeof Oobe == 'function' && Oobe.readyForTesting", timeout=120)
  File "/home/chromeos-test/images/chell-chrome-pfq/R59-9453.0.0-rc1/telemetry_src/src/third_party/catapult/common/py_trace_event/py_trace_event/trace_event_impl/decorators.py", line 75, in traced_function
    return func(*args, **kwargs)
  File "/home/chromeos-test/images/chell-chrome-pfq/R59-9453.0.0-rc1/telemetry_src/src/third_party/catapult/telemetry/telemetry/internal/browser/web_contents.py", line 191, in WaitForJavaScriptCondition
    return self._inspector_backend.WaitForJavaScriptCondition(*args, **kwargs)
  File "/home/chromeos-test/images/chell-chrome-pfq/R59-9453.0.0-rc1/telemetry_src/src/third_party/catapult/common/py_trace_event/py_trace_event/trace_event_impl/decorators.py", line 75, in traced_function
    return func(*args, **kwargs)
  File "/home/chromeos-test/images/chell-chrome-pfq/R59-9453.0.0-rc1/telemetry_src/src/third_party/catapult/telemetry/telemetry/internal/backends/chrome_inspector/inspector_backend.py", line 294, in WaitForJavaScriptCondition
    e.message + '\n' + debug_message)
TimeoutException: Timed out while waiting 120s for IsJavaScriptExpressionTrue.
Console output:
(warning) chrome://resources/polymer/v1_0/iron-flex-layout/classes/iron-shadow-flex-layout-extracted.js:1: This file is deprecated. Please use `iron-flex-layout/iron-flex-layout-classes.html`, and one of the specific dom-modules instead
(warning) chrome://resources/polymer/v1_0/iron-flex-layout/classes/iron-flex-layout-extracted.js:1: This file is deprecated. Please use `iron-flex-layout/iron-flex-layout-classes.html`, and one of the specific dom-modules instead
(error) chrome://oobe/oobe.js:8545: TypeError: Cannot read property 'addObserver' of null
    at HTMLDivElement.decorate (chrome://oobe/oobe.js:17341:19)
    at HTMLDivElement.initializeImpl_ (chrome://oobe/oobe.js:226:12)
    at HTMLDivElement.initialize (chrome://oobe/oobe.js:122:35)
    at Object.api.register (chrome://oobe/oobe.js:435:18)
    at Function.initialize (chrome://oobe/oobe.js:18031:32)
    at HTMLDocument.<anonymous> (chrome://oobe/oobe.js:8539:10)
(log) chrome://oobe/oobe.js:8042: Loading asset bundle oauth-enrollment
(log) chrome://oobe/oobe.js:8026: Finished loading asset bundle oauth-enrollment
 

Comment 1 by laszio@chromium.org, Apr 12 2017

Cc: bccheng@chromium.org

Comment 2 by laszio@chromium.org, Apr 12 2017

Cc: hidehiko@chromium.org
Labels: -Pri-0 Pri-1
Owner: hidehiko@chromium.org
Status: Assigned (was: Untriaged)
Summary: page_cycler_v2.typical_25 is failing on CrOS in Oobe.readyForTesting (was: page_cycler_v2.typical_25 is failing on CrOS)
Please revert if a solution can't be found for this relatively soon.

Dropping to P1 because TOT information bots are green.

Comment 4 by nya@chromium.org, Apr 13 2017

This error looks suspicious. Maybe the script execution was aborted before DOMContentLoaded handler is installed? I guess the error existed before, but it surfaced by hidehiko's change.

(error) chrome://oobe/oobe.js:8545: TypeError: Cannot read property 'addObserver' of null
    at HTMLDivElement.decorate (chrome://oobe/oobe.js:17341:19)
    at HTMLDivElement.initializeImpl_ (chrome://oobe/oobe.js:226:12)
    at HTMLDivElement.initialize (chrome://oobe/oobe.js:122:35)
    at Object.api.register (chrome://oobe/oobe.js:435:18)
    at Function.initialize (chrome://oobe/oobe.js:18031:32)
    at HTMLDocument.<anonymous> (chrome://oobe/oobe.js:8539:10)

That said, since hidehiko@ is OOO this week, I think it's fine to revert https://codereview.chromium.org/2803043002/ now. (I'm also OOO tomorrow so I'd like to do it by sheriffs)

Comment 5 by kinaba@chromium.org, Apr 13 2017

Hidehiko's change has added `Oobe.readyForTesting = true;` to the end of DOMContentLoaded,

https://codereview.chromium.org/2805033002/
  document.addEventListener('DOMContentLoaded', function() {
    Oobe.initialize();
    Oobe.readyForTesting = true;
  });

but looking at the error log, Oobe.initialize() is failing in exception?

chrome://oobe/oobe.js:8545: TypeError: Cannot read property 'addObserver' of null
    at HTMLDivElement.decorate (chrome://oobe/oobe.js:17341:19)
    at HTMLDivElement.initializeImpl_ (chrome://oobe/oobe.js:226:12)
    at HTMLDivElement.initialize (chrome://oobe/oobe.js:122:35)
    at Object.api.register (chrome://oobe/oobe.js:435:18)
    at Function.initialize (chrome://oobe/oobe.js:18031:32)
    at HTMLDocument.<anonymous> (chrome://oobe/oobe.js:8539:10)

Moving `Oobe.readyForTesting = true;` to a finally block around the initialization may be an easy way to workaround the issue,
but the fact that Oobe.initialize() is failing already sounds anxious.

Comment 6 by nya@chromium.org, Apr 13 2017

 Issue 710387  has been merged into this issue.

Comment 7 by stephen....@arm.com, Apr 13 2017

Thanks for looking into this. I did a small bit of investigation; it seems like it's failing somewhere in login.HIDDetectionScreen.register(), called from Oobe.initialize().

Comment 8 by kinaba@chromium.org, Apr 13 2017

Created a revert CL: https://codereview.chromium.org/2808763010/
but it looks we need LGTM from catapult-committers.

nednguyen@, bccheng@, achuith@, could you take a look when you have time?
Sorry for breakage.
Thank you for quick investigation, nya@ and kinaba@. Also, thank you for making a quick revert CL.

HIDDetectionScreen.decorate looks calling context.addObserver.
According to the exception message, |context| is null here.
Then,

https://cs.chromium.org/chromium/src/ui/login/screen.js?rcl=46865bb32b95d0ce0f16e12c8a59bf30a6fd8da4&l=170

cr.isChromeOS looks to return false. The implementation depends on UA;

https://cs.chromium.org/chromium/src/ui/webui/resources/js/cr.js?type=cs&q=cr.isChromeOS+package:%5Echromium$&l=466

And, according to the linked test log, actually UA looks not containing "CrOS".
What's the expected fix for the case?
- Add CrOS to UA?
- Create context also with some other condition for testing purpose?
- Not calling addObserver if context is null?
- Anything other...?
Please feel free to create another CL that has a finally block so we handle errors in OOBE initialization.
Is there an estimated time for when this is fixed?  If it's not fixed by Tuesday, it is going to start causing the Chrome PFQ to fail...
The CL has been reverted.
Status: Fixed (was: Assigned)
Let's mark this fixed now, as reverting should fix it.
Filed another bug about page_cycler_v2.typical_25 failure in Oobe.initialize().

Re #10: Thank you for advice. Then, let's always set the value.
Project Member

Comment 15 by bugdroid1@chromium.org, Apr 18 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/341333dfb5561bc987995a3cfe05aefc3ecb17e7

commit 341333dfb5561bc987995a3cfe05aefc3ecb17e7
Author: hidehiko <hidehiko@chromium.org>
Date: Tue Apr 18 03:26:43 2017

Update readyForTesting var even on Oobe.initialize() failure.

|readyForTesting| was introduced to let callers know whether
the DOM loading is done so testing APIs accessing DOM can be
successfully called.
Although, in some cases Oobe.initialize() is failed, so
it timed out.
Instead, this CL sets the value always. Then, callers can be notified
even on failure cases, so they can avoid timeout.

BUG= 710975 
TEST=Ran bots.
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation

Review-Url: https://codereview.chromium.org/2825453002
Cr-Commit-Position: refs/heads/master@{#465126}

[modify] https://crrev.com/341333dfb5561bc987995a3cfe05aefc3ecb17e7/chrome/browser/resources/chromeos/login/login_shared.js

Project Member

Comment 16 by bugdroid1@chromium.org, Apr 19 2017

Labels: merge-merged-3029
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a95956d32ac614c6b56de6bb1038c526e92a2378

commit a95956d32ac614c6b56de6bb1038c526e92a2378
Author: Hidehiko Abe <hidehiko@chromium.org>
Date: Wed Apr 19 05:58:53 2017

Update readyForTesting var even on Oobe.initialize() failure.

|readyForTesting| was introduced to let callers know whether
the DOM loading is done so testing APIs accessing DOM can be
successfully called.
Although, in some cases Oobe.initialize() is failed, so
it timed out.
Instead, this CL sets the value always. Then, callers can be notified
even on failure cases, so they can avoid timeout.

BUG= 710975 
TEST=Ran bots.
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation

Review-Url: https://codereview.chromium.org/2825453002
Cr-Commit-Position: refs/heads/master@{#465126}
(cherry picked from commit 341333dfb5561bc987995a3cfe05aefc3ecb17e7)

Review-Url: https://codereview.chromium.org/2825253002 .
Cr-Commit-Position: refs/branch-heads/3029@{#752}
Cr-Branched-From: 939b32ee5ba05c396eef3fd992822fcca9a2e262-refs/heads/master@{#454471}

[modify] https://crrev.com/a95956d32ac614c6b56de6bb1038c526e92a2378/chrome/browser/resources/chromeos/login/login_shared.js

Project Member

Comment 17 by bugdroid1@chromium.org, Apr 19 2017

Labels: merge-merged-3071
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f04994956c70496a087fb184d815b5d40bc0daf6

commit f04994956c70496a087fb184d815b5d40bc0daf6
Author: Hidehiko Abe <hidehiko@chromium.org>
Date: Wed Apr 19 06:21:43 2017

Update readyForTesting var even on Oobe.initialize() failure.

|readyForTesting| was introduced to let callers know whether
the DOM loading is done so testing APIs accessing DOM can be
successfully called.
Although, in some cases Oobe.initialize() is failed, so
it timed out.
Instead, this CL sets the value always. Then, callers can be notified
even on failure cases, so they can avoid timeout.

BUG= 710975 
TEST=Ran bots.
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation

Review-Url: https://codereview.chromium.org/2825453002
Cr-Commit-Position: refs/heads/master@{#465126}
(cherry picked from commit 341333dfb5561bc987995a3cfe05aefc3ecb17e7)

Review-Url: https://codereview.chromium.org/2828443004 .
Cr-Commit-Position: refs/branch-heads/3071@{#46}
Cr-Branched-From: a106f0abbf69dad349d4aaf4bcc4f5d376dd2377-refs/heads/master@{#464641}

[modify] https://crrev.com/f04994956c70496a087fb184d815b5d40bc0daf6/chrome/browser/resources/chromeos/login/login_shared.js

Issue 718687 has been merged into this issue.

Comment 19 by dchan@google.com, May 30 2017

Labels: VerifyIn-60
Labels: VerifyIn-61

Comment 21 by dchan@chromium.org, Jan 22 2018

Status: Archived (was: Fixed)

Sign in to add a comment