New issue
Advanced search Search tips

Issue 737862 link

Starred by 3 users

Issue metadata

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



Sign in to add a comment

"org.chromium.components.sync.AndroidSyncSettingsTest#testSyncSettingsCaching" is flaky

Project Member Reported by chromium...@appspot.gserviceaccount.com, Jun 29 2017

Issue description

"org.chromium.components.sync.AndroidSyncSettingsTest#testSyncSettingsCaching" is flaky.

This issue was created automatically by the chromium-try-flakes app. Please find the right owner to fix the respective test/step and assign this issue to them. If the step/test is infrastructure-related, please add Infra-Troopers label and change issue status to Untriaged. When done, please remove the issue from Sheriff Bug Queue by removing the Sheriff-Chromium label.

We have detected 3 recent flakes. List of all flakes can be found at https://chromium-try-flakes.appspot.com/all_flake_occurrences?key=ahVzfmNocm9taXVtLXRyeS1mbGFrZXNyVwsSBUZsYWtlIkxvcmcuY2hyb21pdW0uY29tcG9uZW50cy5zeW5jLkFuZHJvaWRTeW5jU2V0dGluZ3NUZXN0I3Rlc3RTeW5jU2V0dGluZ3NDYWNoaW5nDA.

Flaky tests should be disabled within 30 minutes unless culprit CL is found and reverted. Please see more details here: https://sites.google.com/a/chromium.org/dev/developers/tree-sheriffs/sheriffing-bug-queues#triaging-auto-filed-flakiness-bugs
 
Owner: yfried...@chromium.org
Project Member

Comment 3 by bugdroid1@chromium.org, Jun 29 2017

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

commit c123173d6dacbed465661c0ea265ea75d1025fc2
Author: Giovanni Ortuño Urquidi <ortuno@chromium.org>
Date: Thu Jun 29 06:55:01 2017

Import DisabledTest to fix android build

NOTRY=true
TBR=yfriedman@chromium.org

Bug:  737862 
Change-Id: I127e79d11cdb4e7a41286362d59d094bfd796137
Reviewed-on: https://chromium-review.googlesource.com/554631
Commit-Queue: Giovanni Ortuño Urquidi <ortuno@chromium.org>
Reviewed-by: Giovanni Ortuño Urquidi <ortuno@chromium.org>
Cr-Commit-Position: refs/heads/master@{#483313}
[modify] https://crrev.com/c123173d6dacbed465661c0ea265ea75d1025fc2/components/sync/android/javatests/src/org/chromium/components/sync/AndroidSyncSettingsTest.java

Owner: pav...@chromium.org
Status: Assigned (was: Untriaged)
Heh, I haven't touched sync in a long time!
Sending to pavely who looks to have been more recently active there

Comment 5 by timloh@chromium.org, Jun 30 2017

Labels: -Sheriff-Chromium
Removing from sheriff queue since this has been assigned.
Project Member

Comment 6 by bugdroid1@chromium.org, Aug 7 2017

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

commit 7ad79a5d20912c9ebfdcc8cf509dfc9889eb5f3c
Author: Pavel Yatsuk <pavely@chromium.org>
Date: Mon Aug 07 21:11:43 2017

[Sync] Reenable AndroidSyncSettingsTest#testSyncSettingsCaching

The test is flaky, but logs from latest repro are not available and I wasn't
able to reproduce failure either locally or on trybot. Reenabling the test to
get fresh repro.

BUG= 737862 
R=pnoland@chromium.org

Change-Id: Ic1cfc2890116c446629fe41f28359e4b4cc855c3
Reviewed-on: https://chromium-review.googlesource.com/604394
Reviewed-by: Patrick Noland <pnoland@chromium.org>
Commit-Queue: Pavel Yatsuk <pavely@chromium.org>
Cr-Commit-Position: refs/heads/master@{#492409}
[modify] https://crrev.com/7ad79a5d20912c9ebfdcc8cf509dfc9889eb5f3c/components/sync/android/javatests/src/org/chromium/components/sync/AndroidSyncSettingsTest.java

Comment 7 by pav...@chromium.org, Aug 22 2017

Status: WontFix (was: Assigned)
I didn't see test failure in a while. Closing the bug. Feel free to reopen if another failure occurs.
Status: Assigned (was: WontFix)
The test failed on Android Tests (dbg). https://luci-milo.appspot.com/buildbot/chromium.linux/Android%20Tests%20(dbg)/45558

java.lang.AssertionError: expected:<5> but was:<6>
	at org.junit.Assert.fail(Assert.java:88)
	at org.junit.Assert.failNotEquals(Assert.java:834)
	at org.junit.Assert.assertEquals(Assert.java:645)
	at org.junit.Assert.assertEquals(Assert.java:631)
	at org.chromium.components.sync.AndroidSyncSettingsTest.testSyncSettingsCaching(AndroidSyncSettingsTest.java:362)
This test is flaky often enough that it needs an @RetryOnFailure or @Disabled annotation.

Flakiness dashboard: https://test-results.appspot.com/dashboards/flakiness_dashboard.html#testType=chrome_public_test_apk&tests=AndroidSyncSettingsTest%23testSyncSettingsCaching
Project Member

Comment 10 by bugdroid1@chromium.org, Sep 13 2017

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

commit ec4c7f6d8c662958fbad85fd49f281091a9d230d
Author: Theresa <twellington@chromium.org>
Date: Wed Sep 13 23:42:39 2017

Revert "[Sync] Reenable AndroidSyncSettingsTest#testSyncSettingsCaching"

This reverts commit 7ad79a5d20912c9ebfdcc8cf509dfc9889eb5f3c.

Reason for revert: Still flaking

Original change's description:
> [Sync] Reenable AndroidSyncSettingsTest#testSyncSettingsCaching
> 
> The test is flaky, but logs from latest repro are not available and I wasn't
> able to reproduce failure either locally or on trybot. Reenabling the test to
> get fresh repro.
> 
> BUG= 737862 
> R=​pnoland@chromium.org
> 
> Change-Id: Ic1cfc2890116c446629fe41f28359e4b4cc855c3
> Reviewed-on: https://chromium-review.googlesource.com/604394
> Reviewed-by: Patrick Noland <pnoland@chromium.org>
> Commit-Queue: Pavel Yatsuk <pavely@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#492409}

TBR=pavely@chromium.org,pnoland@google.com

# Not skipping CQ checks because original CL landed > 1 day ago.

Bug:  737862 
Change-Id: Id2a1f0126e281746b93e6d4a53a769527f917da4
Reviewed-on: https://chromium-review.googlesource.com/666178
Reviewed-by: Theresa <twellington@chromium.org>
Commit-Queue: Theresa <twellington@chromium.org>
Cr-Commit-Position: refs/heads/master@{#501803}
[modify] https://crrev.com/ec4c7f6d8c662958fbad85fd49f281091a9d230d/components/sync/android/javatests/src/org/chromium/components/sync/AndroidSyncSettingsTest.java

Status: Started (was: Assigned)
I was able to reproduce test failure by adding sleeps in a few places. The failure is that ContentResolver.getIsSyncable is called inconsistent number of times. Here is the reason for the failure:

AndroidSyncSetingsTest.setUp instantiates AndroidSyncSettings which calls updateSyncability to get cached values and android settings in sync. Among other things this function disables displaying "chrome sync" toggle for accounts other than currently signed-in one. To do this, the function posts to UI thread to call AccountManagerFacade.tryGetGoogleAccounts, which in turn posts AsyncTask to thread pool to retrieve list of accounts and posts result back to UI thread. Handler for the result calls ContentResolver.getIsSyncable() to check if syncability needs to be updated. This flow is supposed to happen in setUp() of the test, before actual test starts executing. If UI thread is starved and this flow is delayed then it becomes likely that last step of the flow is executed after testSyncSettingsCaching test captures number of getIsSyncable calls, but before it triggers updateAccount() and verifies expected number of getIsSyncable resulting in test failure.

The solution should be to block test code execution in setUp until the flow completes.
Project Member

Comment 12 by bugdroid1@chromium.org, Sep 26 2017

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

commit 9a366d974412369998083bf4e67b90be51e21c8b
Author: Pavel Yatsuk <pavely@chromium.org>
Date: Tue Sep 26 16:55:34 2017

[Sync] Fix AndroidSyncSettingsTest flakiness

The issue is that call to AndroidSyncSettings.ctor in setUp() posts asynchronous
task that can take a while to complete and run well into actual test causing
unexpected calls to getIsSyncable.

The change adds a callback to AndroidSyncSettings.overrideForTests that allows
test to block waiting for the flow to complete before proceeding with the test.

BUG= 737862 
R=bsazonov@chromium.org

Change-Id: Id33137d791954a3558fbe8dd76c33719c4fcf428
Reviewed-on: https://chromium-review.googlesource.com/679462
Reviewed-by: Yaron Friedman <yfriedman@chromium.org>
Reviewed-by: Boris Sazonov <bsazonov@chromium.org>
Commit-Queue: Pavel Yatsuk <pavely@chromium.org>
Cr-Commit-Position: refs/heads/master@{#504402}
[modify] https://crrev.com/9a366d974412369998083bf4e67b90be51e21c8b/chrome/android/javatests/src/org/chromium/chrome/browser/invalidation/InvalidationServiceTest.java
[modify] https://crrev.com/9a366d974412369998083bf4e67b90be51e21c8b/chrome/android/javatests/src/org/chromium/chrome/browser/preferences/PasswordViewingTypeTest.java
[modify] https://crrev.com/9a366d974412369998083bf4e67b90be51e21c8b/chrome/android/javatests/src/org/chromium/chrome/browser/preferences/privacy/ClearBrowsingDataPreferencesBasicTest.java
[modify] https://crrev.com/9a366d974412369998083bf4e67b90be51e21c8b/chrome/android/junit/src/org/chromium/chrome/browser/invalidation/InvalidationControllerTest.java
[modify] https://crrev.com/9a366d974412369998083bf4e67b90be51e21c8b/chrome/android/sync_shell/javatests/src/org/chromium/chrome/browser/sync/SyncTestRule.java
[modify] https://crrev.com/9a366d974412369998083bf4e67b90be51e21c8b/components/sync/android/java/src/org/chromium/components/sync/AndroidSyncSettings.java
[modify] https://crrev.com/9a366d974412369998083bf4e67b90be51e21c8b/components/sync/android/javatests/src/org/chromium/components/sync/AndroidSyncSettingsTest.java

Status: Fixed (was: Started)
Cc: bsazonov@chromium.org treib@chromium.org pav...@chromium.org
 Issue 726135  has been merged into this issue.

Sign in to add a comment