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

Issue 734353 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Aug 2017
Cc:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 1
Type: Bug



Sign in to add a comment

Page hangs consistently upon device rotation

Project Member Reported by wfh@chromium.org, Jun 17 2017

Issue description

Chrome Version: 61.0.3132.0 canary
OS: Android 7.1.2

What steps will reproduce the problem?
(1) https://www.techwalls.com/differences-between-iphone-6-6-plus-models/
(2)
(3)

What is the expected result?

No hang

What happens instead?

Hang. Have to kill chrome.

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.

 

Comment 1 by wfh@chromium.org, Jun 17 2017

You need to scroll down then you get ANR and have to kill Chrome.

It loads fine on dev channel 61.0.3129.3 so it's a regression.

My variations on Canary are:

6a89113b-8842e68f
16e0dd70-3f4a17df
e81a9d4f-ca7d8d80
da89714-4ad60575
6c18ba9d-3d98b302
241fff6c-ca7d8d80
c68ab9a3-1f8c5973
b130ecb8-2e32ee7e
6025934e-3f4a17df
d175604-65bced95
27af3425-49d6ce1
b763c097-3f4a17df
236d5d9e-347fc86a
bd007046-f23d1dea
47e5d3db-3d47f4f4
e036a196-65bced95
77207729-e0e232cc
f0a371b8-65bced95
5ca89f9-f23d1dea
bf586af3-65bced95
57f575bb-f23d1dea
68812885-f23d1dea
a82e9b43-3f4a17df
3f140034-17bbd7d0
949c6e63-803f8fc4
2ce29c0a-3d47f4f4
287f29ba-365ad45c
28bf4731-3f4a17df
176d07dc-65bced95
9773d3bd-2f79df73
93731dca-803f8fc4
6e434f55-3f4a17df
9e5c75f1-fff58f2c
b2972962-ca7d8d80
d6db5f84-3f4a17df
f79cb77b-3f4a17df
27219e67-b2047178
23a898eb-ba2d47bf
9e46b3e5-4a60b24c
e856c60b-94c6bb7c
4ea303a6-53a3c5c2
f66ea88e-4eb6d224
d2247fcb-ca7d8d80
2697ea25-ca7d8d80
f56e0452-f23d1dea
65a86f01-ca7d8d80
b2f0086-b4530445
ef25c1eb-ca7d8d80
4f864ce1-3d47f4f4
1354da85-5589f0cc
494d8760-3d47f4f4
3ac60855-3ec2a267
4442aae2-e1cc0f14
ed1d377-e1cc0f14
75f0f0a0-d7f6b13c
e7e71889-4ad60575
f5fff3a2-3f4a17df
644b8345-726d8ace
9c7f6723-65bced95
828a5926-c6c0a780
6ba22d84-3f4a17df
64fbb017-cf4f6ead

Comment 2 by wfh@chromium.org, Jun 17 2017

I sent feedback with the magic keyword "lazerbadger" under my wfh@google.com account.
This still repro on today's canary wfh@?
We are not able to repro this issue on Chrome:61.0.3132.0,61.0.3136.3 Device:Pixel/NJH47D/7.1.2,Pixel XL/NHG47L/7.1.2 and Samsung Galaxy S8(SM-G950U)/NRD90M/7.0.0

Comment 5 by wfh@chromium.org, Jun 20 2017

still hangs on 61.0.3135.0 screenshot attached for proof.
Screenshot_20170620-193957.png
378 KB View Download

Comment 6 by wfh@chromium.org, Jun 20 2017

I realized I was one revision behind so updated to 61.0.3136.3 and I can still reproduce. I filed another feedback with the secret keyword 'lazerbadger'.

Comment 7 by wfh@chromium.org, Jun 20 2017

Components: Blink>JavaScript
Labels: -Pri-2 Stability-Sheriff-Android ReleaseBlock-Stable M-61 Pri-1
BR is attached @ https://b.corp.google.com/issues/62828196

I reviewed the logs briefly and it looks like Chrome was ANRed due to not Chrome not responding to an ActivityManager touch event within 500ms - unfortunately no great details that I could see in the log, but I didn't spend a huge amount of time there.

I did try to repro and couldn't.  I attempted to diff wfh@'s variations with my own, and toggled a few items that were dissimilar, but even then could not repro.

Since this is resulting in an ANR, will place in the stability sheriff queue to see if someone has insights.  Since this is 10/10 reproducible will mark as stable blocking.

Comment 9 by wnwen@chromium.org, Jun 21 2017

Not much to go on here with it being not reproducible outside of Will's device.

Anyone know how to find a pulse feedback report from a keyword "lazerbadger"?
wnwen@, did you look at the BR attached to c#8?  I don't think the feedback report is going to give you anything the BR won't.

Have you tried toggling any of the experiments listed to see if any of those could be to blame?

Comment 11 by wnwen@chromium.org, Jun 22 2017

Relevant logcat:

06-20 19:33:22.938  1083  1083 V NotificationService: pkg=com.google.android.talk canInterrupt=false intercept=true
06-20 19:34:40.957  1083  1141 E BatteryStatsService: no controller energy info supplied
06-20 19:34:41.497  1083  1083 V NotificationService: pkg=com.google.android.talk canInterrupt=false intercept=true
06-20 19:34:54.327  1083  1083 V NotificationService: pkg=com.google.android.talk canInterrupt=false intercept=true
06-20 19:35:11.453  1083 11842 W InputMethodManagerService: Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@a4ad8e5 attribute=null, token = android.os.BinderProxy@527d140
06-20 19:35:11.462  1083  1948 I ActivityManager: Setting hasTopUi=false for pid=1550
06-20 19:35:48.217  1083  2525 D ConnectivityService: Returning unblocked NetworkInfo to uid=10077
06-20 19:37:23.544  1083  1138 I ProcessStatsService: Prepared write state in 12ms
06-20 19:37:23.586  1083 11842 I ActivityManager: Start proc 3095:com.gyft.android/u0a140 for broadcast com.gyft.android/.services.sync.receiver.StartPayPalProcessorReceiver
06-20 19:37:24.147  1083 27882 I ActivityManager: Killing 468:com.google.android.apps.plus/u0a137 (adj 906): empty #17
06-20 19:37:24.168  1083  3903 D ActivityManager: cleanUpApplicationRecord -- 468
06-20 19:38:47.604  1083 11028 I ActivityManager: Setting hasTopUi=true for pid=1550
06-20 19:38:50.720  1083 27882 I ActivityManager: START u0 {cmp=com.google.android.gms/.update.SystemUpdateActivity} from uid 10019 on display 0
06-20 19:38:50.725  1083  1948 W InputMethodManagerService: Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@696c23d attribute=null, token = android.os.BinderProxy@527d140
06-20 19:38:50.741  1083 27882 W ActivityManager: startActivity called from non-Activity context; forcing Intent.FLAG_ACTIVITY_NEW_TASK for: Intent { cmp=com.google.android.gms/.update.SystemUpdateActivity }
06-20 19:38:50.757  1083  3900 E ActivityManager: applyOptionsLocked: Unknown animationType=0
06-20 19:38:50.848  1083  1083 V NotificationService: pkg=com.google.android.gms canInterrupt=false intercept=true
06-20 19:38:51.054  1083  1448 I ActivityManager: Setting hasTopUi=false for pid=1550
06-20 19:39:13.139  1083 11843 E BatteryStatsService: no controller energy info supplied
06-20 19:39:13.286  1083  1141 E BatteryStatsService: no controller energy info supplied
06-20 19:39:13.301  1083  1141 E BatteryStatsService: modem info is invalid: ModemActivityInfo{ mTimestamp=0 mSleepTimeMs=0 mIdleTimeMs=0 mTxTimeMs[]=[0, 0, 0, 0, 0] mRxTimeMs=0 mEnergyUsed=0}
06-20 19:39:28.059  1083  1439 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10200000 cmp=com.google.android.apps.nexuslauncher/.NexusLauncherActivity (has extras)} from uid 1000 on display 0
06-20 19:39:28.157  1083  1083 V NotificationService: pkg=com.google.android.gms canInterrupt=false intercept=true
06-20 19:39:28.658  1083  3899 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.chrome.canary/com.google.android.apps.chrome.Main bnds=[306,2112][582,2392] (has extras)} from uid 100
06-20 19:39:28.703  1083  1445 D ConnectivityService: Returning unblocked NetworkInfo to uid=10118
06-20 19:39:28.738  1083 12741 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x14002000 cmp=com.chrome.canary/org.chromium.chrome.browser.ChromeTabbedActivity bnds=[306,2112][582,2392] (has extras)}
06-20 19:39:31.696  1083  1159 D LuxLevels: bright hysteresis constant= 0.1, threshold=46.533157, lux=42.302868
06-20 19:39:31.696  1083  1159 D LuxLevels: dark hysteresis constant= 0.2, threshold=33.842297, lux=42.302868
06-20 19:39:34.073  1083  1159 D LuxLevels: bright hysteresis constant= 0.1, threshold=36.57123, lux=33.246574
06-20 19:39:34.073  1083  1159 D LuxLevels: dark hysteresis constant= 0.2, threshold=26.59726, lux=33.246574
06-20 19:39:35.340  1083 11843 I ActivityManager: Start proc 3264:com.chrome.canary:sandboxed_process8/u0i111 for service com.chrome.canary/org.chromium.content.app.SandboxedProcessService8
06-20 19:39:38.075  1083 27883 I ActivityManager: Process com.chrome.canary:sandboxed_process7 (pid 25257) has died
06-20 19:39:38.075  1083 27883 D ActivityManager: cleanUpApplicationRecord -- 25257
06-20 19:39:38.075  1083 27883 W ActivityManager: Scheduling restart of crashed service com.chrome.canary/org.chromium.content.app.SandboxedProcessService7 in 1000ms
06-20 19:39:50.437  1083  1159 D LuxLevels: bright hysteresis constant= 0.1, threshold=42.914143, lux=39.012856
06-20 19:39:50.437  1083  1159 D LuxLevels: dark hysteresis constant= 0.2, threshold=31.210285, lux=39.012856
06-20 19:39:51.715  1083  1439 I WindowManager: Input event dispatching timed out sending to com.chrome.canary/org.chromium.chrome.browser.ChromeTabbedActivity.  Reason: Waiting to send non-key event because the touched window has not finished processing
06-20 19:39:55.265  1083  1138 E ActivityManager: ANR in com.chrome.canary (com.chrome.canary/org.chromium.chrome.browser.ChromeTabbedActivity)
06-20 19:39:55.265  1083  1138 E ActivityManager: PID: 11799
06-20 19:39:55.265  1083  1138 E ActivityManager: Reason: Input dispatching timed out (Waiting to send non-key event because the touched window has not finished processing certain input events that were delivered to it over 500.0ms ago.  Wait queue length
06-20 19:39:55.265  1083  1138 E ActivityManager: Load: 7.15 / 6.75 / 7.07
06-20 19:39:55.265  1083  1138 E ActivityManager: CPU usage from 38801ms to 0ms ago (2017-06-20 19:39:12.934 to 2017-06-20 19:39:51.735):
06-20 19:39:55.265  1083  1138 E ActivityManager:   22% 15675/com.google.android.gms: 19% user + 3.1% kernel / faults: 17790 minor 315 major
06-20 19:39:55.265  1083  1138 E ActivityManager:   16% 11799/com.chrome.canary: 12% user + 3.2% kernel / faults: 29204 minor 423 major
06-20 19:39:55.265  1083  1138 E ActivityManager:   19% 1083/system_server: 13% user + 5.4% kernel / faults: 8760 minor 42 major
06-20 19:39:55.265  1083  1138 E ActivityManager:   6.2% 2336/com.google.android.gms.persistent: 4.6% user + 1.6% kernel / faults: 6687 minor 11 major
06-20 19:39:55.265  1083  1138 E ActivityManager:   2.9% 505/surfaceflinger: 1.2% user + 1.6% kernel / faults: 384 minor
06-20 19:39:55.265  1083  1138 E ActivityManager:   0.7% 11866/com.chrome.canary:privileged_process0: 0.4% user + 0.3% kernel / faults: 9270 minor 30 major
06-20 19:39:55.265  1083  1138 E ActivityManager:   1.1% 613/kschedfreq:0: 0% user + 1.1% kernel
06-20 19:39:55.265  1083  1138 E ActivityManager:   1% 16419/com.google.android.googlequicksearchbox:search: 0.8% user + 0.2% kernel / faults: 9437 minor 10 major
06-20 19:39:55.265  1083  1138 E ActivityManager:   0.7% 118/kswapd0: 0% user + 0.7% kernel
06-20 19:39:55.265  1083  1138 E ActivityManager:   0.7% 2386/mdss_fb0: 0% user + 0.7% kernel
06-20 19:39:55.265  1083  1138 E ActivityManager:   0.1% 649/mediadrmserver: 0% user + 0% kernel / faults: 2480 minor
06-20 19:39:55.265  1083  1138 E ActivityManager:   0.6% 506/audioserver: 0.2% user + 0.3% kernel / faults: 171 minor
06-20 19:39:55.265  1083  1138 E ActivityManager:   0.7% 30864/kworker/u8:14: 0% user + 0.7% kernel
06-20 19:39:55.265  1083  1138 E ActivityManager:   0.5% 1503/com.google.android.inputmethod.latin: 0.4% user + 0.1% kernel / faults: 5543 minor 31 major
06-20 19:39:55.265  1083  1138 E ActivityManager:   0.6% 7/rcu_preempt: 0% user + 0.6% kernel
06-20 19:39:55.265  1083  1138 E ActivityManager:   0% 1343/com.google.android.gms.unstable: 0% user + 0% kernel / faults: 5528 minor
06-20 19:39:55.265  1083  1138 E ActivityManager:   0.5% 1550/com.android.systemui: 0.4% user + 0.1% kernel / faults: 1407 minor 4 major
06-20 19:39:55.265  1083  1138 E ActivityManager:   0.6% 28738/com.google.android.talk: 0.4% user + 0.2% kernel / faults: 1179 minor 13 major
06-20 19:39:55.265  1083  1138 E ActivityManager:   0.6% 2338/kschedfreq:2: 0% user + 0.6% kernel
06-20 19:39:55.265  1083  1138 E ActivityManager:   0.3% 269/irq/480-synapti: 0% user + 0.3% kernel
06-20 19:39:55.265  1083  1138 E ActivityManager:   0.1% 14794/kworker/u8:4: 0% user + 0.1% kernel
06-20 19:39:55.265  1083  1138 E ActivityManager:   0.5% 3/ksoftirqd/0: 0% user + 0.5% kernel
06-20 19:39:55.265  1083  1138 E ActivityManager:   0.3% 2552/com.google.android.apps.nexuslauncher: 0.2% user + 0.1% kernel / faults: 3662 minor 28 major
06-20 19:39:55.265  1083  1138 E ActivityManager:   0.4% 30861/kworker/u8:9: 0% user + 0.4% kernel
06-20 19:39:55.265  1083  1138 E ActivityManager:   0.4% 28785/kworker/u8:16: 0% user + 0.4% kernel
0

Comment 12 by wnwen@chromium.org, Jun 22 2017

Haven't worked with variations before, sorry Alex. Perhaps test team has some insights?

Comment 13 by wfh@chromium.org, Jun 25 2017

I have a repro for this with latest canary

Just load a long Reddit thread e.g.

https://pay.reddit.com/r/politics/comments/6iu431/megathread_senate_aca_repeal_draft_unveiled/

Then rotate phone and rotate back and the page completely hangs
Components: -Blink>JavaScript
dropping JS label as it's not clear that this is a JS hang.

wfh@, did your chrome upload a crash (about:crashes)?
Unable to reproduce on Pixel/NHG47N and Marlin/NHG47N. Tried with both the steps mentioned in comment #0 and comment #13

Comment 16 by wfh@chromium.org, Jun 28 2017

Summary: Page hangs consistently upon device rotation (was: Page hangs consistently)
#13 is still happening on my pixel XL for canary (first screenshot) I am doing repro steps

1. load https://pay.reddit.com/r/politics/comments/6iu431/megathread_senate_aca_repeal_draft_unveiled/
2. rotate device
3. rotate device back again.
4. Chrome hangs and displays ANR as per screenshots.

Chrome version: 61.0.3142.0
OS: Android 7.1.2; Pixel XL Build/NJH47D

variations are:

6a89113b-8842e68f
16e0dd70-3f4a17df
e81a9d4f-ca7d8d80
da89714-9b69700a
6c18ba9d-3d98b302
c68ab9a3-6edc92c7
b130ecb8-2e32ee7e
6025934e-3f4a17df
d175604-65bced95
27af3425-49d6ce1
236d5d9e-347fc86a
bd007046-f23d1dea
47e5d3db-3d47f4f4
e036a196-65bced95
77207729-e0e232cc
f0a371b8-65bced95
776de70c-e0278d3d
5ca89f9-f23d1dea
6c7c7e88-f23d1dea
57f575bb-f23d1dea
68812885-f23d1dea
3f140034-17bbd7d0
2ce29c0a-3f4a17df
287f29ba-365ad45c
28bf4731-3f4a17df
176d07dc-65bced95
9773d3bd-1410f10
93731dca-803f8fc4
81328e71-f23d1dea
99144bc3-4da47e09
6e434f55-3f4a17df
9e5c75f1-fff58f2c
b2972962-ca7d8d80
f79cb77b-3f4a17df
27219e67-b2047178
23a898eb-3f2db5fb
9e46b3e5-4a60b24c
e856c60b-f267a6f9
4ea303a6-53a3c5c2
f66ea88e-4eb6d224
93fa4c19-65bced95
d2247fcb-ca7d8d80
2697ea25-ca7d8d80
f56e0452-f23d1dea
65a86f01-ca7d8d80
b2f0086-b4530445
ef25c1eb-f23d1dea
4f864ce1-3d47f4f4
db5efd10-88e62167
1354da85-23b43aed
494d8760-3d47f4f4
3ac60855-3ec2a267
4442aae2-e1cc0f14
ed1d377-e1cc0f14
75f0f0a0-d7f6b13c
e7e71889-4ad60575
f5fff3a2-f23d1dea
644b8345-726d8ace
9c7f6723-65bced95
828a5926-c6c0a780
6ba22d84-3f4a17df
64fbb017-cf4f6ead

I can repro this on another Android device (61.0.3142.0; Android 7.1.1; Pixel Build/NOF26V) (second screenshot) so I'm not sure why you can't repro.


first_device.png
156 KB View Download

Comment 17 by wfh@chromium.org, Jun 28 2017

sorry attached same screenshot twice, here is the capture from the second device.
second_device.png
175 KB View Download
I'm this week's stability sheriff.

I can't reproduce the issue using my pixel (7.1.2) and nexus 6p.

The relevant code is here - it is poll waiting for something but it does not clearly show what it's waiting for.

"main" prio=5 tid=1 Native
  | group="main" sCount=1 dsCount=0 obj=0x74df6f48 self=0x7c3b695a00
  | sysTid=1083 nice=-2 cgrp=default sched=0/0 handle=0x7c3f675a98
  | state=S schedstat=( 81320557418 84227442035 216294 ) utm=5887 stm=2243 core=1 HZ=100
  | stack=0x7feded4000-0x7feded6000 stackSize=8MB
  | held mutexes=
  kernel: (couldn't read /proc/self/task/1083/stack)
  native: #00 pc 000000000006a32c  /system/lib64/libc.so (__epoll_pwait+8)
  native: #01 pc 000000000001e09c  /system/lib64/libc.so (epoll_pwait+64)
  native: #02 pc 0000000000017f98  /system/lib64/libutils.so (_ZN7android6Looper9pollInnerEi+156)
  native: #03 pc 0000000000017e4c  /system/lib64/libutils.so (_ZN7android6Looper8pollOnceEiPiS1_PPv+60)
  native: #04 pc 00000000000f0c98  /system/lib64/libandroid_runtime.so (_ZN7android18NativeMessageQueue8pollOnceEP7_JNIEnvP8_jobjecti+48)
  native: #05 pc 00000000008a14f0  /system/framework/arm64/boot-framework.oat (Java_android_os_MessageQueue_nativePollOnce__JI+140)
  at android.os.MessageQueue.nativePollOnce(Native method)
  at android.os.MessageQueue.next(MessageQueue.java:323)
  at android.os.Looper.loop(Looper.java:136)
  at com.android.server.SystemServer.run(SystemServer.java:355)
  at com.android.server.SystemServer.main(SystemServer.java:222)
  at java.lang.reflect.Method.invoke!(Native method)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)

There isn't much information here, so I think we need to find a way to reproduce the issues in a consistent way.
wfh@, find me when you're back in the office so we can discuss this.

Comment 20 by ssid@chromium.org, Jul 31 2017

Labels: -Stability-Sheriff-Android Needs-Feedback
removing from sheriff queue since it's not reproducible. Please add back if the issue still exists.

Comment 21 by wfh@chromium.org, Jul 31 2017

Chrome Canary 62.0.3168.3

page in #0 still hangs consistently. See screenshot 1.
page in #13 still hangs on a rotate. See screenshot 2.

I'm happy to repro in person...
screenshot1.png
109 KB View Download
screenshot2.png
121 KB View Download

Comment 22 by wfh@chromium.org, Jul 31 2017

it seems I was running an old version of Canary in #21 - I am now running 62.0.3172.0 and I can repro both issues exactly the same (not re-posting the same screenshots)
Cc: candr...@chromium.org
candrada@, can you please sync up with wfh@ in MTV for a demo and perhaps a bisect?
worked with wfh@ to try reproing the bug. Thanks to wfh@, he even tried to replicate the same things as his devices on the test device to see if the issue repros there. Unfortunately it still wasn't reproducible.

Note, on his devices where the bug repros, it did repro on a 'clean install' of Chrome Dev and not even signed in to Chrome with his account. 
Cc: aelias@chromium.org
Owner: tedc...@chromium.org
Status: Assigned (was: Untriaged)
tedchoc@, aelias@ picking on you randomly here, sorry - I legit have no idea who'd be better to debug.  If we have something that's 100% reproducible for wfh@ on his device can we locally build an instrumented APK to try to figure out WTF is going on here?  Or suggest someone who could help with this?  M61 is rapidly approaching and I don't like having a 100% repro ANR in our queue.

Comment 26 by wfh@chromium.org, Aug 24 2017

To update on this bug, I can still reliably repro on

Canary - 62.0.3194.0
Dev - 62.0.3193.3
Beta - 61.0.3163.51

I cannot repro on Stable - 60.0.3112.107

I can repro on both my devices:

1. Android 7.1.2; Pixel XL Build/NJH47D
2. Android 7.1.1; Pixel Build/NOF26V

It repros for a fresh install and does not matter if sync is turned on or off.

At amineer's suggestion I tried disabling Chrome Home and that did not make any difference.


I sat with wfh@ and we bisected on their phone using per-CL builds.  Here's what we've got:

C 1278.455s Main  You are looking for a change made after 478953(GOOD), but before 478954(BAD).

Culprit: https://chromium.googlesource.com/chromium/src/+/c6c1d15d250e1c51893cf2abc8a242a8bcf801ea

We looked at wfh@'s accessibility services that were enabled, and it was only Tasker (https://play.google.com/store/apps/details?id=net.dinglisch.android.taskerm&hl=en).  Disabling Tasker fixed the issue.

Comment 29 by wfh@chromium.org, Aug 25 2017

Cc: boliu@chromium.org dmazz...@chromium.org jinsuk...@chromium.org
Labels: Hotlist-Accessibility

Comment 30 by boliu@chromium.org, Aug 25 2017

From the bug report, this is the stack of the hang. JVM is holding a condition variable lock, wat?!

"main" prio=5 tid=1 Native
  | group="main" sCount=1 dsCount=0 obj=0x74816000 self=0xe7505400
  | sysTid=4346 nice=-10 cgrp=default sched=0/0 handle=0xea17e534
  | state=S schedstat=( 35996128027 15195134397 61778 ) utm=3150 stm=448 core=3 HZ=100
  | stack=0xff05b000-0xff05d000 stackSize=8MB
  | held mutexes=
  kernel: (couldn't read /proc/self/task/4346/stack)
  native: #00 pc 00017418  /system/lib/libc.so (syscall+28)
  native: #01 pc 000b6ec1  /system/lib/libart.so (_ZN3art17ConditionVariable16WaitHoldingLocksEPNS_6ThreadE+92)
  native: #02 pc 003f4e8b  /system/lib/libart.so (_ZN3artL12GoToRunnableEPNS_6ThreadE+230)
  native: #03 pc 003f4d7d  /system/lib/libart.so (_ZN3art12JniMethodEndEjPNS_6ThreadE+8)
  native: #04 pc 0006c809  /data/app/com.chrome.canary-1/oat/arm/base.odex (Java_org_chromium_content_browser_accessibility_WebContentsAccessibility_nativePopulateAccessibilityEvent__JLandroid_view_accessibility_AccessibilityEvent_2II+148)
  at org.chromium.content.browser.accessibility.WebContentsAccessibility.nativePopulateAccessibilityEvent(Native method)
  at org.chromium.content.browser.accessibility.WebContentsAccessibility.buildAccessibilityEvent(WebContentsAccessibility.java:273)
  at org.chromium.content.browser.accessibility.WebContentsAccessibility.sendAccessibilityEvent(WebContentsAccessibility.java:263)
  at org.chromium.content.browser.accessibility.WebContentsAccessibility.handleContentChanged(WebContentsAccessibility.java:308)
  at org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native method)
  at org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:7)
  at android.os.Handler.dispatchMessage(Handler.java:102)
  at android.os.Looper.loop(Looper.java:154)
  at android.app.ActivityThread.main(ActivityThread.java:6121)
  at java.lang.reflect.Method.invoke!(Native method)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)

Comment 31 by wfh@chromium.org, Aug 25 2017

It's possible Tasker is doing something strange here, but it has 1m+ users, so I expect I won't be the only one who hits this issue when M-61 goes to Stable.
I can't reproduce yet.

Chrome 62.0.3193.3
Nexus 5X, OMR1 MASTER 4186978

I tried with either Tasker or TalkBack running.

I loaded the long Reddit comment thread. With TalkBack running, it definitely takes a couple of seconds to recover after rotating, but no ANR and things run smoothly after a brief pause. That's basically what I'd expect to happen for such a large page.

With Tasker running I don't detect any difference, and if I visit chrome://accessibility I don't see accessibility enabled - which is what I'd hope for.

Is it possible this was fixed on trunk? Let me install a 61 build next, but other ideas would be welcome.

Comment 33 by wfh@chromium.org, Aug 25 2017

see #26 - I can still repro on latest Canary. I just re-verified it still happens on 62.0.3196.0.

the best page for a reliable repro is in comment #13 - that is what we used for the bisect: rotate and then rotate back.

When I was testing on a new device for comment #24, I also installed tasker and even copied my tasker configurations onto the test device, and I was unable to repro, so I'm not sure what specifically it is about tasker or the tasker configuration that causes the repro.

Re: "That's basically what I'd expect to happen for such a large page." - it didn't happen before the CL in #27 so something definitely changed...

Comment 34 by boliu@chromium.org, Aug 25 2017

So there is no chrome native stack in that stack trace. This is from the dex file, meaning it's coming from java.
native: #04 pc 0006c809  /data/app/com.chrome.canary-1/oat/arm/base.odex

So this is hanging in JniMethodEnd in the jvm, and by that method name, it's hanging when returning from a java->native call, and have already exited the chromium part of the stack.

I honestly don't know how that can happen..

Comment 35 by boliu@chromium.org, Aug 25 2017

Or alternative theory... it's not actually a deadlock and it's just middle of doing a lot of work for accessibility?

wfh: can you reproduce the anr a few more times, and each time after the "app not responding" dialog comes up, adb pull /data/anr/traces.txt and attach the traces.txt files here?
Cc: -dmazz...@chromium.org
Owner: dmazz...@chromium.org
Over to dmazzoni@ since he's been looking today.  jinsukkim@, PTAL ASAP as well.
@askatte provided a test device and @wfh configured it to repro the bug. Working on it now.


Project Member

Comment 39 by bugdroid1@chromium.org, Aug 26 2017

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

commit 400e90126213561c94c377ee786ab34d5b4ffe40
Author: Dominic Mazzoni <dmazzoni@chromium.org>
Date: Sat Aug 26 01:04:52 2017

Fix Android optimization in SendLocationChangeEvents

BrowserAccessibilityManagerAndroid::SendLocationChangeEvents contains an
optimization (387488,  crbug.com/588889 ) that avoids sending too many events
when a lot of objects on the screen change their bounding box at the same
time - for example, when rotating the screen.

This optimization was accidentally broken by r478954, which accidentally
dropped the "return" at the end of the conditional, causing it to run the
efficient version and then the slow version.

Bug:  734353 
Change-Id: I3f8abe9b6d4188257c5cc316f71f5ef07f345ecd
Reviewed-on: https://chromium-review.googlesource.com/636169
Reviewed-by: Paul Miller <paulmiller@chromium.org>
Reviewed-by: David Tseng <dtseng@chromium.org>
Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#497622}
[modify] https://crrev.com/400e90126213561c94c377ee786ab34d5b4ffe40/content/browser/accessibility/browser_accessibility_manager_android.cc

Labels: Merge-Request-61
Status: Started (was: Assigned)
Project Member

Comment 41 by sheriffbot@chromium.org, Aug 26 2017

Labels: -Merge-Request-61 Merge-Review-61 Hotlist-Merge-Review
This bug requires manual review: We are only 9 days from stable.
Please contact the milestone owner if you have questions.
Owners: amineer@(Android), cmasso@(iOS), ketakid@(ChromeOS), govind@(Desktop)

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Sorry for the mistake in r478954 - glad that it is being taken care of.
Labels: -Merge-Review-61 Merge-Approved-61
Merge approved for M61 branch 3163.
I'll merge now
Project Member

Comment 45 by bugdroid1@chromium.org, Aug 29 2017

Labels: -merge-approved-61 merge-merged-3163
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/92a2ea4d7e1da500eb636430b3dcb3e270a11ed0

commit 92a2ea4d7e1da500eb636430b3dcb3e270a11ed0
Author: Dominic Mazzoni <dmazzoni@chromium.org>
Date: Tue Aug 29 17:10:25 2017

Merge to M61: Fix Android optimization in SendLocationChangeEvents

BrowserAccessibilityManagerAndroid::SendLocationChangeEvents contains an
optimization (387488,  crbug.com/588889 ) that avoids sending too many events
when a lot of objects on the screen change their bounding box at the same
time - for example, when rotating the screen.

This optimization was accidentally broken by r478954, which accidentally
dropped the "return" at the end of the conditional, causing it to run the
efficient version and then the slow version.

(cherry picked from commit 400e90126213561c94c377ee786ab34d5b4ffe40)

Bug:  734353 
Change-Id: I3f8abe9b6d4188257c5cc316f71f5ef07f345ecd
Reviewed-on: https://chromium-review.googlesource.com/636169
Reviewed-by: Paul Miller <paulmiller@chromium.org>
Reviewed-by: David Tseng <dtseng@chromium.org>
Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#497622}
Reviewed-on: https://chromium-review.googlesource.com/641662
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Cr-Commit-Position: refs/branch-heads/3163@{#972}
Cr-Branched-From: ff259bab28b35d242e10186cd63af7ed404fae0d-refs/heads/master@{#488528}
[modify] https://crrev.com/92a2ea4d7e1da500eb636430b3dcb3e270a11ed0/content/browser/accessibility/browser_accessibility_manager_android.cc

Status: Fixed (was: Started)
Assuming this is fixed given we're good on trunk & branch, marking as such.  Reopen if more work is required.  Thanks so much for reporting, wfh@ and fixing, dmazzoni@!

Comment 47 by wfh@chromium.org, Aug 29 2017

yes, thank you so much for the fix! I can no longer reproduce on Chrome Canary 62.0.3199.3 (fix landed in 3198).

Sign in to add a comment