Closed Bug 1301720 Opened 3 years ago Closed 3 years ago

Ensure index routes match between BB and TC

Categories

(Firefox Build System :: Task Configuration, task)

task
Not set

Tracking

(Not tracked)

RESOLVED FIXED
mozilla51

People

(Reporter: dustin, Assigned: dustin)

References

Details

Attachments

(3 files)

BB routes are generated in-tree by mozharness, while TC routes are generated by the decision task.  They should match, and we've come up with a few interim measures to make sure that's the case:


  1.  New route prefixes (maybe something like gecko.v2.revision.<revision> without the intervening branch) should appear at the same time in both BB/TC
  2.  Porting jobs from BB to TC should generate the same index routes, and this is something most people are unlikely to think about or worry about.


For the first, the plan is to modify routes.json such that both tools can use it (so, same variable names), and pull that data into both tools.  I'll probably change to something other than JSON so I can include comments, and those comments will include a note that once BB is gone, the file can be removed and its functionality folded into task.py.

For the second, the plan is to include a whitelist of v2 job names in task.py, and if a job comes through that's not on the whitelist, throw an exception sugesting double-checking that the index routes haven't changed from what buildbot generates, and assuming that checks out to add the new job-name to the whitelist.  Again, the whitelist can be deleted once we're completely migrated and will have comments to that effect.
Blocks: 1250700
Comment on attachment 8791996 [details]
Bug 1301720: whitelist gecko-v2 job names;

https://reviewboard.mozilla.org/r/79262/#review77812

Looks good! Just a question based on one of the comments.

::: taskcluster/taskgraph/transforms/gecko_v2_whitelist.py:8
(Diff revision 1)
> +# file, You can obtain one at http://mozilla.org/MPL/2.0/.
> +"""
> +This file contains a whitelist of gecko.v2 index route job names.  The intent
> +of this whitelist is to raise an alarm when new jobs are added.  If those jobs
> +already run in Buildbot, then it's important that the generated index routes
> +match (and that only one of Buildbot and TaskCluster be tier-1 at any time).

We don't actually do anything here to make sure only one of them can be tier-1 at a time, right? I think that when we promote a Taskcluster build to tier-1, there is some slight overlap until Buildbot builds are turned off. So both systems would be publishing the artifacts to the same routes, and I think with the same rank for a short window. Since they should be producing the same artifacts (except in artifact names), this shouldn't be a problem, just redundant.

I don't see that we limit only one to tier-1 here, but I wanted to double-check that you weren't planning to add it. I think it's too hard/annoying to coordinate bumping a TC job to tier-1 while simultaneously disabling a buildbot job.
Attachment #8791996 - Flags: review?(mshal) → review+
Comment on attachment 8791997 [details]
Bug 1301720: ensure Buildbot and TaskCluster v2 routes match;

https://reviewboard.mozilla.org/r/79264/#review77814

Why'd you elect to do a check rather than just share a routes.py file? In either case it should be temporary, so I'm not too concerned. Just adds a slight annoyance for bug 1250700.
Attachment #8791997 - Flags: review?(mshal) → review+
Comment on attachment 8791996 [details]
Bug 1301720: whitelist gecko-v2 job names;

https://reviewboard.mozilla.org/r/79262/#review77812

> We don't actually do anything here to make sure only one of them can be tier-1 at a time, right? I think that when we promote a Taskcluster build to tier-1, there is some slight overlap until Buildbot builds are turned off. So both systems would be publishing the artifacts to the same routes, and I think with the same rank for a short window. Since they should be producing the same artifacts (except in artifact names), this shouldn't be a problem, just redundant.
> 
> I don't see that we limit only one to tier-1 here, but I wanted to double-check that you weren't planning to add it. I think it's too hard/annoying to coordinate bumping a TC job to tier-1 while simultaneously disabling a buildbot job.

Right -- I don't know how we'd ensure that since the notion of "time" differs (version control revision for in-tree code, active Buildbot configuration for Buildbot).  But hopefully this comment encourages people to think about it :)
Comment on attachment 8791997 [details]
Bug 1301720: ensure Buildbot and TaskCluster v2 routes match;

https://reviewboard.mozilla.org/r/79264/#review77814

There were just too many things to go wrong for sharing the file.  The slight annoyance is one more hunk in a diff, so I'll owe you a sip of beer for that ;)
Pushed by dmitchell@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/6bb882a439ac
whitelist gecko-v2 job names; r=mshal
https://hg.mozilla.org/integration/autoland/rev/a76f19132914
ensure Buildbot and TaskCluster v2 routes match; r=mshal
Attached patch lint.patchSplinter Review
Attachment #8792172 - Flags: review?(mshal)
Attachment #8792172 - Flags: review?(mshal) → review+
Product: TaskCluster → Firefox Build System
You need to log in before you can comment on or make changes to this bug.