Closed
Bug 813602
Opened 12 years ago
Closed 12 years ago
Unable to open menu while gecko is busy; possibly results in ANR
Categories
(Firefox for Android Graveyard :: General, defect, P2)
Tracking
(firefox20 verified)
VERIFIED
FIXED
Firefox 20
Tracking | Status | |
---|---|---|
firefox20 | --- | verified |
People
(Reporter: kats, Assigned: jchen)
References
Details
Attachments
(1 file)
3.75 KB,
patch
|
cpeterson
:
review+
|
Details | Diff | Splinter Review |
On recent builds if I try to open the Fennec menu while gecko is busy, the fennec UI blocks on gecko and is unresponsive. This can result in the ANR dialog from Android in some cases. The ANR traces show that the main thread is blocked here: "main" prio=5 tid=1 WAIT | group="main" sCount=1 dsCount=0 obj=0x419489a0 self=0x4013e010 | sysTid=11687 nice=0 sched=0/0 cgrp=apps handle=1075155932 | state=S schedstat=( 0 0 0 ) utm=621 stm=186 core=0 at java.lang.Object.wait(Native Method) - waiting on <0x41948da0> (a java.lang.VMThread) held by tid=1 (main) at java.lang.Thread.parkFor(Thread.java:1231) at sun.misc.Unsafe.park(Unsafe.java:323) at java.util.concurrent.locks.LockSupport.park(LockSupport.java:159) at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:810) at java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared(AbstractQueuedSynchronizer.java:940) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(AbstractQueuedSynchronizer.java:1258) at java.util.concurrent.Semaphore.acquireUninterruptibly(Semaphore.java:308) at org.mozilla.gecko.GeckoEditable$ActionQueue.syncWithGecko(GeckoEditable.java:228) at org.mozilla.gecko.GeckoEditable.invoke(GeckoEditable.java:621) at $Proxy0.length(Native Method) at android.view.inputmethod.BaseInputConnection.removeComposingSpans(BaseInputConnection.java:77) at android.view.inputmethod.BaseInputConnection.finishComposingText(BaseInputConnection.java:270) at android.view.inputmethod.InputMethodManager.checkFocusNoStartInput(InputMethodManager.java:1300) at android.view.inputmethod.InputMethodManager.onWindowFocus(InputMethodManager.java:1344) at android.view.ViewRootImpl$ViewRootHandler.handleMessage(ViewRootImpl.java:2934) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5039) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) at dalvik.system.NativeStart.main(Native Method)
Reporter | ||
Comment 1•12 years ago
|
||
(Note that this is reproducible even on pages without any input boxes)
Assignee | ||
Comment 2•12 years ago
|
||
Thanks kats. I think I know how to fix it. Is there a more definite STR? Maybe a specific website?
Assignee: nobody → nchen
Status: NEW → ASSIGNED
Priority: -- → P2
Reporter | ||
Comment 3•12 years ago
|
||
The way I initially encountered it was: 1. Go to planet.mozilla.org 2. Turn on the "pinch to reflow text" option in the settings 3. Pinch to reflow 4. Immediately open the menu The pinch to reflow takes a while and so opening the menu blocks. This was on a slow device (Motorola milestone) so it hit the ANR. Since then I was also able to reproduce this on my oom test page at http://people.mozilla.com/~kgupta/tmp/oom.html - this page allocates 100,000 divs every 5 seconds, so if you open and close the menu repeatedly while on that page within a few seconds you should hit one of the allocation periods and the menu will block.
Assignee | ||
Comment 4•12 years ago
|
||
This patch skips IME synching when there is no focus. This does not impact any functionality because all GeckoEditable operations are effectively nops when there is no focus. Unfortunately, when there is focus, synching is required and to alleviate this bug, this patch also prevents synching during removeSpan() calls which have no effect. removeSpan() seems to be the biggest culprit that's causing this bug.
Attachment #683831 -
Flags: review?(cpeterson)
Assignee | ||
Comment 5•12 years ago
|
||
kats: can you try this build on the Milestone? http://people.mozilla.org/~nchen/bug813602-fennec-20.0a1.apk The patch should fix the bug, but I think the Milestone is the best device to verify that.
Comment 6•12 years ago
|
||
Comment on attachment 683831 [details] [diff] [review] Don't perform IME sync when there is no focus (v1) Review of attachment 683831 [details] [diff] [review]: ----------------------------------------------------------------- LGTM
Attachment #683831 -
Flags: review?(cpeterson) → review+
Reporter | ||
Comment 7•12 years ago
|
||
(In reply to Jim Chen [:jchen :nchen] from comment #5) > kats: can you try this build on the Milestone? > http://people.mozilla.org/~nchen/bug813602-fennec-20.0a1.apk > Yup, seems to work. Thanks for the quick fix!
Assignee | ||
Comment 8•12 years ago
|
||
np! https://hg.mozilla.org/integration/mozilla-inbound/rev/249112c154d0
Comment 9•12 years ago
|
||
https://hg.mozilla.org/mozilla-central/rev/249112c154d0
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Target Milestone: --- → Firefox 20
Comment 10•12 years ago
|
||
I cannot reproduce this issue on the latest Nightly using the STR from comment #3. Closing bug as verified fixed on: Firefox 20.0a1 (2012-11-28) Device: Galaxy Nexus OS: Android 4.1.1
Status: RESOLVED → VERIFIED
status-firefox20:
--- → verified
Updated•3 years ago
|
Product: Firefox for Android → Firefox for Android Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•