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

Issue 834775 link

Starred by 2 users

Issue metadata

Status: Verified
Owner:
Closed: May 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 1
Type: Bug-Regression



Sign in to add a comment

Devices failing to reboot in mirror mode on R68

Project Member Reported by matthewjoseph@chromium.org, Apr 19 2018

Issue description

display_HotPlugAtBoot.mirrored is failing on all boards running R68 builds.  This autotest is passing on R67.
Failure reason is: Error: not rebooted to mirrored mode

The diff between R67 and R68 doesn't point to anything obvious:
https://crosland.corp.google.com/log/10575.7.0..10595.0.0


Stainless Failures:
https://stainless.corp.google.com/search?view=list&first_date=2018-03-21&last_date=2018-04-19&suite=chameleon_hdmi_perbuild&build=%5ER68%5C.*&status=FAIL&status=ERROR&status=ABORT&reason=Error%3A+not+rebooted+to+mirrored+mode&exclude_cts=false&exclude_not_run=false&exclude_non_release=false&exclude_au=true&exclude_acts=true&exclude_retried=true&exclude_non_production=true


Able to reproduce the issue on Eve running R68-10597.0.0 manually.  After setting mirrored mode, then rebooting the device, the external display comes back in extended mode.
 
Labels: -Restrict-View-EditAnyDuties Restrict-View-Google

Comment 3 by ka...@chromium.org, Apr 19 2018

Cc: osh...@chromium.org weidongg@chromium.org marc...@chromium.org waihong@chromium.org
Components: OS>Kernel>Display
Labels: -Restrict-View-Google -Pri-2 Pri-1
Summary: Devices failing to reboot in mirror mode on R68 (was: [chameleon_hdmi_perbuild] display_HotPlugAtBoot.mirrored is failing on many boards on R68)
Test results dashboard overal view: https://screenshot.googleplex.com/pQ9rviHMjHJ

Comment 4 by ka...@chromium.org, Apr 19 2018

The relevant diff here should be https://crosland.corp.google.com/log/10580.0.0..10587.0.0

Owner: afakhry@chromium.org
Seems like something on the Chrome side, afakhry@ do you know what this is?
I am doing bisect to locate the culprit CL.
Cc: steve...@chromium.org
+stevenjb@
The bug is introduced in https://chromium-review.googlesource.com/c/chromium/src/+/1003379
Cc: afakhry@chromium.org
Owner: steve...@chromium.org
Status: Assigned (was: Untriaged)
Status: Started (was: Assigned)
Unfortunately a revert will not be trivial, as several refactorings depend on this. Investigating.

Project Member

Comment 11 by bugdroid1@chromium.org, May 2 2018

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

commit ca10851be8909fe29bd2f81f72630c8be2113933
Author: Steven Bennetts <stevenjb@chromium.org>
Date: Wed May 02 11:05:03 2018

Pass initial display prefs from Chrome to ash::Shell

The solution to this was kind of subtle. Here are some notes for posterity:

* ash::Shell::local_state_ (the device PrefService used by Ash) is
  loaded asynchronously, after Shell::Init.
* Display preferences need to be initialized synchronously; there are
  currently too many dependencies to make asynchronous initialization
  robust.
* Thus for 'classic' mode, we need to provide initial display prefs from
  the synchronously loaded browser local state prefs to ash::Shell::Init.
* Registering prefs has to occur early (before feature flags are loaded),
  so using different registration for classic/mus/mash would be
  complicated. Instead we always register display prefs in chrome and
  treat them as foreign prefs in ash (except for tests).
* Because of the complications of pref registration, accessing a second,
  synchronously loaded, PrefService instance in Ash would be difficult.
  Instead we extract a base::Value dictionary of display prefs and pass
  that in ShellInitParams.

This fixes 'classic' mode, but does not solve the problem for mus/mash
(which has never worked). Potential long term solutions:
(a) Store display prefs in an Ash specific value store that is
    synchronously loaded (along with other similar prefs).
(b) Initialize Shell::local_state_ with the initial state before the Mash
    process forks (solving any registration issues this entails).
(c) Make initial display configuration work asynchronously.

Bug:  834775 
Change-Id: I75e561394c817e7c93d8c724bdadcaa37ef868af
Reviewed-on: https://chromium-review.googlesource.com/1028479
Reviewed-by: Dominic Battré <battre@chromium.org>
Reviewed-by: James Cook <jamescook@chromium.org>
Reviewed-by: Ahmed Fakhry <afakhry@chromium.org>
Commit-Queue: Steven Bennetts <stevenjb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#555348}
[modify] https://crrev.com/ca10851be8909fe29bd2f81f72630c8be2113933/ash/display/display_prefs.cc
[modify] https://crrev.com/ca10851be8909fe29bd2f81f72630c8be2113933/ash/display/display_prefs.h
[modify] https://crrev.com/ca10851be8909fe29bd2f81f72630c8be2113933/ash/display/display_prefs_unittest.cc
[modify] https://crrev.com/ca10851be8909fe29bd2f81f72630c8be2113933/ash/shell.cc
[modify] https://crrev.com/ca10851be8909fe29bd2f81f72630c8be2113933/ash/shell.h
[modify] https://crrev.com/ca10851be8909fe29bd2f81f72630c8be2113933/ash/shell_init_params.h
[modify] https://crrev.com/ca10851be8909fe29bd2f81f72630c8be2113933/ash/shell_unittest.cc
[modify] https://crrev.com/ca10851be8909fe29bd2f81f72630c8be2113933/ash/test/ash_test_helper.cc
[modify] https://crrev.com/ca10851be8909fe29bd2f81f72630c8be2113933/ash/wallpaper/wallpaper_controller_unittest.cc
[modify] https://crrev.com/ca10851be8909fe29bd2f81f72630c8be2113933/ash/window_manager.cc
[modify] https://crrev.com/ca10851be8909fe29bd2f81f72630c8be2113933/ash/window_manager.h
[modify] https://crrev.com/ca10851be8909fe29bd2f81f72630c8be2113933/ash/window_manager_service.cc
[add] https://crrev.com/ca10851be8909fe29bd2f81f72630c8be2113933/chrome/browser/chromeos/display/DEPS
[add] https://crrev.com/ca10851be8909fe29bd2f81f72630c8be2113933/chrome/browser/chromeos/display/display_prefs_browsertest.cc
[modify] https://crrev.com/ca10851be8909fe29bd2f81f72630c8be2113933/chrome/browser/chromeos/preferences.cc
[modify] https://crrev.com/ca10851be8909fe29bd2f81f72630c8be2113933/chrome/browser/ui/ash/DEPS
[modify] https://crrev.com/ca10851be8909fe29bd2f81f72630c8be2113933/chrome/browser/ui/ash/ash_shell_init.cc
[modify] https://crrev.com/ca10851be8909fe29bd2f81f72630c8be2113933/chrome/browser/ui/ash/ash_shell_init.h
[modify] https://crrev.com/ca10851be8909fe29bd2f81f72630c8be2113933/chrome/test/BUILD.gn
[modify] https://crrev.com/ca10851be8909fe29bd2f81f72630c8be2113933/components/prefs/pref_service.cc
[modify] https://crrev.com/ca10851be8909fe29bd2f81f72630c8be2113933/components/prefs/pref_service.h
[modify] https://crrev.com/ca10851be8909fe29bd2f81f72630c8be2113933/testing/buildbot/filters/mash.browser_tests.filter

Status: Fixed (was: Started)
Status: Verified (was: Fixed)

Sign in to add a comment