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

Issue 712408 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 0
Type: Bug



Sign in to add a comment

Some steps are failing but the whole build on CQ bots is green

Project Member Reported by nedngu...@google.com, Apr 17 2017

Issue description

https://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_ng/builds/423967

This has lead to me landing https://codereview.chromium.org/2821663002/ which break the build (the CL was reverted).

This is P0 IMO since people can keep landing breakage CL
 

Comment 1 by iannu...@google.com, Apr 17 2017

Cc: phajdan.jr@chromium.org
+phajdan.jr
Cc: jbudorick@chromium.org
+jbudorick
Cc: no...@chromium.org
cc-ing current trooper.

Comment 4 by kbr@chromium.org, Apr 18 2017

Something seems pretty broken in this area. I can't imagine that tryjobs which break any IsolatedScriptTest type steps are broken.

Not sure whether IsolatedScriptTest obeys all of the contracts of recipes in handling retries without the patch.

This tryjob:
https://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_ng/builds/423967

contained failing steps but the overall build was said to have succeeded.

Owner: jbudorick@chromium.org
Status: Started (was: Untriaged)
I'll take this for now, as martiniss@ and I suspect it may be related to my merge change from last week. My guess would be that this is specific to steps that don't emit any test failures.
Cc: tansell@chromium.org
... though this could also be some of the recent result validation changes in chromium_tests/steps.py. Still looking.
Reproduced in simulation tests w/ chromium_trybot only: https://chromium-review.googlesource.com/c/479932/

Investigating + working on a fix.
This has multiple failing steps - why is the whole thing marked as passing? What logic is ignoring the failing steps?
So what's happening here is:

-- outside of the recipe
 1) test in question fails immediately, with no JSON output
 2) the standard isolated_script merge emits an empty JSON given that lack of JSON output
 3) collect_cmd exits with a nonzero exit code

-- back in the recipe
 4) SwarmingIsolatedScriptTest does results validation (https://codesearch.chromium.org/chromium/build/scripts/slave/recipe_modules/chromium_tests/steps.py?rcl=e1a82b354acb97dc2156a4eeb20b54886fac18fd&l=1502) and winds up with valid results and no failures (because there are no results)
 5) (speculative) api.test_utils.run_tests catches the StepFailure and adds it to its list of failed_tests
 6) api.test_utils.run_tests_with_patch doesn't use the list of failed_tests returned by api.test_utils.run_tests. Instead, it does its own failure detection by checking (1) if valid is True and (2) if failures are empty. Notably, this ignores the exit code.

The patchset I posted changes the validate_task_results logic in SwarmingIsolatedScriptTest to make sure that tests in such scenarios are marked as invalid. I think that changing the failure detection in api.test_utils.run_tests_with_patch could also be a plausible if broader fix.

Comment 11 by kbr@chromium.org, Apr 18 2017

Thanks John for getting to the bottom of this.

If this is a recent regression, could you link this bug to the other one where the original change was made? Thanks.

Components: -Infra Infra>Client>Chrome
Status: Fixed (was: Started)
#11: This was likely a regression I introduced with the isolated_script merge rework back in https://chromium-review.googlesource.com/c/441391/.

Sign in to add a comment