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

Issue 699798 link

Starred by 4 users

Issue metadata

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



Sign in to add a comment

Chrome aborts due to lock screen taking too long; JS errors from lock.js

Project Member Reported by derat@chromium.org, Mar 9 2017

Issue description

Google Chrome	58.0.3027.0 (Official Build) beta (64-bit)
Platform	9331.0.0 (Official Build) beta-channel caroline

I just saw Chrome abort on this caroline device due to the lock screen taking too long to be ready after I closed the lid:

[1599:1599:0308/152859.720727:VERBOSE1:screen_locker.cc(402)] Received LockScreen request from session manager
[1599:1599:0308/152859.720891:VERBOSE1:screen_locker.cc(453)] Created ScreenLocker 0xc6f333a8b40
[1599:1599:0308/152859.723651:VERBOSE1:webui_screen_locker.cc(216)] Lock window ready; WebUI is not
[1599:1599:0308/152859.723944:VERBOSE1:lock_state_controller.cc(329)] StartImmediatePreLockAnimation 0
[1599:1599:0308/152859.733193:ERROR:CONSOLE(415)] "Uncaught TypeError: Cannot read property 'apply' of undefined", source: chrome://oobe/lock.js (415)
[1599:1599:0308/152859.734266:ERROR:CONSOLE(415)] "Uncaught TypeError: Cannot read property 'apply' of undefined", source: chrome://oobe/lock.js (415)
[1599:1599:0308/152859.734534:ERROR:CONSOLE(2486)] "Uncaught TypeError: Cannot read property 'length' of undefined", source: chrome://oobe/lock.js (2486)
[1599:1599:0308/152859.735401:ERROR:CONSOLE(2660)] "Uncaught TypeError: currentScreen.onWindowResize is not a function", source: chrome://oobe/lock.js (2660)
[1599:1599:0308/152859.900285:VERBOSE1:display_configurator.cc(951)] Display snapshots invalidated.
[1599:1599:0308/152859.900518:VERBOSE1:update_display_configuration_task.cc(74)] OnDisplaysUpdated: new_display_state=SINGLE new_power_state=ALL_OFF flags=0 force_configure=0 display_count=1
[1599:1599:0308/152859.900616:VERBOSE1:display_configurator.cc(217)] EnterState: display=SINGLE power=ALL_OFF
[1599:1599:0308/152900.196394:VERBOSE1:display_configurator.cc(1061)] OnConfigured: success=1 new_display_state=SINGLE new_power_state=ALL_OFF
[1599:1599:0308/152900.203966:VERBOSE1:display_color_manager_chromeos.cc(217)] No ICC file found with product id: 4d107114 for display id: 21691195950291200
[1599:1599:0308/152900.205047:VERBOSE1:lock_state_controller.cc(462)] PreLockAnimationFinished
[1599:1599:0308/152908.206101:FATAL:lock_state_controller.cc(251)] Screen lock took too long; crashing intentionally

The system was lightly loaded, and all of those JS errors look suspicious. Is there a regression in lock.js that makes the page never report that it's ready?
 
Cc: r...@chromium.org
Owner: jdufault@chromium.org
Status: Assigned (was: Untriaged)

Comment 2 by derat@chromium.org, Mar 9 2017

This appears to happen consistently on this device. I just hit Search+L and saw it again: I see my wallpaper but no user pods, and eight seconds later Chrome aborts. Same JS errors as last time:

[16882:16882:0308/162353.614041:VERBOSE1:screen_locker.cc(402)] Received LockScreen request from session manager
[16882:16882:0308/162353.614357:VERBOSE1:screen_locker.cc(453)] Created ScreenLocker 0x1fd5e0b40ea0
[16882:16882:0308/162353.627737:VERBOSE1:webui_screen_locker.cc(216)] Lock window ready; WebUI is not
[16882:16882:0308/162353.628640:VERBOSE1:lock_state_controller.cc(329)] StartImmediatePreLockAnimation 0
[16882:16882:0308/162353.647946:ERROR:CONSOLE(415)] "Uncaught TypeError: Cannot read property 'apply' of undefined", source: chrome://oobe/lock.js (415)
[16882:16882:0308/162353.648751:ERROR:CONSOLE(415)] "Uncaught TypeError: Cannot read property 'apply' of undefined", source: chrome://oobe/lock.js (415)
[16882:16882:0308/162353.648853:ERROR:CONSOLE(2486)] "Uncaught TypeError: Cannot read property 'length' of undefined", source: chrome://oobe/lock.js (2486)
[16882:16882:0308/162353.648914:ERROR:CONSOLE(2660)] "Uncaught TypeError: currentScreen.onWindowResize is not a function", source: chrome://oobe/lock.js (2660)
[16882:16882:0308/162354.004585:VERBOSE1:lock_state_controller.cc(462)] PreLockAnimationFinished
[16882:16882:0308/162402.005332:FATAL:lock_state_controller.cc(251)] Screen lock took too long; crashing intentionally

Comment 3 by derat@chromium.org, Mar 9 2017

This hasn't repro'd the last few times I've tried. Here's what the log looks like on success:

[8444:8444:0308/171742.506629:VERBOSE1:screen_locker.cc(402)] Received LockScreen request from session manager
[8444:8444:0308/171742.506886:VERBOSE1:screen_locker.cc(453)] Created ScreenLocker 0x9ef949f42d0
[8444:8444:0308/171742.528004:VERBOSE1:webui_screen_locker.cc(216)] Lock window ready; WebUI is not
[8444:8444:0308/171742.528118:VERBOSE1:lock_state_controller.cc(329)] StartImmediatePreLockAnimation 0
[8444:8444:0308/171742.552854:VERBOSE1:arc_util.cc(47)] Non-primary users are not supported in ARC.
[8444:8444:0308/171742.818572:WARNING:CONSOLE(1)] "This file is deprecated. Please use `iron-flex-layout/iron-flex-layout-classes.html`, and one of the specific dom-modules instead", source: chrome://resources/polymer/v1_0/iron-flex-layout/classes/iron-shadow-flex-layout-extracted.js (1)
[8444:8444:0308/171742.819162:WARNING:CONSOLE(1)] "This file is deprecated. Please use `iron-flex-layout/iron-flex-layout-classes.html`, and one of the specific dom-modules instead", source: chrome://resources/polymer/v1_0/iron-flex-layout/classes/iron-flex-layout-extracted.js (1)
[8444:8444:0308/171742.836300:WARNING:CONSOLE(0)] "/deep/ combinator is deprecated. See https://www.chromestatus.com/features/6750456638341120 for more details.", source:  (0)
[8444:8444:0308/171742.881344:INFO:signin_screen_handler.cc(1399)] Login WebUI >> active: 0, source: account-picker
[8444:8444:0308/171742.881939:INFO:signin_screen_handler.cc(1399)] Login WebUI >> active: 1, source: account-picker
[8444:8444:0308/171742.899161:INFO:screenlock_bridge.cc(149)] Focused user changed to {"account_type":"google","email":"redacted","gaia_id":"redacted"}
[8444:8444:0308/171742.902977:VERBOSE1:signin_screen_handler.cc(1354)] Login WebUI >> loginVisible, src: oobe, webui_visible_: 0
[8444:8444:0308/171742.966524:VERBOSE1:lock_state_controller.cc(462)] PreLockAnimationFinished
[8444:8444:0308/171743.105552:INFO:signin_screen_handler.cc(1308)] Login WebUI >> AccountPickerReady
[8444:8444:0308/171743.105775:VERBOSE1:gaia_screen_handler.cc(244)] MaybePreloadAuthExtension
[8444:8444:0308/171743.106465:VERBOSE1:webui_screen_locker.cc(252)] WebUI ready; lock window is too
[8444:8444:0308/171743.106570:VERBOSE1:screen_locker.cc(533)] ScreenLocker 0x9ef949f42d0 is ready after 0.599697 second(s)
[8444:8444:0308/171743.106794:VERBOSE1:screen_locker.cc(537)] Moving wallpaper to locked container
[8444:8444:0308/171743.107145:VERBOSE1:screen_locker.cc(541)] Emitting SCREEN_LOCK_STATE_CHANGED with state=1
[8444:8444:0308/171743.108565:VERBOSE1:lock_state_controller.cc(220)] OnLockStateChanged called with locked: 1, shutting_down_: 0, system_is_locked_: 0, lock_fail_timer_.IsRunning(): 1
[8444:8444:0308/171743.108694:VERBOSE1:lock_state_controller.cc(413)] StartPostLockAnimation
[8444:8444:0308/171743.109219:VERBOSE1:screen_locker.cc(546)] Calling session manager's HandleLockScreenShown D-Bus method
[8444:8444:0308/171743.110902:VERBOSE2:webui_screen_locker.cc(301)] Lock screen signin screen is ready
[8444:8444:0308/171743.111673:VERBOSE1:signin_screen_handler.cc(1354)] Login WebUI >> loginVisible, src: account-picker, webui_visible_: 1
[8444:8444:0308/171743.128572:VERBOSE1:gaia_screen_handler.cc(455)] OnPortalDetectionCompleted Online
[8444:8444:0308/171743.467053:VERBOSE1:lock_state_controller.cc(503)] PostLockAnimationFinished
Cc: dhadd...@chromium.org sdantul...@chromium.org rookrishna@chromium.org
Reproduced on Chrome OS 9334.3.0/58.0.3029.6 caroline 
I've been having trouble reproducing on both link and kevin. abodeti@, do you have repro steps?
Status: Started (was: Assigned)
It looks like there is an issue with fetching a screen here[1]. Unfortunately that is pretty common code so without knowing the caller there's still not much to go on.

1: https://cs.chromium.org/chromium/src/ui/login/screen.js?l=364
I've uploaded a CL here[1] which will log the stack traces for JS errors. I am hoping to merge it into m58 so there will be some more debugging information to go on.

1: https://codereview.chromium.org/2741673003/
Could it be caused by the preload?
Certainly possible, but I haven't been able to repro with a preload.
Project Member

Comment 11 by bugdroid1@chromium.org, Mar 9 2017

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

commit 2dda79a0be4d6c98602315f68301531ad34ce613
Author: jdufault <jdufault@chromium.org>
Date: Thu Mar 09 22:46:54 2017

cros: Dump login/lock/oobe JS error stack traces to logs.

BUG= 699798 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation

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

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

Labels: Merge-Request-58
Merge request needed for additional logs. No fix yet :(
Project Member

Comment 14 by sheriffbot@chromium.org, Mar 10 2017

Labels: -Merge-Request-58 Hotlist-Merge-Approved Merge-Approved-58
Your change meets the bar and is auto-approved for M58. Please go ahead and merge the CL to branch 3029 manually. Please contact milestone owner if you have questions.
Owners: amineer@(clank), cmasso@(bling), bhthompson@(cros), govind@(desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Project Member

Comment 15 by bugdroid1@chromium.org, Mar 10 2017

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

commit 4ab39b02a1fbee4d7b2402101b705cbb3173fc87
Author: Jacob Dufault <jdufault@google.com>
Date: Fri Mar 10 23:13:47 2017

cros: Dump login/lock/oobe JS error stack traces to logs.

BUG= 699798 
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:closure_compilation

Review-Url: https://codereview.chromium.org/2741673003
Cr-Commit-Position: refs/heads/master@{#455889}
(cherry picked from commit 2dda79a0be4d6c98602315f68301531ad34ce613)

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

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

Comment 16 by derat@chromium.org, Mar 17 2017

Just saw this again on the same device, now running 58.0.3029.18:

[1400:1400:0317/143016.297274:VERBOSE1:screen_locker.cc(405)] Received LockScreen request from session manager
[1400:1400:0317/143016.323785:VERBOSE1:screen_locker.cc(456)] Created ScreenLocker 0x33b73fba6d80
[1400:1400:0317/143016.329857:VERBOSE1:webui_screen_locker.cc(216)] Lock window ready; WebUI is not
[1400:1400:0317/143016.330283:VERBOSE1:lock_state_controller.cc(329)] StartImmediatePreLockAnimation 0
[1400:1400:0317/143016.344379:ERROR:CONSOLE(8301)] "TypeError: Cannot read property 'apply' of undefined
    at Object.api.(anonymous function) [as updateUserImage] (chrome://oobe/lock.js:415:42)
    at <anonymous>:1:27", source: chrome://oobe/lock.js (8301)
[1400:1400:0317/143016.344963:ERROR:CONSOLE(415)] "Uncaught TypeError: Cannot read property 'apply' of undefined", source: chrome://oobe/lock.js (415)
[1400:1400:0317/143016.346508:ERROR:CONSOLE(8301)] "TypeError: Cannot read property 'apply' of undefined
    at Object.api.(anonymous function) [as loadUsers] (chrome://oobe/lock.js:415:42)
    at <anonymous>:1:27", source: chrome://oobe/lock.js (8301)
[1400:1400:0317/143016.346670:ERROR:CONSOLE(415)] "Uncaught TypeError: Cannot read property 'apply' of undefined", source: chrome://oobe/lock.js (415)
[1400:1400:0317/143016.346933:ERROR:CONSOLE(8301)] "TypeError: Cannot read property 'length' of undefined
    at Oobe.showScreen (chrome://oobe/lock.js:2486:65)
    at Function.Oobe.showScreen (chrome://oobe/lock.js:7923:24)
    at <anonymous>:1:12", source: chrome://oobe/lock.js (8301)
[1400:1400:0317/143016.347040:ERROR:CONSOLE(2486)] "Uncaught TypeError: Cannot read property 'length' of undefined", source: chrome://oobe/lock.js (2486)
[1400:1400:0317/143016.347167:ERROR:CONSOLE(8301)] "TypeError: currentScreen.onWindowResize is not a function
    at Oobe.onWindowResize_ (chrome://oobe/lock.js:2660:23)", source: chrome://oobe/lock.js (8301)
[1400:1400:0317/143016.347268:ERROR:CONSOLE(2660)] "Uncaught TypeError: currentScreen.onWindowResize is not a function", source: chrome://oobe/lock.js (2660)
[1400:1400:0317/143016.717302:VERBOSE1:lock_state_controller.cc(462)] PreLockAnimationFinished
[1400:1400:0317/143024.717985:FATAL:lock_state_controller.cc(251)] Screen lock took too long; crashing intentionally
We are going for beta promotion with the build Tuesday evening, any chance we can have a fix for this in that time?
Labels: -ReleaseBlock-Beta ReleaseBlock-Stable
Punting to stable as this is assumed to not be that common.

Comment 19 by derat@chromium.org, Mar 22 2017

Cc: tbuck...@chromium.org
Sure, but note that I'm seeing it quite often on this caroline device.

Tom, you use a caroline too, right? Have you been seeing any crashes when the screen is locked (e.g. after closing and opening the lid)?

Comment 20 by r...@chromium.org, Mar 22 2017

Jacob, did the logs change yield any more info that we can go on?

There's a stack trace now. I'm going to resume investigating today.
I haven't seen any crashes on the lockscreen recently.
I haven't reproduced this yet, but I suspect the crash happens when a sync or similar happens after the lock screen webui starts loading but before it has been initialized.

I've uploaded https://codereview.chromium.org/2766393003/ to hopefully address this. I'll be able to verify if this is the right fix on 59 via the DCHECKs. Merge to 58 should be safe since release builds will strip the DCHECKs.
Project Member

Comment 24 by bugdroid1@chromium.org, Mar 23 2017

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

commit cf76073aac63d2e460740d7562ee1523e6a0c7d8
Author: jdufault <jdufault@chromium.org>
Date: Thu Mar 23 00:28:17 2017

cros: Defer lockscreen updateUserImage and loadUser calls.

Add DCHECKs so we can get stack traces to confirm the root cause and change fix if needed.

BUG= 699798 

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

[modify] https://crrev.com/cf76073aac63d2e460740d7562ee1523e6a0c7d8/chrome/browser/ui/webui/chromeos/login/base_webui_handler.h
[modify] https://crrev.com/cf76073aac63d2e460740d7562ee1523e6a0c7d8/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc

Project Member

Comment 25 by bugdroid1@chromium.org, Mar 23 2017

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

commit cf76073aac63d2e460740d7562ee1523e6a0c7d8
Author: jdufault <jdufault@chromium.org>
Date: Thu Mar 23 00:28:17 2017

cros: Defer lockscreen updateUserImage and loadUser calls.

Add DCHECKs so we can get stack traces to confirm the root cause and change fix if needed.

BUG= 699798 

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

[modify] https://crrev.com/cf76073aac63d2e460740d7562ee1523e6a0c7d8/chrome/browser/ui/webui/chromeos/login/base_webui_handler.h
[modify] https://crrev.com/cf76073aac63d2e460740d7562ee1523e6a0c7d8/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc

Labels: Merge-Request-58
Project Member

Comment 27 by sheriffbot@chromium.org, Mar 24 2017

Labels: -Merge-Request-58 Merge-Approved-58
Your change meets the bar and is auto-approved for M58. Please go ahead and merge the CL to branch 3029 manually. Please contact milestone owner if you have questions.
Owners: amineer@(Android), cmasso@(iOS), bhthompson@(ChromeOS), govind@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Project Member

Comment 28 by sheriffbot@chromium.org, Mar 27 2017

Cc: keta...@chromium.org bhthompson@google.com
This issue has been approved for a merge. Please merge the fix to any appropriate branches as soon as possible!

If all merges have been completed, please remove any remaining Merge-Approved labels from this issue.

Thanks for your time! To disable nags, add the Disable-Nags label.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Project Member

Comment 29 by bugdroid1@chromium.org, Mar 27 2017

Labels: -merge-approved-58
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3b957ce7a6c9b3828c257c0193c1405a619fe75f

commit 3b957ce7a6c9b3828c257c0193c1405a619fe75f
Author: Jacob Dufault <jdufault@google.com>
Date: Mon Mar 27 17:58:28 2017

cros: Defer lockscreen updateUserImage and loadUser calls.

Add DCHECKs so we can get stack traces to confirm the root cause and change fix if needed.

BUG= 699798 

Review-Url: https://codereview.chromium.org/2766393003
Cr-Commit-Position: refs/heads/master@{#458952}
(cherry picked from commit cf76073aac63d2e460740d7562ee1523e6a0c7d8)

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

[modify] https://crrev.com/3b957ce7a6c9b3828c257c0193c1405a619fe75f/chrome/browser/ui/webui/chromeos/login/base_screen_handler.h
[modify] https://crrev.com/3b957ce7a6c9b3828c257c0193c1405a619fe75f/chrome/browser/ui/webui/chromeos/login/signin_screen_handler.cc

Comment 30 by derat@chromium.org, Mar 28 2017

Issue 705398 has been merged into this issue.

Comment 31 by jayhlee@google.com, Mar 29 2017

Looks like the fixes are live in platform 9334.24.0 / browser 58.0.3029.40 and should be in the next public beta build.

Comment 32 by r...@chromium.org, Apr 7 2017

Any updates?
With the CLs we have in place, should this be considered fixed? (or at least no longer blocking stable 58?)

Comment 34 by derat@chromium.org, Apr 12 2017

Status: Fixed (was: Started)
I haven't seen this anymore. Assuming than #29 fixed it unless there's evidence to the contrary seems reasonable to me.
Labels: -ReleaseBlock-Stable
Status: Started (was: Fixed)
Removing RBS but there are some DCHECKs that I need to remove/investigate
Status: Fixed (was: Started)

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

Status: Archived (was: Fixed)

Sign in to add a comment