New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 784649 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Nov 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android
Pri: 1
Type: Bug

Blocked on:
issue 717062
issue 729983



Sign in to add a comment

org.chromium.chrome.browser.metrics.MainIntentBehaviorMetricsIntegrationTest#testCreateNtp flaky on linux_android_rel_ng

Project Member Reported by kbr@chromium.org, Nov 13 2017

Issue description

Example failures:

https://ci.chromium.org/buildbot/tryserver.chromium.android/linux_android_rel_ng/428697
https://ci.chromium.org/buildbot/tryserver.chromium.android/linux_android_rel_ng/428857
https://ci.chromium.org/buildbot/tryserver.chromium.android/linux_android_rel_ng/428843

Example stack trace:

java.lang.AssertionError: Values did not match. Expected: null, actual: 0
	at org.junit.Assert.fail(Assert.java:88)
	at org.junit.Assert.assertTrue(Assert.java:41)
	at org.chromium.content.browser.test.util.CriteriaHelper.pollInstrumentationThread(CriteriaHelper.java:93)
	at org.chromium.content.browser.test.util.CriteriaHelper.pollUiThread(CriteriaHelper.java:172)
	at org.chromium.content.browser.test.util.CriteriaHelper.pollUiThread(CriteriaHelper.java:194)
	at org.chromium.chrome.browser.metrics.MainIntentBehaviorMetricsIntegrationTest.assertMainIntentBehavior(MainIntentBehaviorMetricsIntegrationTest.java:137)
	at org.chromium.chrome.browser.metrics.MainIntentBehaviorMetricsIntegrationTest.testCreateNtp(MainIntentBehaviorMetricsIntegrationTest.java:104)
	at java.lang.reflect.Method.invokeNative(Method.java)
	at java.lang.reflect.Method.invoke(Method.java:515)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:52)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.chromium.base.test.ScreenshotOnFailureStatement.evaluate(ScreenshotOnFailureStatement.java:37)
	at org.chromium.chrome.test.ChromeActivityTestRule$1.evaluate(ChromeActivityTestRule.java:116)
	at android.support.test.internal.statement.UiThreadStatement.evaluate(UiThreadStatement.java:55)
	at android.support.test.rule.ActivityTestRule$ActivityStatement.evaluate(ActivityTestRule.java:270)
	at org.junit.rules.RunRules.evaluate(RunRules.java:20)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
	at org.chromium.base.test.BaseJUnit4ClassRunner.runChild(BaseJUnit4ClassRunner.java:184)
	at org.chromium.base.test.BaseJUnit4ClassRunner.runChild(BaseJUnit4ClassRunner.java:41)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.chromium.base.test.BaseJUnit4ClassRunner.run(BaseJUnit4ClassRunner.java:166)
	at org.junit.runners.Suite.runChild(Suite.java:128)
	at org.junit.runners.Suite.runChild(Suite.java:27)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
	at android.support.test.internal.runner.TestExecutor.execute(TestExecutor.java:59)
	at android.support.test.runner.AndroidJUnitRunner.onStart(AndroidJUnitRunner.java:262)
	at org.chromium.base.test.BaseChromiumAndroidJUnitRunner.onStart(BaseChromiumAndroidJUnitRunner.java:100)
	at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1701)


Seems related to earlier bugs; blocking on them and CC'ing a couple of others.

 
Cc: jbudorick@chromium.org
Owner: tedc...@chromium.org
Status: Started (was: Untriaged)
+jbudorick@, looks like that bot isn't tracked by the flakiness dashboard.  Is that possible to add?

I've uploaded a speculative fix here:
https://chromium-review.googlesource.com/c/chromium/src/+/767927

The flakiness dashboard would just make this easier to verify.
Project Member

Comment 3 by bugdroid1@chromium.org, Nov 14 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1c81957e9453b1655a34162f41bd8bf94a304312

commit 1c81957e9453b1655a34162f41bd8bf94a304312
Author: Ted Choc <tedchoc@google.com>
Date: Tue Nov 14 01:45:27 2017

Attempt to deflake MainIntentBehaviorMetricsIntegrationTest

My hypothesis is the static last main intent value was leaking
across test runs.  A previous fix exposed the MainIntentMetrics
as a getter, which can remove the need for this to be a static.

BUG= 784649 

Change-Id: I79716cd7fa1402a3ed5da2a4f529dcd1fd5df43b
Reviewed-on: https://chromium-review.googlesource.com/767927
Reviewed-by: Maria Khomenko <mariakhomenko@chromium.org>
Commit-Queue: Ted Choc <tedchoc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#516140}
[modify] https://crrev.com/1c81957e9453b1655a34162f41bd8bf94a304312/chrome/android/java/src/org/chromium/chrome/browser/metrics/MainIntentBehaviorMetrics.java
[modify] https://crrev.com/1c81957e9453b1655a34162f41bd8bf94a304312/chrome/android/javatests/src/org/chromium/chrome/browser/metrics/MainIntentBehaviorMetricsIntegrationTest.java

Project Member

Comment 4 by bugdroid1@chromium.org, Nov 15 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/38fb0e4064cc86ca26243228085742af77fb236e

commit 38fb0e4064cc86ca26243228085742af77fb236e
Author: Ted Choc <tedchoc@google.com>
Date: Wed Nov 15 01:18:18 2017

Attempt #2 to deflake MainIntentBehaviorMetricsIntegrationTest

Hypothesis now is that previous it waited for the page to be fully loaded
and deferred startup to be complete.  If that were to take longer than
10 seconds (as the flakes show it failing after 17 seconds), then the intent
type would be considered a continuation.

This exposes the ability to just wait for native to be fully initialized
w/o caring about tab state and introducing a new way of launching the
activity in the main intent test.

BUG= 784649 

Change-Id: I6e0e280049e3a44ca9069bed91103dd33e768407
Reviewed-on: https://chromium-review.googlesource.com/769303
Reviewed-by: Maria Khomenko <mariakhomenko@chromium.org>
Commit-Queue: Ted Choc <tedchoc@chromium.org>
Cr-Commit-Position: refs/heads/master@{#516543}
[modify] https://crrev.com/38fb0e4064cc86ca26243228085742af77fb236e/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
[modify] https://crrev.com/38fb0e4064cc86ca26243228085742af77fb236e/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java
[modify] https://crrev.com/38fb0e4064cc86ca26243228085742af77fb236e/chrome/android/javatests/src/org/chromium/chrome/browser/metrics/MainIntentBehaviorMetricsIntegrationTest.java
[modify] https://crrev.com/38fb0e4064cc86ca26243228085742af77fb236e/chrome/test/android/javatests/src/org/chromium/chrome/test/ChromeActivityTestRule.java

Status: Fixed (was: Started)
It "appears" the latest fix addressed the flakes.  I don't see any failures on any of the tests from that flakiness link.

Comment 6 by kbr@chromium.org, Nov 15 2017

Thanks for the prompt investigation and fix.

Sign in to add a comment