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

Issue 892307 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Better flake detection with 'retry without patch'.

Project Member Reported by erikc...@chromium.org, Oct 4

Issue description

'retry without patch' runs a failing test up to X times, and checks to see if it ever succeeds. Instead, it needs to rerun a failing test X times, and check to see if it ever fails.

context: ToT contained a flaky test [> 50% flakiness]. Here's a common sequence of events:

* Test fails 4 times 'with patch'.
* Test fails three times. Passes on 4th attempt in 'without patch'.
* Test fails 4 times in 'retry without patch'.

CL is marked as a failure, even though it should be marked as a success. 

See:
https://chromium-cq-status.appspot.com/v2/patch-status/chromium-review.googlesource.com/1247033/3
https://ci.chromium.org/p/chromium/builders/luci.chromium.try/win7_chromium_rel_ng/98925
 
It sounds like you're suggesting we want one set of logic for `with patch` (retry a test until it passes or retries N times) and another set for `without patch` (retry the test N times or until it fails).

That seems like a good idea, but we don't have a way of doing that in the test harnesses today, so we'd have to wire that through everywhere. 

I'm also not positive what the different cases that we need to support are (which combinations of failure handling, test filtering, and retrying), so this probably needs some exhaustive thinking-through to make sure the behavior is sensible.


> so we'd have to wire that through everywhere. 

Yes. 

> we don't have a way of doing that in the test harnesses today

gtest has --gtest_repeat, which does what we want. 

Other harnesses will need to be modified to support this feature on a case-by-case basis. My solution allows us to incrementally add this behavior to test harnesses as necessary. 

> I'm also not positive what the different cases that we need to support are (which combinations of failure handling, test filtering, and retrying), so this probably needs some exhaustive thinking-through to make sure the behavior is sensible.

If/when we modify test harnesses other than gtest, we'll need to make sure that the new flag we add has the appropriate behavior when combined with filters+failures. This will need to be tackled on a case-by-case basis.
> gtest has --gtest_repeat, which does what we want.

I'm not sure what the logic for handling failures is in that case; you'd probably either want the step to return a 1 if any test failed (maybe it does this already) , or you'd have to parse the test results to figure out how to interpret them. Which is doable, obviously.
Most of the recipe layer parsing logic already exists -- it just needed some plumbing, see:

https://chromium-review.googlesource.com/c/chromium/tools/build/+/1265655

I think we're on the same page in terms of the expected behavior -- so if we want to discuss implementation details, let's do so on the CL?
Sure. I'm fine with all of the changes you're discussing here, I just wanted to point out some of the stuff you'd have to handle. But it sounds like you're on top of it :).
I'm wondering how this is different from the proposal from the Findit team https://docs.google.com/presentation/d/11AGcJu8fjMwDUNQoYM-RfxYrkuy_fGRvj2ucHQ5C1ZQ/edit#slide=id.g39b384d06b_13_22

“browser_tests (30x with patch)”
“browser_tests (30x without patch)”
This is functionally equivalent. 
Will the 'retry without patch' roll to the tot and re-compile like 'retry with patch'? I'm assuming not because I don't see the point.
> Will the 'retry without patch' roll to the tot and re-compile like 'retry with patch'? I'm assuming not because I don't see the point.

'retry without patch' will deapply the patch and recompile [same as right now]. The only difference is that we will run tests a fixed number of times and look for any failures, rather than up to N times, looking for any success.
> 'retry without patch' will deapply the patch and recompile [same as right now]. The only difference is that we will run tests a fixed number of times and look for any failures, rather than up to N times, looking for any success.

I don't think I understand. The deapply patch and recompile are already done in the 'without patch' step, if 'retry without patch' happens right after 'without patch', can't we just reuse the artifact from 'without patch' step?
Sorry, I misunderstood your question. I use the terms 'retry without patch' and 'without patch' interchangeably.
I see, makes sense now, thanks for explaining.

I think this is a good idea, but I'm a little bit worried that the 'inconsistency' between with patch and without patch might cause confusions and make the build results hard for developers to understand, so it might worth adding some documentations for the recent changes, such as a md doc.
erikchen@: I hope this new change won't break Findit's Flake Detector. Would you mind following up with liaoyuke@ and chanli@ to make sure Findit is adapted to this change before the CL lands?
Cc: chanli@chromium.org
I have 2 questions:

1. With this change, will we run more iterations in 'without patch' to catch flakes?
  a. If yes, would that increase the time overhead?
  b. If no, how much percent of flakes we can catch?
2. With the change on the 'without patch', do we still need the new 'retry with patch' step? I feel they'll serve the same purpose (deflake) so maybe we'll only need one of them.
> a. If yes, would that increase the time overhead?

Yes, but minimally. The cost of rerunning tests in a test_suite is O(seconds), and we are only rerunning failed tests.

> With the change on the 'without patch', do we still need the new 'retry with patch' step? I feel they'll serve the same purpose (deflake) so maybe we'll only need one of them.

'retry with patch' catches certain types of infra failures [e.g. ADB failure on android bot] and reduces their impact on flakiness. 

retrying in 'without patch' reduces the impact of flaky tests on ToT.

They are currently both needed, as they reduce flakiness from different sources.
IIUC, this means after the change to 'without patch', 'retry with patch' will be most used to mitigate the impact of infra failures rather than the tests are flaky themselves? 

If so, I feel at Findit side, we should not care occurrences in 'retry with patch' as much as we do currently or even ignore them (seems not the test's fault)? stgao@, liaoyuke@ wdyt?
I was insufficiently precise in my previous response. More details.

> IIUC, this means after the change to 'without patch', 'retry with patch' will be most used to mitigate the impact of infra failures rather than the tests are flaky themselves? 

'retry with patch' currently exists to mitigate two types of flakiness:
  * infra failures
  * bugs in test runner retry logic.

This is independent from the proposed change to 'without patch', which is intended to detect if a test is flaky on tip of tree.

> If so, I feel at Findit side, we should not care occurrences in 'retry with patch' as much as we do currently or even ignore them (seems not the test's fault)? 

That is a really good question. Right now, I'm still trying to fix bugs in test runner try logic, e.g. see: https://bugs.chromium.org/p/chromium/issues/detail?id=889036. Right now Find-It does not distinguish between a test that flakes because the test implementation is flaky, and a test that flakes because the test runner has bugs. Should it? 
The conversation above is starting to diverge from the original intended purpose, which is unblocking this CL: https://chromium-review.googlesource.com/c/chromium/tools/build/+/1265655

liaoyuke, chanli: This CL adds logic to chromium tests to handle multiple retries on 'retry without patch'. Do you have any concerns with regards to the current functionality of Findit and this CL?
After an offline discussion between liaoyuke@ and me, we don't need to block your change.

Basically after your change is landed, we expect fewer flakes on our dashboard (because this change should prevent many false rejections) but our functionality should not be good.
Thanks!
#20, sorry I meant 'our functionality should be good'...
Project Member

Comment 23 by bugdroid1@chromium.org, Oct 9

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/tools/build/+/6d41e38a06ca1f3e4f09b772d08a3133b5048306

commit 6d41e38a06ca1f3e4f09b772d08a3133b5048306
Author: erikchen <erikchen@chromium.org>
Date: Tue Oct 09 16:40:25 2018

Better flake detection with 'retry without patch'.

Previously, 'retry without patch' would look for a single test success and
consider the test as passing on tip of tree. This CL makes it so that 'retry
without patch' looks for a single failure to consider the test flaky on tip of
tree.

TestResult and GTestResult already support pass_fail_counts, a dictionary that
provides the number of failures and successes per test. This CL plumbs that
dictionary through Test subclasses to make it accessible to the CQ recipe.

Future CLs will update the parameters passed to swarming tasks so that tests are
run multiple times, even on success to look for flaky failures.

Bug: 892307
Change-Id: I986d4e1cead1a1275174bd995b4535c887a6c970
Reviewed-on: https://chromium-review.googlesource.com/c/1265655
Commit-Queue: Erik Chen <erikchen@chromium.org>
Reviewed-by: John Budorick <jbudorick@chromium.org>
Auto-Submit: Erik Chen <erikchen@chromium.org>

[modify] https://crrev.com/6d41e38a06ca1f3e4f09b772d08a3133b5048306/scripts/slave/recipe_modules/findit/api.py
[modify] https://crrev.com/6d41e38a06ca1f3e4f09b772d08a3133b5048306/scripts/slave/recipes/blink_downstream.expected/full_client_v8_fyi_V8_Blink_Mac_fail.json
[modify] https://crrev.com/6d41e38a06ca1f3e4f09b772d08a3133b5048306/scripts/slave/recipe_modules/test_utils/util.py
[modify] https://crrev.com/6d41e38a06ca1f3e4f09b772d08a3133b5048306/scripts/slave/recipes/blink_downstream.expected/full_client_v8_fyi_V8_Blink_Win_fail.json
[modify] https://crrev.com/6d41e38a06ca1f3e4f09b772d08a3133b5048306/scripts/slave/recipes/blink_downstream.expected/full_client_v8_fyi_V8_Blink_Linux_64__dbg__fail.json
[add] https://crrev.com/6d41e38a06ca1f3e4f09b772d08a3133b5048306/scripts/slave/recipe_modules/chromium_tests/tests/steps/script_test.expected/failure.json
[modify] https://crrev.com/6d41e38a06ca1f3e4f09b772d08a3133b5048306/scripts/slave/recipe_modules/chromium_tests/tests/steps/gtest_test.py
[modify] https://crrev.com/6d41e38a06ca1f3e4f09b772d08a3133b5048306/scripts/slave/recipes/blink_downstream.expected/full_client_v8_fyi_V8_Blink_Linux_64_fail.json
[modify] https://crrev.com/6d41e38a06ca1f3e4f09b772d08a3133b5048306/scripts/slave/recipe_modules/chromium_tests/tests/steps/experimental_test.py
[modify] https://crrev.com/6d41e38a06ca1f3e4f09b772d08a3133b5048306/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_isolated_script_test.py
[modify] https://crrev.com/6d41e38a06ca1f3e4f09b772d08a3133b5048306/scripts/slave/recipe_modules/chromium_tests/tests/steps/swarming_gtest_test.py
[modify] https://crrev.com/6d41e38a06ca1f3e4f09b772d08a3133b5048306/scripts/slave/recipe_modules/chromium_tests/tests/steps/local_isolated_script_test.py
[modify] https://crrev.com/6d41e38a06ca1f3e4f09b772d08a3133b5048306/scripts/slave/recipe_modules/chromium_tests/tests/steps/script_test.py
[modify] https://crrev.com/6d41e38a06ca1f3e4f09b772d08a3133b5048306/scripts/slave/recipe_modules/chromium_tests/tests/api/run_tests_on_tryserver.py
[modify] https://crrev.com/6d41e38a06ca1f3e4f09b772d08a3133b5048306/scripts/slave/recipe_modules/chromium_tests/tests/steps/local_gtest_test.py
[modify] https://crrev.com/6d41e38a06ca1f3e4f09b772d08a3133b5048306/scripts/slave/recipe_modules/chromium_tests/tests/steps/android_junit_test.expected/basic.json
[modify] https://crrev.com/6d41e38a06ca1f3e4f09b772d08a3133b5048306/scripts/slave/recipes/findit/chromium/test.expected/test_without_targets_not_skipped.json
[modify] https://crrev.com/6d41e38a06ca1f3e4f09b772d08a3133b5048306/scripts/slave/recipes/blink_downstream.expected/full_client_v8_fyi_V8_Blink_Linux_64___future_fail.json
[modify] https://crrev.com/6d41e38a06ca1f3e4f09b772d08a3133b5048306/scripts/slave/recipe_modules/chromium_tests/steps.py
[modify] https://crrev.com/6d41e38a06ca1f3e4f09b772d08a3133b5048306/scripts/slave/recipes/chromium_trybot.expected/dynamic_swarmed_isolated_script_test_failure_no_result_json.json
[modify] https://crrev.com/6d41e38a06ca1f3e4f09b772d08a3133b5048306/scripts/slave/recipes/chromium_trybot.expected/swarmed_webkit_tests_interrupted.json
[modify] https://crrev.com/6d41e38a06ca1f3e4f09b772d08a3133b5048306/scripts/slave/recipes/chromium_trybot.expected/swarmed_webkit_tests_unexpected_error.json
[modify] https://crrev.com/6d41e38a06ca1f3e4f09b772d08a3133b5048306/scripts/slave/recipes/findit/chromium/test.expected/compile_skipped.json
[modify] https://crrev.com/6d41e38a06ca1f3e4f09b772d08a3133b5048306/scripts/slave/recipe_modules/chromium_tests/tests/steps/blink_test.expected/big.json
[modify] https://crrev.com/6d41e38a06ca1f3e4f09b772d08a3133b5048306/scripts/slave/README.recipes.md
[modify] https://crrev.com/6d41e38a06ca1f3e4f09b772d08a3133b5048306/scripts/slave/recipe_modules/chromium_tests/tests/steps/blink_test.py
[modify] https://crrev.com/6d41e38a06ca1f3e4f09b772d08a3133b5048306/scripts/slave/recipe_modules/test_utils/api.py
[modify] https://crrev.com/6d41e38a06ca1f3e4f09b772d08a3133b5048306/scripts/slave/recipe_modules/chromium_tests/tests/steps/json_results_handler.py

Project Member

Comment 24 by bugdroid1@chromium.org, Oct 9

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/tools/build/+/c5a9d4285213376456cacbf31dea0a3c6417b6ad

commit c5a9d4285213376456cacbf31dea0a3c6417b6ad
Author: erikchen <erikchen@chromium.org>
Date: Tue Oct 09 16:50:00 2018

Repeat gtests 10 times in the 'retry without patch' step.

In 'retry without patch', we want to see if the test is flaky on tip of tree. To
do so, we must repeatedly run the test, even if it succeeds.

If the test is flaky on tip of tree, then the failure is likely caused by tree
flakiness rather than a problem with the CL.

Bug: 892307
Change-Id: I66c687d68320017e103299128bcb7d07121fcec2
Reviewed-on: https://chromium-review.googlesource.com/c/1269016
Commit-Queue: Erik Chen <erikchen@chromium.org>
Reviewed-by: Stephen Martinis <martiniss@chromium.org>

[modify] https://crrev.com/c5a9d4285213376456cacbf31dea0a3c6417b6ad/scripts/slave/recipes/chromium_trybot.expected/invalid_results.json
[modify] https://crrev.com/c5a9d4285213376456cacbf31dea0a3c6417b6ad/scripts/slave/recipe_modules/chromium_tests/tests/api/run_tests_on_tryserver.expected/enable_retry_with_patch_succeed_after_deapply.json
[modify] https://crrev.com/c5a9d4285213376456cacbf31dea0a3c6417b6ad/scripts/slave/recipe_modules/chromium_tests/tests/steps/local_gtest_test.py
[modify] https://crrev.com/c5a9d4285213376456cacbf31dea0a3c6417b6ad/scripts/slave/recipe_modules/chromium_tests/tests/steps/local_gtest_test.expected/android.json
[modify] https://crrev.com/c5a9d4285213376456cacbf31dea0a3c6417b6ad/scripts/slave/recipe_modules/chromium_tests/tests/steps/local_gtest_test.expected/retry.json
[modify] https://crrev.com/c5a9d4285213376456cacbf31dea0a3c6417b6ad/scripts/slave/recipe_modules/chromium_tests/steps.py
[modify] https://crrev.com/c5a9d4285213376456cacbf31dea0a3c6417b6ad/scripts/slave/recipes/chromium_trybot.expected/swarming_test_failure.json
[modify] https://crrev.com/c5a9d4285213376456cacbf31dea0a3c6417b6ad/scripts/slave/recipe_modules/chromium_tests/tests/steps/local_gtest_test.expected/basic.json
[modify] https://crrev.com/c5a9d4285213376456cacbf31dea0a3c6417b6ad/scripts/slave/recipe_modules/chromium_tests/tests/api/run_tests_on_tryserver.expected/basic.json

Project Member

Comment 25 by bugdroid1@chromium.org, Oct 9

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/tools/build/+/2f456a0b6b00710cc413e398a69e2717982938e6

commit 2f456a0b6b00710cc413e398a69e2717982938e6
Author: erikchen <erikchen@chromium.org>
Date: Tue Oct 09 20:40:27 2018

Repeat webkit_layout_tests 10 times in the 'retry without patch' step.

In 'retry without patch', we want to see if the test is flaky on tip of tree. To
do so, we must repeatedly run the test, even if it succeeds.

If the test is flaky on tip of tree, then the failure is likely caused by tree
flakiness rather than a problem with the CL.

Bug: 892307
Change-Id: I57264ca6e1473026a62fa2d39155d4ff77a38764
Reviewed-on: https://chromium-review.googlesource.com/c/1271636
Reviewed-by: Stephen Martinis <martiniss@chromium.org>
Commit-Queue: Erik Chen <erikchen@chromium.org>

[modify] https://crrev.com/2f456a0b6b00710cc413e398a69e2717982938e6/scripts/slave/recipes/chromium_trybot.expected/invalid_results.json
[modify] https://crrev.com/2f456a0b6b00710cc413e398a69e2717982938e6/scripts/slave/recipe_modules/chromium_tests/tests/api/run_tests_on_tryserver.expected/enable_retry_with_patch_succeed_after_deapply.json
[modify] https://crrev.com/2f456a0b6b00710cc413e398a69e2717982938e6/scripts/slave/recipes/chromium_trybot.expected/swarmed_webkit_tests_interrupted.json
[modify] https://crrev.com/2f456a0b6b00710cc413e398a69e2717982938e6/scripts/slave/recipes/chromium_trybot.expected/swarmed_webkit_tests_unexpected_error.json
[modify] https://crrev.com/2f456a0b6b00710cc413e398a69e2717982938e6/scripts/slave/recipe_modules/chromium_tests/tests/steps/local_gtest_test.expected/android.json
[modify] https://crrev.com/2f456a0b6b00710cc413e398a69e2717982938e6/scripts/slave/recipe_modules/chromium_tests/tests/steps/local_gtest_test.expected/retry.json
[modify] https://crrev.com/2f456a0b6b00710cc413e398a69e2717982938e6/scripts/slave/recipe_modules/chromium_tests/steps.py
[modify] https://crrev.com/2f456a0b6b00710cc413e398a69e2717982938e6/scripts/slave/recipes/chromium_trybot.expected/swarming_test_failure.json
[modify] https://crrev.com/2f456a0b6b00710cc413e398a69e2717982938e6/scripts/slave/recipe_modules/chromium_tests/tests/steps/local_gtest_test.expected/basic.json
[modify] https://crrev.com/2f456a0b6b00710cc413e398a69e2717982938e6/scripts/slave/recipe_modules/chromium_tests/tests/api/run_tests_on_tryserver.expected/basic.json
[modify] https://crrev.com/2f456a0b6b00710cc413e398a69e2717982938e6/scripts/slave/recipes/chromium_trybot.expected/swarmed_layout_tests_too_many_failures_for_retcode.json

Project Member

Comment 26 by bugdroid1@chromium.org, Oct 12

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/tools/build/+/899a52ba6051656948f0435a54713af015fd4739

commit 899a52ba6051656948f0435a54713af015fd4739
Author: Erik Chen <erikchen@chromium.org>
Date: Fri Oct 12 00:58:20 2018

Revert "Repeat webkit_layout_tests 10 times in the 'retry without patch' step."

This reverts commit 2f456a0b6b00710cc413e398a69e2717982938e6.

Reason for revert: The 10x repeats is sometimes applying to whole test suites, causing timeouts
https://bugs.chromium.org/p/chromium/issues/detail?id=894637

Original change's description:
> Repeat webkit_layout_tests 10 times in the 'retry without patch' step.
> 
> In 'retry without patch', we want to see if the test is flaky on tip of tree. To
> do so, we must repeatedly run the test, even if it succeeds.
> 
> If the test is flaky on tip of tree, then the failure is likely caused by tree
> flakiness rather than a problem with the CL.
> 
> Bug: 892307
> Change-Id: I57264ca6e1473026a62fa2d39155d4ff77a38764
> Reviewed-on: https://chromium-review.googlesource.com/c/1271636
> Reviewed-by: Stephen Martinis <martiniss@chromium.org>
> Commit-Queue: Erik Chen <erikchen@chromium.org>

TBR=stgao@chromium.org,erikchen@chromium.org,martiniss@chromium.org

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

Bug: 892307
Change-Id: I5161207ef098084d2b6fc639419142927fac7979
Reviewed-on: https://chromium-review.googlesource.com/c/1278366
Reviewed-by: Erik Chen <erikchen@chromium.org>
Commit-Queue: Erik Chen <erikchen@chromium.org>
Auto-Submit: Erik Chen <erikchen@chromium.org>

[modify] https://crrev.com/899a52ba6051656948f0435a54713af015fd4739/scripts/slave/recipes/chromium_trybot.expected/invalid_results.json
[modify] https://crrev.com/899a52ba6051656948f0435a54713af015fd4739/scripts/slave/recipe_modules/chromium_tests/tests/api/run_tests_on_tryserver.expected/enable_retry_with_patch_succeed_after_deapply.json
[modify] https://crrev.com/899a52ba6051656948f0435a54713af015fd4739/scripts/slave/recipes/chromium_trybot.expected/swarmed_webkit_tests_interrupted.json
[modify] https://crrev.com/899a52ba6051656948f0435a54713af015fd4739/scripts/slave/recipes/chromium_trybot.expected/swarmed_webkit_tests_unexpected_error.json
[modify] https://crrev.com/899a52ba6051656948f0435a54713af015fd4739/scripts/slave/recipe_modules/chromium_tests/tests/steps/local_gtest_test.expected/android.json
[modify] https://crrev.com/899a52ba6051656948f0435a54713af015fd4739/scripts/slave/recipe_modules/chromium_tests/tests/steps/local_gtest_test.expected/retry.json
[modify] https://crrev.com/899a52ba6051656948f0435a54713af015fd4739/scripts/slave/recipe_modules/chromium_tests/steps.py
[modify] https://crrev.com/899a52ba6051656948f0435a54713af015fd4739/scripts/slave/recipes/chromium_trybot.expected/swarming_test_failure.json
[modify] https://crrev.com/899a52ba6051656948f0435a54713af015fd4739/scripts/slave/recipe_modules/chromium_tests/tests/steps/local_gtest_test.expected/basic.json
[modify] https://crrev.com/899a52ba6051656948f0435a54713af015fd4739/scripts/slave/recipe_modules/chromium_tests/tests/api/run_tests_on_tryserver.expected/basic.json
[modify] https://crrev.com/899a52ba6051656948f0435a54713af015fd4739/scripts/slave/recipes/chromium_trybot.expected/swarmed_layout_tests_too_many_failures_for_retcode.json

Project Member

Comment 27 by bugdroid1@chromium.org, Oct 12

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/tools/build/+/668483badd4cc38e4cf249859da4c080afc09572

commit 668483badd4cc38e4cf249859da4c080afc09572
Author: Erik Chen <erikchen@chromium.org>
Date: Fri Oct 12 03:22:50 2018

Revert "Repeat gtests 10 times in the 'retry without patch' step."

This reverts commit c5a9d4285213376456cacbf31dea0a3c6417b6ad.

Reason for revert: The 10x repeats is sometimes applying to whole test suites, causing timeouts
https://bugs.chromium.org/p/chromium/issues/detail?id=894637

Original change's description:
> Repeat gtests 10 times in the 'retry without patch' step.
> 
> In 'retry without patch', we want to see if the test is flaky on tip of tree. To
> do so, we must repeatedly run the test, even if it succeeds.
> 
> If the test is flaky on tip of tree, then the failure is likely caused by tree
> flakiness rather than a problem with the CL.
> 
> Bug: 892307
> Change-Id: I66c687d68320017e103299128bcb7d07121fcec2
> Reviewed-on: https://chromium-review.googlesource.com/c/1269016
> Commit-Queue: Erik Chen <erikchen@chromium.org>
> Reviewed-by: Stephen Martinis <martiniss@chromium.org>

TBR=erikchen@chromium.org,martiniss@chromium.org

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

Bug: 892307
Change-Id: Iee7e3176ef4a2fcee4e2a4bb551becef22c8f1a5
Reviewed-on: https://chromium-review.googlesource.com/c/1278368
Reviewed-by: Erik Chen <erikchen@chromium.org>
Commit-Queue: Erik Chen <erikchen@chromium.org>

[modify] https://crrev.com/668483badd4cc38e4cf249859da4c080afc09572/scripts/slave/recipes/chromium_trybot.expected/invalid_results.json
[modify] https://crrev.com/668483badd4cc38e4cf249859da4c080afc09572/scripts/slave/recipe_modules/chromium_tests/tests/api/run_tests_on_tryserver.expected/enable_retry_with_patch_succeed_after_deapply.json
[modify] https://crrev.com/668483badd4cc38e4cf249859da4c080afc09572/scripts/slave/recipe_modules/chromium_tests/tests/steps/local_gtest_test.py
[modify] https://crrev.com/668483badd4cc38e4cf249859da4c080afc09572/scripts/slave/recipe_modules/chromium_tests/tests/steps/local_gtest_test.expected/android.json
[modify] https://crrev.com/668483badd4cc38e4cf249859da4c080afc09572/scripts/slave/recipe_modules/chromium_tests/tests/steps/local_gtest_test.expected/retry.json
[modify] https://crrev.com/668483badd4cc38e4cf249859da4c080afc09572/scripts/slave/recipe_modules/chromium_tests/steps.py
[modify] https://crrev.com/668483badd4cc38e4cf249859da4c080afc09572/scripts/slave/recipes/chromium_trybot.expected/swarming_test_failure.json
[modify] https://crrev.com/668483badd4cc38e4cf249859da4c080afc09572/scripts/slave/recipe_modules/chromium_tests/tests/steps/local_gtest_test.expected/basic.json
[modify] https://crrev.com/668483badd4cc38e4cf249859da4c080afc09572/scripts/slave/recipe_modules/chromium_tests/tests/api/run_tests_on_tryserver.expected/basic.json

Project Member

Comment 28 by bugdroid1@chromium.org, Oct 16

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/tools/build/+/74d6c73918d17bf09c3dc0ee506fb5af8da58725

commit 74d6c73918d17bf09c3dc0ee506fb5af8da58725
Author: erikchen <erikchen@chromium.org>
Date: Tue Oct 16 07:37:04 2018

[Reland 1] Repeat gtests and webkit_layout_tests 10 times in 'retry without patch'.

This CL is a reland of two previous CLs:
https://chromium-review.googlesource.com/c/chromium/tools/build/+/1271636
https://chromium-review.googlesource.com/c/chromium/tools/build/+/1269016

The previous CLs had an overlooked edge case -- if all tests failed, they would
try to repeat all tests 10 times. This would cause timeouts. The new behavior
caps the 10X retry to 100 tests to avoid these edge cases.

Change-Id: I3a707807fde2b29bb537d03accd8aba3bf5feb51
Bug: 892307
Reviewed-on: https://chromium-review.googlesource.com/c/1278334
Reviewed-by: Stephen Martinis <martiniss@chromium.org>
Commit-Queue: Erik Chen <erikchen@chromium.org>

[modify] https://crrev.com/74d6c73918d17bf09c3dc0ee506fb5af8da58725/scripts/slave/recipes/chromium_trybot.expected/invalid_results.json
[modify] https://crrev.com/74d6c73918d17bf09c3dc0ee506fb5af8da58725/scripts/slave/recipe_modules/chromium_tests/tests/api/run_tests_on_tryserver.expected/enable_retry_with_patch_succeed_after_deapply.json
[modify] https://crrev.com/74d6c73918d17bf09c3dc0ee506fb5af8da58725/scripts/slave/recipe_modules/chromium_tests/tests/steps/local_gtest_test.py
[modify] https://crrev.com/74d6c73918d17bf09c3dc0ee506fb5af8da58725/scripts/slave/recipes/chromium_trybot.expected/swarmed_webkit_tests_unexpected_error.json
[modify] https://crrev.com/74d6c73918d17bf09c3dc0ee506fb5af8da58725/scripts/slave/recipes/chromium_trybot.expected/swarmed_webkit_tests_interrupted.json
[modify] https://crrev.com/74d6c73918d17bf09c3dc0ee506fb5af8da58725/scripts/slave/recipe_modules/chromium_tests/tests/steps/local_gtest_test.expected/android.json
[modify] https://crrev.com/74d6c73918d17bf09c3dc0ee506fb5af8da58725/scripts/slave/recipe_modules/chromium_tests/tests/steps/local_gtest_test.expected/retry.json
[modify] https://crrev.com/74d6c73918d17bf09c3dc0ee506fb5af8da58725/scripts/slave/recipe_modules/chromium_tests/steps.py
[modify] https://crrev.com/74d6c73918d17bf09c3dc0ee506fb5af8da58725/scripts/slave/recipes/chromium_trybot.expected/swarming_test_failure.json
[modify] https://crrev.com/74d6c73918d17bf09c3dc0ee506fb5af8da58725/scripts/slave/recipe_modules/chromium_tests/tests/steps/local_gtest_test.expected/basic.json
[modify] https://crrev.com/74d6c73918d17bf09c3dc0ee506fb5af8da58725/scripts/slave/recipe_modules/chromium_tests/tests/api/run_tests_on_tryserver.expected/basic.json
[modify] https://crrev.com/74d6c73918d17bf09c3dc0ee506fb5af8da58725/scripts/slave/recipes/chromium_trybot.expected/swarmed_layout_tests_too_many_failures_for_retcode.json

Labels: Infra-Platform-Test

Sign in to add a comment