|
|
Created:
3 years, 7 months ago by penny Modified:
3 years, 7 months ago Reviewers:
robertshield CC:
chromium-reviews, pennymac+watch_chromium.org, caitkp+watch_chromium.org Target Ref:
refs/heads/master Project:
chromium Visibility:
Public. |
Description[chrome_elf] blacklist flaky tests
Possible flake fix. Overriding chrome_elf test launch options.
BUG=711651
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.win:win10_chromium_x64_rel_ng
Review-Url: https://codereview.chromium.org/2861793003
Cr-Commit-Position: refs/heads/master@{#470086}
Committed: https://chromium.googlesource.com/chromium/src/+/b1d09797bdb4b4b4340662a5bc25a0d611cc42ba
Patch Set 1 #Patch Set 2 : No asserts when holding global mutex. #
Total comments: 3
Patch Set 3 : override test launch: single process & no batching. #
Messages
Total messages: 31 (17 generated)
Description was changed from ========== [chrome_elf] blacklist flaky tests BUG= ========== to ========== [chrome_elf] blacklist flaky tests BUG= CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.win:win10_chromium_x64_rel_ng ==========
The CQ bit was checked by pennymac@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
Description was changed from ========== [chrome_elf] blacklist flaky tests BUG= CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.win:win10_chromium_x64_rel_ng ========== to ========== [chrome_elf] blacklist flaky tests BUG=711651 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.win:win10_chromium_x64_rel_ng ==========
Description was changed from ========== [chrome_elf] blacklist flaky tests BUG=711651 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.win:win10_chromium_x64_rel_ng ========== to ========== [chrome_elf] blacklist flaky tests Possible flake fix. BUG=711651 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.win:win10_chromium_x64_rel_ng ==========
pennymac@chromium.org changed reviewers: + robertshield@chromium.org
Hey Robert, I'm taking a stab at fixing the flaky blacklist test. Only run these one at a time - using a global mutex. I've not seen this failure locally or on the try bots. I'd like to throw this up and see if the waterfall sees any more flakes.
drive-by On 2017/05/04 18:57:41, penny wrote: > Hey Robert, > > I'm taking a stab at fixing the flaky blacklist test. > > Only run these one at a time - using a global mutex. May I humbly suggest making the whole test fixture run all tests serially? This is conceptually much simpler, so unless there are a bajillion tests that need to be parallelized, maybe it's the better option? To do so change base::LaunchUnitTests in run_all_unittests.cc to LaunchUnitTestsWithOptions with |default_jobs| set to 1. That might be all there is to it.
On 2017/05/04 21:34:30, grt (UTC plus 2) wrote: > drive-by > > On 2017/05/04 18:57:41, penny wrote: > > Hey Robert, > > > > I'm taking a stab at fixing the flaky blacklist test. > > > > Only run these one at a time - using a global mutex. > > May I humbly suggest making the whole test fixture run all tests serially? This > is conceptually much simpler, so unless there are a bajillion tests that need to > be parallelized, maybe it's the better option? To do so change > base::LaunchUnitTests in run_all_unittests.cc to LaunchUnitTestsWithOptions with > |default_jobs| set to 1. That might be all there is to it. Oh wow. I didn't realize there was a way to set a suite to serial! I'll have a look at that for just the blacklist* chrome_elf tests, if it's easy enough to carve out a subset of this suite. Thanks a lot Greg. I appreciate your drive bys!
On 2017/05/05 05:04:05, penny wrote: > On 2017/05/04 21:34:30, grt (UTC plus 2) wrote: > > drive-by > > > > On 2017/05/04 18:57:41, penny wrote: > > > Hey Robert, > > > > > > I'm taking a stab at fixing the flaky blacklist test. > > > > > > Only run these one at a time - using a global mutex. > > > > May I humbly suggest making the whole test fixture run all tests serially? > This > > is conceptually much simpler, so unless there are a bajillion tests that need > to > > be parallelized, maybe it's the better option? To do so change > > base::LaunchUnitTests in run_all_unittests.cc to LaunchUnitTestsWithOptions > with > > |default_jobs| set to 1. That might be all there is to it. > > Oh wow. I didn't realize there was a way to set a suite to serial! I'll have a > look at that for just the blacklist* chrome_elf tests, if it's easy enough to > carve out a subset of this suite. > > Thanks a lot Greg. I appreciate your drive bys! I think that the last few times this "serialize a few tests" issue had come up, the advice has been that it isn't worth a subtle code solution in comparison to serializing at the level of the test exe. Maybe check with the folks on https://codereview.chromium.org/1027993002/ to see where they landed.
On 2017/05/05 05:04:05, penny wrote: > On 2017/05/04 21:34:30, grt (UTC plus 2) wrote: > > drive-by > > > > On 2017/05/04 18:57:41, penny wrote: > > > Hey Robert, > > > > > > I'm taking a stab at fixing the flaky blacklist test. > > > > > > Only run these one at a time - using a global mutex. > > > > May I humbly suggest making the whole test fixture run all tests serially? > This > > is conceptually much simpler, so unless there are a bajillion tests that need > to > > be parallelized, maybe it's the better option? To do so change > > base::LaunchUnitTests in run_all_unittests.cc to LaunchUnitTestsWithOptions > with > > |default_jobs| set to 1. That might be all there is to it. > > Oh wow. I didn't realize there was a way to set a suite to serial! I'll have a > look at that for just the blacklist* chrome_elf tests, if it's easy enough to > carve out a subset of this suite. > > Thanks a lot Greg. I appreciate your drive bys! I think that the last few times this "serialize a few tests" issue had come up, the advice has been that it isn't worth a subtle code solution in comparison to serializing at the level of the test exe. Maybe check with the folks on https://codereview.chromium.org/1027993002/ to see where they landed.
On 2017/05/05 08:05:23, grt (UTC plus 2) wrote: > On 2017/05/05 05:04:05, penny wrote: > > On 2017/05/04 21:34:30, grt (UTC plus 2) wrote: > > > drive-by > > > > > > On 2017/05/04 18:57:41, penny wrote: > > > > Hey Robert, > > > > > > > > I'm taking a stab at fixing the flaky blacklist test. > > > > > > > > Only run these one at a time - using a global mutex. > > > > > > May I humbly suggest making the whole test fixture run all tests serially? > > This > > > is conceptually much simpler, so unless there are a bajillion tests that > need > > to > > > be parallelized, maybe it's the better option? To do so change > > > base::LaunchUnitTests in run_all_unittests.cc to LaunchUnitTestsWithOptions > > with > > > |default_jobs| set to 1. That might be all there is to it. > > > > Oh wow. I didn't realize there was a way to set a suite to serial! I'll have > a > > look at that for just the blacklist* chrome_elf tests, if it's easy enough to > > carve out a subset of this suite. > > > > Thanks a lot Greg. I appreciate your drive bys! > > I think that the last few times this "serialize a few tests" issue had come up, > the advice has been that it isn't worth a subtle code solution in comparison to > serializing at the level of the test exe. Maybe check with the folks on > https://codereview.chromium.org/1027993002/ to see where they landed. (Oh, and the reason I'm chiming in is that I implemented yet a different way a while back. :-) )
Chiming in slightly late to say that while the code lg, I like the approach Greg suggested better. https://codereview.chromium.org/2861793003/diff/20001/chrome_elf/blacklist/te... File chrome_elf/blacklist/test/blacklist_test.cc (right): https://codereview.chromium.org/2861793003/diff/20001/chrome_elf/blacklist/te... chrome_elf/blacklist/test/blacklist_test.cc:42: #define event_timeout \ nit, mildly prefer: kEventTimeout or EVENT_TIMEOUT
ROBERT MADE ME DO IT!!!!1!1 https://codereview.chromium.org/2861793003/diff/20001/chrome_elf/blacklist/te... File chrome_elf/blacklist/test/blacklist_test.cc (right): https://codereview.chromium.org/2861793003/diff/20001/chrome_elf/blacklist/te... chrome_elf/blacklist/test/blacklist_test.cc:42: #define event_timeout \ On 2017/05/05 13:04:43, robertshield wrote: > nit, mildly prefer: kEventTimeout or EVENT_TIMEOUT if this can't be a true constant owing to TestTimeouts, then please use a function -- macros are strongly discouraged: DWORD SychronizationTimeout() { return static_cast<DWORD>( TestTimeouts::action_timeout().InMillisecondsRoundedUp()); } or something along those lines. https://codereview.chromium.org/2861793003/diff/20001/chrome_elf/blacklist/te... chrome_elf/blacklist/test/blacklist_test.cc:45: const wchar_t* g_blacklist_test_mutex = L"ChromeElfBlacklistTestMutex"; also from the nit factory: constexpr wchar_t g_blacklist_test_mutex[] = ...; is the preferred way to spell this since it ensures that the constant is in read-only data and it retains the string length at compile in case anyone cares to know about it.
Patchset #3 (id:40001) has been deleted
The CQ bit was checked by pennymac@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
Description was changed from ========== [chrome_elf] blacklist flaky tests Possible flake fix. BUG=711651 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.win:win10_chromium_x64_rel_ng ========== to ========== [chrome_elf] blacklist flaky tests Possible flake fix. Overriding chrome_elf test launch options. BUG=711651 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.win:win10_chromium_x64_rel_ng ==========
This looks cleaner. chrome_elf_unittests is small enough that it's not much slower to run serialized.
Over to you Robert.
lgtm
The CQ bit was checked by pennymac@chromium.org
CQ is trying da patch. Follow status at: https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
CQ is committing da patch. Bot data: {"patchset_id": 60001, "attempt_start_ts": 1494268896600190, "parent_rev": "a881b3e6d19b6a38e1bd0118db8e993e40eac393", "commit_rev": "b1d09797bdb4b4b4340662a5bc25a0d611cc42ba"}
Message was sent while issue was closed.
Description was changed from ========== [chrome_elf] blacklist flaky tests Possible flake fix. Overriding chrome_elf test launch options. BUG=711651 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.win:win10_chromium_x64_rel_ng ========== to ========== [chrome_elf] blacklist flaky tests Possible flake fix. Overriding chrome_elf test launch options. BUG=711651 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.win:win10_chromium_x64_rel_ng Review-Url: https://codereview.chromium.org/2861793003 Cr-Commit-Position: refs/heads/master@{#470086} Committed: https://chromium.googlesource.com/chromium/src/+/b1d09797bdb4b4b4340662a5bc25... ==========
Message was sent while issue was closed.
Committed patchset #3 (id:60001) as https://chromium.googlesource.com/chromium/src/+/b1d09797bdb4b4b4340662a5bc25...
Message was sent while issue was closed.
A revert of this CL (patchset #3 id:60001) has been created in https://codereview.chromium.org/2869273005/ by jam@chromium.org. The reason for reverting is: This is still causing lots of flake.. |