Closed Bug 981676 Opened 6 years ago Closed 6 years ago

ANR: Progress bar bulb causes frequent hang in android.view.GLES20Canvas.nFinish on Android 4.3

Categories

(Firefox for Android :: Theme and Visual Design, defect)

All
Android
defect
Not set

Tracking

()

RESOLVED FIXED
Firefox 30
Tracking Status
firefox30 --- fixed
fennec 30+ ---

People

(Reporter: jchen, Unassigned)

References

Details

(Keywords: regression, Whiteboard: [ANR])

Attachments

(2 files, 1 obsolete file)

This new hang appeared starting with the 2014-03-01 nightly and seems to be specific to Android 4.3 Jelly Bean (API level 18). It seems to get a lot worse with the Xposed framework installed.

Without the Xposed framework, it was the #6 ANR for the past week. The corresponding stack is,

> android.view.GLES20Canvas.nFinish
> android.view.GLES20Canvas.onPostDraw (line 257)
> android.view.HardwareRenderer$Gl20Renderer.onPostDraw (line 1806)
> android.view.HardwareRenderer$GlRenderer.draw (line 1389)
> android.view.ViewRootImpl.draw (line 2672)
> android.view.ViewRootImpl.performDraw (line 2538)
> android.view.ViewRootImpl.performTraversals (line 2154)
> android.view.ViewRootImpl.doTraversal (line 1249)
> android.view.ViewRootImpl$TraversalRunnable.run (line 6364)
> android.view.Choreographer$CallbackRecord.run (line 791)
> android.view.Choreographer.doCallbacks (line 591)
> android.view.Choreographer.doFrame (line 561)
> android.view.Choreographer$FrameDisplayEventReceiver.run (line 777)
> android.os.Handler.handleCallback (line 730)
> android.os.Handler.dispatchMessage (line 92)
> android.os.Looper.loop (line 137)
> android.app.ActivityThread.main (line 5455)
> java.lang.reflect.Method.invokeNative
> java.lang.reflect.Method.invoke (line 525)
> com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (line 1187)
> com.android.internal.os.ZygoteInit.main (line 1003)
> dalvik.system.NativeStart.main

With Xposed installed, it was the #1 ANR for the past week. The corresponding stack is (note the "de.robv.android.xposed.XposedBridge.main" frame),

> android.view.GLES20Canvas.nFinish
> android.view.GLES20Canvas.onPostDraw (line 257)
> android.view.HardwareRenderer$Gl20Renderer.onPostDraw (line 1806)
> android.view.HardwareRenderer$GlRenderer.draw (line 1389)
> android.view.ViewRootImpl.draw (line 2670)
> android.view.ViewRootImpl.performDraw (line 2536)
> android.view.ViewRootImpl.performTraversals (line 2152)
> android.view.ViewRootImpl.doTraversal (line 1247)
> android.view.ViewRootImpl$TraversalRunnable.run (line 6355)
> android.view.Choreographer$CallbackRecord.run (line 791)
> android.view.Choreographer.doCallbacks (line 591)
> android.view.Choreographer.doFrame (line 561)
> android.view.Choreographer$FrameDisplayEventReceiver.run (line 777)
> android.os.Handler.handleCallback (line 730)
> android.os.Handler.dispatchMessage (line 92)
> android.os.Looper.loop (line 137)
> android.app.ActivityThread.main (line 5419)
> java.lang.reflect.Method.invokeNative
> java.lang.reflect.Method.invoke (line 525)
> com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (line 1187)
> com.android.internal.os.ZygoteInit.main (line 1003)
> de.robv.android.xposed.XposedBridge.main (line 126)
> dalvik.system.NativeStart.main
Whiteboard: [ANR]
This is Android's GL stack for drawing the UI Views, so not sure there is much we'll be able to do here.
Actually, looks like it's caused by bug 962103. The hang appeared in the 2014-03-01 nightly, which is when that bug first landed. Then that bug was backed out for the 2014-03-04 nightly and relanded in the 2014-03-05 nightly. Looking at the hang reports, there are no hangs from 3/4 but several hangs from 3/3 and 3/5, making it likely that bug 962103 caused the regression.
Blocks: 962103
Component: Graphics, Panning and Zooming → Theme and Visual Design
Keywords: regression
Summary: ANR: Hang in android.view.GLES20Canvas.nFinish → ANR: Progress bar bulb causes frequent hang in android.view.GLES20Canvas.nFinish on Android 4.3
tracking-fennec: --- → ?
I found this is caused by Android bug 10347089, which was fixed by the following two commits in Android 4.3.1 and 4.4. Unfortunately many devices are stuck at 4.3 (e.g. Galaxy Nexus), so this is still a problem.

https://android.googlesource.com/platform/frameworks/base/+/a2a70e9%5E%5E!/
https://android.googlesource.com/platform/frameworks/base/+/5d92320%5E!/
Attached patch backout_bulb.patch (obsolete) — Splinter Review
Attachment #8390514 - Flags: review?(mark.finkle)
Comment on attachment 8390560 [details] [diff] [review]
Backout progress bar refinements from bugs 980438/962103 (r=mfinkle)

This patch reverts all the progress bar refinements.
Attachment #8390560 - Flags: review?(mark.finkle)
Attachment #8390560 - Flags: review?(mark.finkle) → review+
Attachment #8390514 - Attachment is obsolete: true
Attachment #8390514 - Flags: review?(mark.finkle)
tracking-fennec: ? → 30+
Something broke with the landed backout as it still has the wrong image resources.
Attachment #8390803 - Flags: review?(mark.finkle)
Attachment #8390803 - Flags: review?(mark.finkle) → review+
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 30
You need to log in before you can comment on or make changes to this bug.