Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(413)

Issue 2871753003: [Sync] Speculative changes to address flaky AndroidSyncSettings tests (Closed)

Created:
3 years, 7 months ago by pavely
Modified:
3 years, 7 months ago
Reviewers:
skym
CC:
chromium-reviews, sync-reviews_chromium.org, agrieve+watch_chromium.org
Target Ref:
refs/heads/master
Project:
chromium
Visibility:
Public.

Description

[Sync] Speculative changes to address flaky AndroidSyncSettings tests testAccountInitialization fails at 172 with assertEquals(2, mSyncContentResolverDelegate.mSetIsSyncableCalls); testIsSyncableOnSigninAndNotOnSignout fails at 372 with assertTrue(mSyncContentResolverDelegate.getIsSyncable(mAccount, mAuthority) == 1); I didn't find codepath that would explain both failures so I'm speculatively fixing threading issues that I spotted and enabling one of disabled tests, the one easier to reason about. Considering last time it took tests couple of days to appear on flakiness console I'm going to wait about a week, if test doesn't fail I'll enable the other one. Here are the issues I'm addressing: - counters in CountingMockSyncContentResolverDelegate are a simple ints, while they are incremented and accessed from different threads. I'm changing them to AtomicIntegers. - in AndroidSyncSettings.updateSyncability callback receiving results of getGoogleAccounts is executed on UI thread, not Instrumentation thread where all the test code executes. It accesses mAccount. I wrapped this code block in synchronized. BUG=717960 R=skym@chromium.org Review-Url: https://codereview.chromium.org/2871753003 Cr-Commit-Position: refs/heads/master@{#470222} Committed: https://chromium.googlesource.com/chromium/src/+/f1c5a372002a6a2367c19a3d6100fc69ef5a7ccc

Patch Set 1 #

Total comments: 7

Patch Set 2 : Use assertEquals instead of assertTrue #

Unified diffs Side-by-side diffs Delta from patch set Stats (+47 lines, -42 lines) Patch
M components/sync/android/java/src/org/chromium/components/sync/AndroidSyncSettings.java View 1 chunk +11 lines, -8 lines 0 comments Download
M components/sync/android/javatests/src/org/chromium/components/sync/AndroidSyncSettingsTest.java View 1 11 chunks +36 lines, -34 lines 0 comments Download

Messages

Total messages: 17 (11 generated)
pavely
3 years, 7 months ago (2017-05-08 23:09:25 UTC) #3
skym
lgtm https://codereview.chromium.org/2871753003/diff/1/components/sync/android/java/src/org/chromium/components/sync/AndroidSyncSettings.java File components/sync/android/java/src/org/chromium/components/sync/AndroidSyncSettings.java (right): https://codereview.chromium.org/2871753003/diff/1/components/sync/android/java/src/org/chromium/components/sync/AndroidSyncSettings.java#newcode254 components/sync/android/java/src/org/chromium/components/sync/AndroidSyncSettings.java:254: synchronized (mLock) { What is this lock protecting? ...
3 years, 7 months ago (2017-05-08 23:26:28 UTC) #6
pavely
https://codereview.chromium.org/2871753003/diff/1/components/sync/android/java/src/org/chromium/components/sync/AndroidSyncSettings.java File components/sync/android/java/src/org/chromium/components/sync/AndroidSyncSettings.java (right): https://codereview.chromium.org/2871753003/diff/1/components/sync/android/java/src/org/chromium/components/sync/AndroidSyncSettings.java#newcode254 components/sync/android/java/src/org/chromium/components/sync/AndroidSyncSettings.java:254: synchronized (mLock) { On 2017/05/08 23:26:28, skym wrote: > ...
3 years, 7 months ago (2017-05-09 00:27:28 UTC) #9
commit-bot: I haz the power
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2871753003/20001
3 years, 7 months ago (2017-05-09 00:40:19 UTC) #13
commit-bot: I haz the power
Committed patchset #2 (id:20001) as https://chromium.googlesource.com/chromium/src/+/f1c5a372002a6a2367c19a3d6100fc69ef5a7ccc
3 years, 7 months ago (2017-05-09 04:45:57 UTC) #16
skym
3 years, 7 months ago (2017-05-09 13:19:37 UTC) #17
Message was sent while issue was closed.
https://codereview.chromium.org/2871753003/diff/1/components/sync/android/jav...
File
components/sync/android/javatests/src/org/chromium/components/sync/AndroidSyncSettingsTest.java
(right):

https://codereview.chromium.org/2871753003/diff/1/components/sync/android/jav...
components/sync/android/javatests/src/org/chromium/components/sync/AndroidSyncSettingsTest.java:31:
private static class CountingMockSyncContentResolverDelegate
On 2017/05/09 00:27:28, pavely wrote:
> On 2017/05/08 23:26:28, skym wrote:
> > @ThreadSafe?
> 
> MockSyncContentResolverDelegate is not annotated with @ThreadSafe. What does
> @ThreadSafe affect anyway?

It doesn't do anything, just marks intention.

Powered by Google App Engine
This is Rietveld 408576698