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

Issue 2254043002: Fix flaky tests in CronetUrlRequestContextTest (Closed)

Created:
4 years, 4 months ago by kapishnikov
Modified:
4 years, 4 months ago
Reviewers:
pauljensen, mgersh, xunjieli
CC:
chromium-reviews, cbentzel+watch_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Fix flaky tests in CronetUrlRequestContextTest 1. Fix of Bug 635025 & 596929. When CronetUrlRequestContextTest#testShutdown() is run multiple times, a race condition is created between the test thread and the executor threads. When the second run starts, the test replaces the value of mTestFramework with a new CronetEngine value; however, the executor thread may still be executing ShutdownTestUrlRequestCallback from the previous run, which also references the same shared mTestFramework. If the test thread replaces the value of mTestFramework while onSucceeded() is still being executed, the callback may shut down the wrong engine. The same reasoning applies to testShutdownAfterError(). The reason why the test was executed multiple times is due to http://crbug/637972. 2. Fix of Bug 637986. Block the test thread until the request callback finishes its work. See changes in ShutdownTestUrlRequestCallback#mCallbackCompletionBlock 3. At the end of the test, shut down the callback executor, to release the underlying thread. 4. Removed mTestFramework member variable to avoid similar issues in the future. BUG=596929, 635025, 637986 Committed: https://crrev.com/1d5bef478ace1273acb57a4342be9558e0b7daaa Cr-Commit-Position: refs/heads/master@{#412885}

Patch Set 1 #

Total comments: 6

Patch Set 2 : Removed mTestFramework member variable #

Total comments: 2

Patch Set 3 : Fixed a comment #

Unified diffs Side-by-side diffs Delta from patch set Stats (+160 lines, -153 lines) Patch
M components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java View 1 2 38 chunks +160 lines, -153 lines 0 comments Download

Messages

Total messages: 16 (7 generated)
kapishnikov
Thanks to Paul, we were able to reproduce the flaky CronetUrlRequestContextTest crashes locally. Here is ...
4 years, 4 months ago (2016-08-17 20:30:53 UTC) #2
pauljensen
https://codereview.chromium.org/2254043002/diff/1/components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java File components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java (right): https://codereview.chromium.org/2254043002/diff/1/components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java#newcode51 components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java:51: CronetTestFramework mTestFramework; Please remove this variable. It's the root ...
4 years, 4 months ago (2016-08-18 15:05:29 UTC) #3
kapishnikov
Paul, thanks for the review. I have removed the mTestFramework member variable. PTAL https://codereview.chromium.org/2254043002/diff/1/components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java File ...
4 years, 4 months ago (2016-08-18 16:18:33 UTC) #4
pauljensen
lgtm % one comment https://codereview.chromium.org/2254043002/diff/20001/components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java File components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java (right): https://codereview.chromium.org/2254043002/diff/20001/components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java#newcode123 components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java:123: // Wait for request completion ...
4 years, 4 months ago (2016-08-18 16:39:55 UTC) #5
kapishnikov
https://codereview.chromium.org/2254043002/diff/20001/components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java File components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java (right): https://codereview.chromium.org/2254043002/diff/20001/components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java#newcode123 components/cronet/android/test/javatests/src/org/chromium/net/CronetUrlRequestContextTest.java:123: // Wait for request completion callback. On 2016/08/18 16:39:55, ...
4 years, 4 months ago (2016-08-18 16:55:06 UTC) #7
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/2254043002/40001
4 years, 4 months ago (2016-08-18 16:55:38 UTC) #10
xunjieli
+ 1 this totally deserves an award!
4 years, 4 months ago (2016-08-18 17:24:43 UTC) #12
commit-bot: I haz the power
Committed patchset #3 (id:40001)
4 years, 4 months ago (2016-08-18 17:47:15 UTC) #14
commit-bot: I haz the power
4 years, 4 months ago (2016-08-18 17:48:51 UTC) #16
Message was sent while issue was closed.
Patchset 3 (id:??) landed as
https://crrev.com/1d5bef478ace1273acb57a4342be9558e0b7daaa
Cr-Commit-Position: refs/heads/master@{#412885}

Powered by Google App Engine
This is Rietveld 408576698