New issue
Advanced search Search tips

Issue 827203 link

Starred by 2 users

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 3
Type: Bug


Previous locations:
monorail:3644


Sign in to add a comment

ANR in keyboard as Chrome is not responding

Reported by ajay.san...@gmail.com, Mar 29 2018

Issue description

What steps will reproduce the problem?
(1) Random input in browser input field (Once issue)

What is the expected output?
There should not be ANR

What do you see instead?
ANR in input method

Please provide any additional information below.

The call getTextBeforeCursor() is not returning immediatly causinf this ANR.

Below is the call-stack,

"InputConnectionHandlerThread" prio=5 tid=24 Waiting
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x13701b68 self=0xc83eb800
  | sysTid=17050 nice=5 cgrp=default sched=0/0 handle=0xc7b85970
  | state=S schedstat=( 1694487845 1085444849 8264 ) utm=121 stm=48 core=0 HZ=100
  | stack=0xc7a83000-0xc7a85000 stackSize=1038KB
  | held mutexes=
  at java.lang.Object.wait(Native method)
  - waiting on <0x0f40dd1a> (a java.lang.Object)
  at java.lang.Thread.parkFor$(Thread.java:2135)
  - locked <0x0f40dd1a> (a java.lang.Object)
  at sun.misc.Unsafe.park(Unsafe.java:358)
  at java.util.concurrent.locks.LockSupport.park(LockSupport.java:190)
  at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2059)
  at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
  at org.chromium.content.browser.input.ThreadedInputConnection.blockAndGetStateUpdate(ThreadedInputConnection.java:68)
  at org.chromium.content.browser.input.ThreadedInputConnection.requestAndWaitForTextInputState(ThreadedInputConnection.java:57)
  at org.chromium.content.browser.input.ThreadedInputConnection.getTextBeforeCursor(ThreadedInputConnection.java:159)
  at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:266)
  at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:85)
  at android.os.Handler.dispatchMessage(Handler.java:105)
  at android.os.Looper.loop(Looper.java:164)
  at android.os.HandlerThread.run(HandlerThread.java:65)

Also attached the crash dump
 
ANR_29fccabe012550bd_20180310_215941.png
676 KB View Download
ANR_29fccabe012550bd_20180310_215941.zip
27.0 MB Download
This is Chrome issue. The root cause is Chrome didn't respond for SKBD InputConnection request.

03-06 19:01:40.351 10114 17440 17440 V InputMethodManager: Starting input: tba=android.view.inputmethod.EditorInfo@5a352c3 nm : com.android.chrome ic=org.chromium.chrome.browser.omnibox.SpannableAutocompleteEditTextModel$AutocompleteInputConnection@f93d740
03-06 19:01:40.353 10161  5313  5313 I SKBD    : SamsungKeypad [IMI] onStartInput - caller pid : 17440(com.android.chrome), caller uid : 10114

03-06 19:01:46.062 10161  5313  5313 W InputConnectionWrapper.ICC: Timed out waiting on IInputContextCallback
...
03-06 19:01:58.811 10161  5313  5313 W InputConnectionWrapper.ICC: Timed out waiting on IInputContextCallback

03-06 19:02:00.821  1000  4787  4837 E ActivityManager: ANR in com.sec.android.inputmethod
03-06 19:02:00.821  1000  4787  4837 E ActivityManager: PID: 5313
03-06 19:02:00.821  1000  4787  4837 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: 4.  Wait queue head age: 5109.3ms.)
03-06 19:02:00.821  1000  4787  4837 E ActivityManager: Load: 15.17 / 14.5 / 14.11
03-06 19:02:00.821  1000  4787  4837 E ActivityManager: CPU usage from 0ms to 6416ms later (2018-03-06 19:01:54.372 to 2018-03-06 19:02:00.788):
03-06 19:02:00.821  1000  4787  4837 E ActivityManager:   101% 17440/com.android.chrome: 101% user + 0% kernel / faults: 1002 minor 87 major


------ VM TRACES AT LAST ANR (/data/anr/traces.txt: 2018-03-06 19:02:00) ------
----- pid 5313 at 2018-03-06 19:01:54 -----
Cmd line: com.sec.android.inputmethod
"main" prio=5 tid=1 TimedWaiting
  | group="main" sCount=1 dsCount=0 flags=1 obj=0x73e02fc0 self=0x7a996c4a00
  | sysTid=5313 nice=0 cgrp=default sched=0/0 handle=0x7a9f0f19c8
  | state=S schedstat=( 351092399918 290940838138 1252305 ) utm=24890 stm=10218 core=5 HZ=100
  | stack=0x7ff812a000-0x7ff812c000 stackSize=8MB
  | held mutexes=
  at java.lang.Object.wait(Object.java)
  - waiting on <0x08a59c5d> (a com.android.internal.view.InputConnectionWrapper$InputContextCallback)
  at java.lang.Object.wait(Object.java:422)
  at com.android.internal.view.InputConnectionWrapper$InputContextCallback.waitForResultLocked(InputConnectionWrapper.java:213)
  at com.android.internal.view.InputConnectionWrapper.getTextBeforeCursor(InputConnectionWrapper.java:262)
  - locked <0x08a59c5d> (a com.android.internal.view.InputConnectionWrapper$InputContextCallback)
  at com.sec.android.inputmethod.base.common.SamsungIMEInputConnection.getTextBeforeCursor(SamsungIMEInputConnection.java:147)
  at com.sec.android.inputmethod.base.input.xt9.Xt9QwertyLatinInputModule.processBackSpaceKey(Xt9QwertyLatinInputModule.java:1023)
  at com.sec.android.inputmethod.base.input.xt9.Xt9QwertyLatinInputModule.processSymbolicKey(Xt9QwertyLatinInputModule.java:748)
  at com.sec.android.inputmethod.base.input.xt9.Xt9QwertyLatinInputModule.onCharacterKey(Xt9QwertyLatinInputModule.java:193)
  at com.sec.android.inputmethod.base.input.InputControllerImpl.onKeyHandleNormalKey(InputControllerImpl.java:3978)
  at com.sec.android.inputmethod.base.input.InputControllerImpl.onKey(InputControllerImpl.java:3689)
  at com.sec.android.inputmethod.base.common.InputManagerImpl.onKey(InputManagerImpl.java:1847)
  at com.sec.android.inputmethod.base.view.event.KeyboardActionListener.onKey(KeyboardActionListener.java:19)
  at com.sec.android.inputmethod.base.view.AbstractKeyboardView.detectAndSendKey(AbstractKeyboardView.java:5588)
  at com.sec.android.inputmethod.base.view.tracker.PointerTracker.repeatKey(PointerTracker.java:1601)
  at com.sec.android.inputmethod.base.view.tracker.PointerTracker.onDownEvent(PointerTracker.java:768) 
dumpstate_app_anr.zip
3.5 MB Download

Comment 2 by carapew@google.com, Mar 29 2018

Project: chromium
Moved issue monorail:3644 to now be issue chromium:827203.
Components: UI>Browser>Mobile
Labels: OS-Android
Status: Untriaged (was: New)
Components: -UI>Browser>Mobile UI>Input>Text>IME
Adding the component since this is more IME related.
Cc: changwan@chromium.org
Components: UI>Browser>Mobile
Adding changwan@ since he is the owner of the related file ThreadedInputConnection.java.

changwan@ - Do you know the best person/team to own this bug?
Cc: ctzsm@chromium.org
Labels: -Type-Defect Pri-3 Type-Bug
Status: Available (was: Untriaged)
There is nothing much we can do about ANRs until we have good repro steps.

Labels: Needs-Feedback
Adding needs-feedback for more repro steps.  Is it reliable?  What device/keyboard APK?

Sign in to add a comment