Closed Bug 981684 Opened 6 years ago Closed 6 years ago

ANR: Hang in org.mozilla.gecko.favicons.cache.FaviconCache.getFaviconForDimensions

Categories

(Firefox for Android :: General, defect)

All
Android
defect
Not set
normal

Tracking

()

RESOLVED WORKSFORME
Tracking Status
fennec + ---

People

(Reporter: jchen, Assigned: ckitching)

References

Details

(Whiteboard: [ANR])

This has been one of the top ANRs going back to at least 29. The main thread stack is,

> java.lang.Object.wait
> java.lang.Thread.parkFor (line 1205)
> sun.misc.Unsafe.park (line 325)
> java.util.concurrent.locks.LockSupport.park (line 157)
> java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt (line 813)
> java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared (line 943)
> java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared (line 1260)
> java.util.concurrent.Semaphore.acquireUninterruptibly (line 306)
> org.mozilla.gecko.favicons.cache.FaviconCache.upgradeReadToWrite (line 167)
> org.mozilla.gecko.favicons.cache.FaviconCache.getFaviconForDimensions (line 413)
> org.mozilla.gecko.favicons.Favicons.getSizedFaviconFromCache (line 182)
> org.mozilla.gecko.favicons.Favicons.getSizedFaviconForPageFromLocal (line 210)
> org.mozilla.gecko.favicons.Favicons.getSizedFaviconForPageFromLocal (line 228)
> org.mozilla.gecko.home.TwoLinePageRow.updateFromCursor (line 235)
> org.mozilla.gecko.home.BrowserSearch$SearchAdapter.bindView (line 854)
> org.mozilla.gecko.home.MultiTypeCursorAdapter.getView (line 62)
> android.widget.AbsListView.obtainView (line 2240)
> android.widget.ListView.makeAndAddView (line 1790)
> android.widget.ListView.fillDown (line 691)
> android.widget.ListView.fillSpecific (line 1349)
> android.widget.ListView.layoutChildren (line 1608)
> android.widget.AbsListView.onLayout (line 2091)
> android.view.View.layout (line 14817)
> android.view.ViewGroup.layout (line 4631)
> android.widget.LinearLayout.setChildFrame (line 1671)
> android.widget.LinearLayout.layoutVertical (line 1525)
> android.widget.LinearLayout.onLayout (line 1434)
> android.view.View.layout (line 14817)
> android.view.ViewGroup.layout (line 4631)
> android.widget.FrameLayout.layoutChildren (line 453)
> android.widget.FrameLayout.onLayout (line 388)
> android.view.View.layout (line 14817)
> android.view.ViewGroup.layout (line 4631)
> android.widget.FrameLayout.layoutChildren (line 453)
> android.widget.FrameLayout.onLayout (line 388)
> android.view.View.layout (line 14817)
> android.view.ViewGroup.layout (line 4631)
> android.widget.RelativeLayout.onLayout (line 1055)
> android.view.View.layout (line 14817)
> android.view.ViewGroup.layout (line 4631)
> android.widget.RelativeLayout.onLayout (line 1055)
> android.view.View.layout (line 14817)
> android.view.ViewGroup.layout (line 4631)
> android.widget.FrameLayout.layoutChildren (line 453)
> android.widget.FrameLayout.onLayout (line 388)
> android.view.View.layout (line 14817)
> android.view.ViewGroup.layout (line 4631)
> android.widget.LinearLayout.setChildFrame (line 1671)
> android.widget.LinearLayout.layoutVertical (line 1525)
> android.widget.LinearLayout.onLayout (line 1434)
> android.view.View.layout (line 14817)
> android.view.ViewGroup.layout (line 4631)
> android.widget.FrameLayout.layoutChildren (line 453)
> android.widget.FrameLayout.onLayout (line 388)
> android.view.View.layout (line 14817)
> android.view.ViewGroup.layout (line 4631)
> android.view.ViewRootImpl.performLayout (line 1987)
> android.view.ViewRootImpl.performTraversals (line 1744)
> android.view.ViewRootImpl.doTraversal (line 1000)
> android.view.ViewRootImpl$TraversalRunnable.run (line 5670)
> android.view.Choreographer$CallbackRecord.run (line 761)
> android.view.Choreographer.doCallbacks (line 574)
> android.view.Choreographer.doFrame (line 544)
> android.view.Choreographer$FrameDisplayEventReceiver.run (line 747)
> android.os.Handler.handleCallback (line 733)
> android.os.Handler.dispatchMessage (line 95)
> android.os.Looper.loop (line 136)
> android.app.ActivityThread.main (line 5017)
> java.lang.reflect.Method.invokeNative
> java.lang.reflect.Method.invoke (line 515)
> com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (line 779)
> com.android.internal.os.ZygoteInit.main (line 595)
> dalvik.system.NativeStart.main

The background thread is also blocked on the same Semaphore, so I suspect it could be a deadlock. The background thread stack is,

> java.lang.Object.wait
> java.lang.Thread.parkFor (line 1205)
> sun.misc.Unsafe.park (line 325)
> java.util.concurrent.locks.LockSupport.park (line 157)
> java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt (line 813)
> java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared (line 943)
> java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared (line 1260)
> java.util.concurrent.Semaphore.acquireUninterruptibly (line 306)
> org.mozilla.gecko.favicons.cache.FaviconCache.upgradeReadToWrite (line 171)
> org.mozilla.gecko.favicons.cache.FaviconCache.getFaviconForDimensions (line 413)
> org.mozilla.gecko.favicons.Favicons.getSizedFaviconFromCache (line 182)
> org.mozilla.gecko.favicons.LoadFaviconTask.pushToCacheAndGetResult (line 432)
> org.mozilla.gecko.favicons.LoadFaviconTask.doInBackground$2d4c763b (line 354)
> org.mozilla.gecko.favicons.LoadFaviconTask.doInBackground$42af7916 (line 42)
> org.mozilla.gecko.util.UiAsyncTask$BackgroundTaskRunnable.run (line 48)
> android.os.Handler.handleCallback (line 733)
> android.os.Handler.dispatchMessage (line 95)
> android.os.Looper.loop (line 136)
> org.mozilla.gecko.util.GeckoBackgroundThread.run (line 32)
tracking-fennec: --- → ?
Perhaps fixed by Bug 969417, which is awaiting an updated patch.
OS: Linux → Android
needinfo on ckitching to see if he agrees, and maybe rev that patch…
Depends on: 969417
Flags: needinfo?(chriskitching)
Seems likely. I'll get the revised patch sorted in a few hours.

Such fail. Trying to implement lock upgrading in MRSW without rollbacks. Wow.
Flags: needinfo?(chriskitching)
Assignee: nobody → chriskitching
tracking-fennec: ? → +
Jim: any ANRs in the past couple of Nightlies?
Flags: needinfo?(nchen)
(In reply to Richard Newman [:rnewman] from comment #4)
> Jim: any ANRs in the past couple of Nightlies?

Last week's data look good. Going to mark this as resolved.
Status: NEW → RESOLVED
Closed: 6 years ago
Flags: needinfo?(nchen)
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.