GitCL.latest_try_jobs doesn't filter properly |
||||
Issue descriptionThis 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?
,
Oct 4 2017
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.
,
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
,
Oct 5 2017
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.
,
Oct 5 2017
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?
,
Oct 5 2017
Yep! And I think it ran three times as many because of the regular CQ failure retry rule.
,
Oct 10 2017
,
Oct 10 2017
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.
,
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
,
Nov 30 2017
,
Nov 30 2017
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
,
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
,
Apr 3 2018
Just wanted to check if there's anything left to do here, or if the remaining work is still P2.
,
Apr 23 2018
As far as I remember now, I don't think there's more to do here currently. |
||||
►
Sign in to add a comment |
||||
Comment 1 by skobes@chromium.org
, Oct 4 2017