Closed Bug 1655896 Opened 4 years ago Closed 3 years ago

Intermittent org.mozilla.geckoview.test.TextInputDelegateTest#inputConnection_deleteSurroundingText[#<test>] | java.lang.AssertionError: Can delete empty text

Categories

(GeckoView :: General, defect, P1)

Unspecified
All
defect

Tracking

(firefox87 wontfix, firefox88 wontfix, firefox89 fixed)

RESOLVED FIXED
89 Branch
Tracking Status
firefox87 --- wontfix
firefox88 --- wontfix
firefox89 --- fixed

People

(Reporter: intermittent-bug-filer, Assigned: m_kato)

References

Details

(Keywords: assertion, intermittent-failure, Whiteboard: [stockwell disabled][geckoview:m89])

Attachments

(3 files)

Filed by: dluca [at] mozilla.com
Parsed log: https://treeherder.mozilla.org/logviewer.html#?job_id=311345116&repo=autoland
Full log: https://firefox-ci-tc.services.mozilla.com/api/queue/v1/task/GyB1b5MBRyiDwCDnwCDcdQ/runs/0/artifacts/public/logs/live_backing.log


INFO -  TEST-START | org.mozilla.geckoview.test.TextInputDelegateTest.inputConnection_deleteSurroundingText[#textarea]
[task 2020-07-29T00:21:05.707Z] 00:21:05     INFO -  org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: numtests=750
[task 2020-07-29T00:21:05.707Z] 00:21:05     INFO -  org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: stream=
[task 2020-07-29T00:21:05.707Z] 00:21:05     INFO -  org.mozilla.geckoview.test | Error in inputConnection_deleteSurroundingText[#textarea](org.mozilla.geckoview.test.TextInputDelegateTest):
[task 2020-07-29T00:21:05.708Z] 00:21:05     INFO -  org.mozilla.geckoview.test | java.lang.AssertionError: Can delete empty text
[task 2020-07-29T00:21:05.708Z] 00:21:05     INFO -  org.mozilla.geckoview.test | Expected: "foo"
[task 2020-07-29T00:21:05.708Z] 00:21:05     INFO -  org.mozilla.geckoview.test |      but: was "fooo"
[task 2020-07-29T00:21:05.708Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
[task 2020-07-29T00:21:05.708Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at org.junit.Assert.assertThat(Assert.java:956)
[task 2020-07-29T00:21:05.709Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at org.junit.rules.ErrorCollector$1.call(ErrorCollector.java:65)
[task 2020-07-29T00:21:05.709Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:78)
[task 2020-07-29T00:21:05.709Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at org.junit.rules.ErrorCollector.checkThat(ErrorCollector.java:63)
[task 2020-07-29T00:21:05.709Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.rule.GeckoSessionTestRule.checkThat(GeckoSessionTestRule.java:801)
[task 2020-07-29T00:21:05.710Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.BaseSessionTest.assertThat(BaseSessionTest.kt:85)
[task 2020-07-29T00:21:05.710Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.TextInputDelegateTest.assertText(TextInputDelegateTest.kt:355)
[task 2020-07-29T00:21:05.710Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.TextInputDelegateTest.assertTextAndSelection(TextInputDelegateTest.kt:398)
[task 2020-07-29T00:21:05.711Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.TextInputDelegateTest.assertTextAndSelectionAt(TextInputDelegateTest.kt:406)
[task 2020-07-29T00:21:05.711Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.TextInputDelegateTest.assertTextAndSelectionAt$default(TextInputDelegateTest.kt:405)
[task 2020-07-29T00:21:05.711Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.TextInputDelegateTest.inputConnection_deleteSurroundingText(TextInputDelegateTest.kt:492)
[task 2020-07-29T00:21:05.711Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at java.lang.reflect.Method.invoke(Native Method)
[task 2020-07-29T00:21:05.712Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
[task 2020-07-29T00:21:05.712Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
[task 2020-07-29T00:21:05.712Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
[task 2020-07-29T00:21:05.712Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
[task 2020-07-29T00:21:05.713Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.rule.GeckoSessionTestRule$2.lambda$evaluate$0$GeckoSessionTestRule$2(GeckoSessionTestRule.java:1293)
[task 2020-07-29T00:21:05.713Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.rule.-$$Lambda$GeckoSessionTestRule$2$sIbRNaZJgAu-QrUVWSGD8JbPSWM.run(lambda)
[task 2020-07-29T00:21:05.713Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at android.app.Instrumentation$SyncRunnable.run(Instrumentation.java:1950)
[task 2020-07-29T00:21:05.713Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at android.os.Handler.handleCallback(Handler.java:751)
[task 2020-07-29T00:21:05.714Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at android.os.Handler.dispatchMessage(Handler.java:95)
[task 2020-07-29T00:21:05.714Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at android.os.Looper.loop(Looper.java:154)
[task 2020-07-29T00:21:05.714Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at android.app.ActivityThread.main(ActivityThread.java:6077)
[task 2020-07-29T00:21:05.714Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at java.lang.reflect.Method.invoke(Native Method)
[task 2020-07-29T00:21:05.714Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
[task 2020-07-29T00:21:05.715Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
[task 2020-07-29T00:21:05.715Z] 00:21:05     INFO -  org.mozilla.geckoview.test |
[task 2020-07-29T00:21:05.715Z] 00:21:05     INFO -  org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: id=AndroidJUnitRunner
[task 2020-07-29T00:21:05.715Z] 00:21:05     INFO -  org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: test=inputConnection_deleteSurroundingText[#textarea]
[task 2020-07-29T00:21:05.715Z] 00:21:05     INFO -  org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: class=org.mozilla.geckoview.test.TextInputDelegateTest
[task 2020-07-29T00:21:05.716Z] 00:21:05     INFO -  org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: stack=java.lang.AssertionError: Can delete empty text
[task 2020-07-29T00:21:05.716Z] 00:21:05     INFO -  org.mozilla.geckoview.test | Expected: "foo"
[task 2020-07-29T00:21:05.716Z] 00:21:05     INFO -  org.mozilla.geckoview.test |      but: was "fooo"
[task 2020-07-29T00:21:05.716Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
[task 2020-07-29T00:21:05.717Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at org.junit.Assert.assertThat(Assert.java:956)
[task 2020-07-29T00:21:05.717Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at org.junit.rules.ErrorCollector$1.call(ErrorCollector.java:65)
[task 2020-07-29T00:21:05.717Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:78)
[task 2020-07-29T00:21:05.717Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at org.junit.rules.ErrorCollector.checkThat(ErrorCollector.java:63)
[task 2020-07-29T00:21:05.717Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.rule.GeckoSessionTestRule.checkThat(GeckoSessionTestRule.java:801)
[task 2020-07-29T00:21:05.718Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.BaseSessionTest.assertThat(BaseSessionTest.kt:85)
[task 2020-07-29T00:21:05.718Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.TextInputDelegateTest.assertText(TextInputDelegateTest.kt:355)
[task 2020-07-29T00:21:05.718Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.TextInputDelegateTest.assertTextAndSelection(TextInputDelegateTest.kt:398)
[task 2020-07-29T00:21:05.718Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.TextInputDelegateTest.assertTextAndSelectionAt(TextInputDelegateTest.kt:406)
[task 2020-07-29T00:21:05.719Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.TextInputDelegateTest.assertTextAndSelectionAt$default(TextInputDelegateTest.kt:405)
[task 2020-07-29T00:21:05.719Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.TextInputDelegateTest.inputConnection_deleteSurroundingText(TextInputDelegateTest.kt:492)
[task 2020-07-29T00:21:05.719Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at java.lang.reflect.Method.invoke(Native Method)
[task 2020-07-29T00:21:05.720Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
[task 2020-07-29T00:21:05.720Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
[task 2020-07-29T00:21:05.720Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
[task 2020-07-29T00:21:05.720Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
[task 2020-07-29T00:21:05.720Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.rule.GeckoSessionTestRule$2.lambda$evaluate$0$GeckoSessionTestRule$2(GeckoSessionTestRule.java:1293)
[task 2020-07-29T00:21:05.720Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at org.mozilla.geckoview.test.rule.-$$Lambda$GeckoSessionTestRule$2$sIbRNaZJgAu-QrUVWSGD8JbPSWM.run(lambda)
[task 2020-07-29T00:21:05.721Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at android.app.Instrumentation$SyncRunnable.run(Instrumentation.java:1950)
[task 2020-07-29T00:21:05.721Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at android.os.Handler.handleCallback(Handler.java:751)
[task 2020-07-29T00:21:05.721Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at android.os.Handler.dispatchMessage(Handler.java:95)
[task 2020-07-29T00:21:05.721Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at android.os.Looper.loop(Looper.java:154)
[task 2020-07-29T00:21:05.721Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at android.app.ActivityThread.main(ActivityThread.java:6077)
[task 2020-07-29T00:21:05.721Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at java.lang.reflect.Method.invoke(Native Method)
[task 2020-07-29T00:21:05.721Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
[task 2020-07-29T00:21:05.722Z] 00:21:05     INFO -  org.mozilla.geckoview.test | 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)
[task 2020-07-29T00:21:05.722Z] 00:21:05     INFO -  org.mozilla.geckoview.test |
[task 2020-07-29T00:21:05.722Z] 00:21:05     INFO -  org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: current=610
[task 2020-07-29T00:21:05.722Z] 00:21:05     INFO -  org.mozilla.geckoview.test | INSTRUMENTATION_STATUS_CODE: -2
[task 2020-07-29T00:21:05.722Z] 00:21:05  WARNING -  TEST-UNEXPECTED-FAIL | org.mozilla.geckoview.test.TextInputDelegateTest.inputConnection_deleteSurroundingText[#textarea] | java.lang.AssertionError: Can delete empty text
[task 2020-07-29T00:21:05.722Z] 00:21:05     INFO -  TEST-INFO took 410ms
[task 2020-07-29T00:21:05.722Z] 00:21:05     INFO -  org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: numtests=750
[task 2020-07-29T00:21:05.722Z] 00:21:05     INFO -  org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: stream=
[task 2020-07-29T00:21:05.722Z] 00:21:05     INFO -  org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: id=AndroidJUnitRunner
[task 2020-07-29T00:21:05.723Z] 00:21:05     INFO -  org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: test=editorInfo_default[#textarea]
[task 2020-07-29T00:21:05.723Z] 00:21:05     INFO -  org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: class=org.mozilla.geckoview.test.TextInputDelegateTest
[task 2020-07-29T00:21:05.723Z] 00:21:05     INFO -  org.mozilla.geckoview.test | INSTRUMENTATION_STATUS: current=611
[task 2020-07-29T00:21:05.723Z] 00:21:05     INFO -  org.mozilla.geckoview.test | INSTRUMENTATION_STATUS_CODE: 1
[task 2020-07-29T00:21:05.723Z] 00:21:05     INFO -  TEST-START | org.mozilla.geckoview.test.TextInputDelegateTest.editorInfo_default[#textarea]
Summary: Intermittent org.mozilla.geckoview.test.TextInputDelegateTest.inputConnection_deleteSurroundingText[#textarea] | java.lang.AssertionError: Can delete empty text → Intermittent org.mozilla.geckoview.test.TextInputDelegateTest.inputConnection_deleteSurroundingText[#<test>] | java.lang.AssertionError: Can delete empty text

My patch just changed paint timings, which likely will have exacerbated an existing racy test.

I think it's up to the test owner to decide if they want to fix this, or disable it.

Flags: needinfo?(matt.woodrow)

Aaron can you please take a look?

Flags: needinfo?(aklotz)
Assignee: nobody → apavel
Status: NEW → ASSIGNED
Flags: needinfo?(aklotz) → needinfo?(m_kato)
Pushed by archaeopteryx@coole-files.de:
https://hg.mozilla.org/integration/autoland/rev/53b908d691d3
disable inputConnection_deleteSurroundingText on debug r=intermittent-reviewers,geckoview-reviewers,m_kato,jmaher
Priority: P5 → P1
Whiteboard: [stockwell disable-recommended] → [stockwell disable-recommended][geckoview:m89]

Ah, this tests is incorrect for last check. deleteSurroundingText(0, 0) does nothing, so we shouldn't wait for input event.

Assignee: apavel → m_kato
Flags: needinfo?(m_kato)
Whiteboard: [stockwell disable-recommended][geckoview:m89] → [stockwell disabled][geckoview:m89]

I guess that this root cause is...

  1. deleteSurroundingText(1, 1) creates two replace transaction.
  2. 1st transaction is done then content removes beforeLength
  3. 2nd transaction is done then content removes afterLength

During both 2 and 3, deleteSurroundingText(0, 10) is called then shadow text is synced, Java side text is broken.

So I think that we can fix this by optimizing deleteSurroundingText. We shouldn't create 2 transactions by one deleteSurroundingText call.

Pushed by apavel@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/d29602bacbe6
update disabling condition for all platforms r=geckoview-reviewers,m_kato DONTBUILD

deleteSurroundingText may create multiple text transactions. This issue
occurs when multiple text transactions are dispatched to Gecko.

GeckoEditableSupport records text changes by Gecko then it notifies Java
of text changes. And it merges old text changes with new text changes by
AddIMETextChange to reduce JNI/Binder calls if possible.

This issue is that AddIMETextChange creates invalid text change range
by merging text change ranges.

Actually, TextChangeData already has merge function now, so we should use it
instead of own merge function in GeckoEditableSupport.

Pushed by m_kato@ga2.so-net.ne.jp:
https://hg.mozilla.org/integration/autoland/rev/10ec0515d9ba
Use TextChangeData.MergeWith instead. r=geckoview-reviewers,agi
Keywords: leave-open
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 89 Branch

6c6f5da9-bf33-4082-a19d-7d99e8083d97 Mass rename intermittents due to Bug 1723034.

Summary: Intermittent org.mozilla.geckoview.test.TextInputDelegateTest.inputConnection_deleteSurroundingText[#<test>] | java.lang.AssertionError: Can delete empty text → Intermittent org.mozilla.geckoview.test.TextInputDelegateTest#inputConnection_deleteSurroundingText[#<test>] | java.lang.AssertionError: Can delete empty text
See Also: → 1748370
See Also: → 1754038
See Also: → 1756734
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: