New issue
Advanced search Search tips

Issue 771438 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Apr 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

GitCL.latest_try_jobs doesn't filter properly

Project Member Reported by skobes@chromium.org, Oct 4 2017

Issue description

This function is used by "webkit-patch rebaseline-cl" and "wpt-update-expectations" (and the upcoming "try-flag").

It calls BuildBot.filter_latest_builds with a list of Build objects.  This tries to pick the most recent build for each builder by looking at the build_number field.

Unfortunately build_number has a mix of real build numbers and swarming task IDs.  For example "git cl try-results" (which provides the raw data for latest_try_jobs) has:

Failures:
  linux_chromium_rel_ng http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_rel_ng/builds/556875
  linux_chromium_rel_ng http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_rel_ng/builds/557523
  linux_chromium_rel_ng https://ci.chromium.org/swarming/task/38f8be0659d31310?server=chromium-swarm.appspot.com
  linux_chromium_rel_ng https://ci.chromium.org/swarming/task/38f8eb5194841410?server=chromium-swarm.appspot.com
  linux_chromium_rel_ng https://ci.chromium.org/swarming/task/38f91795d894aa10?server=chromium-swarm.appspot.com
  linux_chromium_rel_ng https://ci.chromium.org/swarming/task/38fcbef1ec03f310?server=chromium-swarm.appspot.com
  linux_chromium_rel_ng https://ci.chromium.org/swarming/task/38fcef580e382910?server=chromium-swarm.appspot.com
  linux_chromium_rel_ng https://ci.chromium.org/swarming/task/38fd17d2dd55c910?server=chromium-swarm.appspot.com

The first two are the real builds, the rest are swarming tasks that were spawned by those builds.  The latest build is 557523 but GitCL.latest_try_jobs gives me 38fd17d2dd55c910.

Obviously it doesn't make sense to compare the build number with the task ID.  I'm not sure it even makes sense to return swarming tasks from "git cl try-results".  Shouldn't these tools only be looking at results/baselines from the real builds, that the builder produced by merging results from the swarming tasks?

OTOH we added parsing logic for the /task/ URLs in http://crrev.com/c/562561 so maybe I'm missing something.  Quinten could you clarify?
 
Status: Available (was: Unconfirmed)
I might have been misunderstanding things when I added http://crrev.com/c/562561.

I was thinking that the swarming/task URLs in returned by git cl try-results are full builds, not sub-tasks spawned by other builds -- and that in the future at some point, builds with numbers will be replaced by swarming task builds.

But even given that, it doesn't make sense to compare numbers and swarming task IDs, so this is indeed broken.
Project Member

Comment 3 by bugdroid1@chromium.org, Oct 5 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4aa01c57644ad9de00d481dddb0ce519b9ba3950

commit 4aa01c57644ad9de00d481dddb0ce519b9ba3950
Author: Steve Kobes <skobes@chromium.org>
Date: Thu Oct 05 03:53:10 2017

Ignore Swarming tasks in GitCL.latest_try_jobs.

Swarming task IDs aren't comparable to BuildBot build numbers.  We'll need
something smarter in a post-BuildBot world, but this gets things working for
now.

Bug: 755401,  771438 
Change-Id: Ifa13bc95c3a7527d7272fa3f35cbd385328aa945
Reviewed-on: https://chromium-review.googlesource.com/701916
Commit-Queue: Steve Kobes <skobes@chromium.org>
Reviewed-by: Quinten Yearsley <qyearsley@chromium.org>
Cr-Commit-Position: refs/heads/master@{#506632}
[modify] https://crrev.com/4aa01c57644ad9de00d481dddb0ce519b9ba3950/third_party/WebKit/Tools/Scripts/webkitpy/common/net/git_cl.py
[modify] https://crrev.com/4aa01c57644ad9de00d481dddb0ce519b9ba3950/third_party/WebKit/Tools/Scripts/webkitpy/common/net/git_cl_unittest.py

It just occurred to me that none of those swarming tasks are child tasks -- they're all builds for linux_chromium_rel_ng, and you can see the LUCI ones by clicking "Show experimental tryjobs" in the Gerrit UI.
Oh that's interesting.  I started the builds on http://crrev.com/c/696488 by running:

git cl try -b linux_chromium_rel_ng -b mac_chromium_rel_ng -b win_chromium_rel_ng

I ran this command twice (because the first set was 2/3 purple).  I guess this started the LUCI builds along with the regular ones?  Except there are three times as many for some reason?
Yep! And I think it ran three times as many because of the regular CQ failure retry rule.
Components: -Infra Blink>Infra Infra>Client>Chrome
Note, the way that this is related to git cl is: the GitCL interface class in the Blink python code (webkitpy.common.net.git_cl module) gets a try job results by invoking git cl try-results, and then it sorts those results. Currently `git cl try-results --json` outputs a subset of the information it gets from buildbucket, including URL but not timestamps.

I think we want to modify git cl try-results --json to also output some other info like timestamps, and then it will be easier to change the webkitpy GitCL class to filter only the latest jobs for a given builder.
Project Member

Comment 9 by bugdroid1@chromium.org, Nov 29 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a1270f5866803eee25abdc54a24ce22bdea00c38

commit a1270f5866803eee25abdc54a24ce22bdea00c38
Author: Steve Kobes <skobes@chromium.org>
Date: Wed Nov 29 01:58:47 2017

Ignore ci.chromium.org jobs in GitCL.latest_try_jobs.

Bug:  785178 , 771438 
Change-Id: I8921095df30541830d45b959892adcc182598e5b
Reviewed-on: https://chromium-review.googlesource.com/795350
Reviewed-by: Quinten Yearsley <qyearsley@chromium.org>
Commit-Queue: Steve Kobes <skobes@chromium.org>
Cr-Commit-Position: refs/heads/master@{#519955}
[modify] https://crrev.com/a1270f5866803eee25abdc54a24ce22bdea00c38/third_party/WebKit/Tools/Scripts/webkitpy/common/net/git_cl.py

Cc: robertma@chromium.org
 Issue 785178  has been merged into this issue.
The change in comment 9 filters a new URL schema for swarming tasks, example:

https://ci.chromium.org/p/chromium/builders/luci.chromium.try/linux_chromium_rel_ng/18392
Project Member

Comment 12 by bugdroid1@chromium.org, Dec 2 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d7b8a019ea3b83271091e842ad1876f40d77b213

commit d7b8a019ea3b83271091e842ad1876f40d77b213
Author: Quinten Yearsley <qyearsley@chromium.org>
Date: Sat Dec 02 01:20:49 2017

Parse build numbers from ci.chromium.org build URLs

As of yesterday, LUCI UI is the new default for Chromium
(https://groups.google.com/a/google.com/forum/#!topic/chops-team/dYJaBL-b46U),
and this means that in the future, we can expect build pages to generally have
URLs with ci.chromium.org, e.g.
"https://ci.chromium.org/buildbot/tryserver.blink/mac10.10_blink_rel/4830".

As far as I understand, LUCI builds with build numbers will behave
basically the same as Buildbot builds with build numbers;
layout test results would be archived to the same place, etc.

Bug:  771438 
Change-Id: I42d498caa3a455115e05a50d5f7f69046010530e
Reviewed-on: https://chromium-review.googlesource.com/803615
Reviewed-by: Robert Ma <robertma@chromium.org>
Commit-Queue: Quinten Yearsley <qyearsley@chromium.org>
Cr-Commit-Position: refs/heads/master@{#521168}
[modify] https://crrev.com/d7b8a019ea3b83271091e842ad1876f40d77b213/third_party/WebKit/Tools/Scripts/webkitpy/common/net/git_cl.py
[modify] https://crrev.com/d7b8a019ea3b83271091e842ad1876f40d77b213/third_party/WebKit/Tools/Scripts/webkitpy/common/net/git_cl_unittest.py

Blocking: -755401
With the workaround in r506632, this no longer blocks try-flag.
Owner: qyears...@chromium.org
Status: Assigned (was: Available)
Just wanted to check if there's anything left to do here, or if the remaining work is still P2.
Status: Fixed (was: Assigned)
As far as I remember now, I don't think there's more to do here currently.

Sign in to add a comment