Closed Bug 1696041 Opened 4 years ago Closed 4 years ago

Investigate removing `fission-run-on-projects` and `webrender-run-on-projects`

Categories

(Firefox Build System :: Task Configuration, task)

task

Tracking

(firefox89 fixed)

RESOLVED FIXED
89 Branch
Tracking Status
firefox89 --- fixed

People

(Reporter: ahal, Assigned: ahal)

References

Details

Attachments

(18 files, 1 obsolete file)

48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
416.73 KB, patch
Details | Diff | Splinter Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review
48 bytes, text/x-phabricator-request
Details | Review

The fission-run-on-projects key was a hack I implemented to allow us to rapidly meet the fission team's needs when fission was still nascent. Since the tasks it supported were very sporadic, we ended up with a ton of by-variant statements all over the test configs. Duplicating the run-on-projects key for fission ended up being less complicated at the time.

Now that fission runs pretty much everywhere, I think the key is causing more trouble than its solving. We should attempt to remove it and go back to using by-variant statements when fission needs to deviate from non-fission.

At some point, someone added webrender-run-on-projects as well. I'm not sure if it was actually needed, or if it was a cargo cult. We should check this assumption as well.

I think this should be higher priority- we have added 2 new variants in the last 2 months, so I would prefer we have less footguns for people to add.

Assignee: nobody → ahal
Status: NEW → ASSIGNED

This will allow us to use 'by-variant' in the run-on-projects key.

This means that any task that doesn't set 'fission-run-on-projects' has it
default to []. Instead I'd like tasks that omit this key to default to using
'run-on-projects' (which means we can solve this bug piece by piece rather than
try to land it all at once).

The full taskgraph of this revision is identical to the previous revision.

Depends on D107962

The full taskgraph from this revision is identical to the previous revision.

Depends on D107963

The full taskgraph on this revision is identical to the previous revision.

Depends on D107965

The full taskgraph on this revision is identical to the previous revision.

Depends on D107966

Attached file Full taskgraph diff of entire stack (obsolete) —

This is a diff of the entire stack. It's functionally equivalent to the baseline. The only difference is some command line flag re-ordering caused by moving the ccov transform a little down in the ordering.

Attachment #9208314 - Attachment is patch: false
Attachment #9208314 - Attachment is obsolete: true

Fixed colour formatting.

Attachment #9208315 - Attachment is patch: true
Keywords: leave-open

This changes the taskgraph slightly for
'test-macosx1014-64-devedition-qr/opt-test-verify-fis-e10s' by removing
'integration' from its 'run-on-projects' key.

The reason is that the 'test-verify' tasks has 'built-projects-only: true'.
This key ensures that the task can only ever run when the build is already
running (so it doesn't cause builds to get pulled in).

Turns out the 'built-projects-only' feature was erroneously ignoring
'fission-run-on-projects', so this small change in behaviour is actually
desired.

Depends on D107967

Pushed by ahalberstadt@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/268d317bac31 [taskgraph] Handle test transforms that rely on run-on-projects after splitting variants r=taskgraph-reviewers,jmaher https://hg.mozilla.org/integration/autoland/rev/ac54e90586f7 [taskgraph] Remove 'fission-run-on-projects' default in variant configs r=taskgraph-reviewers,jmaher https://hg.mozilla.org/integration/autoland/rev/0f5eaa4e72c1 [ci] Remove 'fission-run-on-projects' from reftest.yml r=taskgraph-reviewers,jmaher https://hg.mozilla.org/integration/autoland/rev/87bd024d9028 [ci] Remove 'fission-run-on-projects' from xpcshell.yml r=taskgraph-reviewers,jmaher https://hg.mozilla.org/integration/autoland/rev/50e961f7a2c0 [ci] Remove 'fission-run-on-projects' from marionette.yml r=taskgraph-reviewers,jmaher https://hg.mozilla.org/integration/autoland/rev/68501658a1e6 [ci] Remove 'fission-run-on-projects' from awsy.yml r=taskgraph-reviewers,jmaher https://hg.mozilla.org/integration/autoland/rev/5b3ed85eaf66 [ci] Remove 'fission-run-on-projects' from misc.yml, r=jmaher

These tasks all vary in their 'fission-run-on-projects'. So while this looks
like more complexity in isolation, it will greatly simplify the configs (and
the diff) later on in the stack.

Pushed by ahalberstadt@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/f2e09726b5ad [ci] move 'run-on-projects' out of job-defaults in mochitest.yml, r=jmaher https://hg.mozilla.org/integration/autoland/rev/a9f1fde85bcf [ci] Remove 'fission-run-on-projects' from mochitest.yml, r=jmaher
Pushed by ahalberstadt@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/7c67b331a77f [ci] Remove 'fission-run-on-projects' from talos.yml, r=jmaher https://hg.mozilla.org/integration/autoland/rev/5ae1914f0dba [ci] Remove 'fission-run-on-projects' from web-platform.yml, r=jmaher

We are deprecating the 'fission-run-on-projects' and 'fission-tier' keys in
favour of more familiar 'by-variant' keys. While the diff here might look
confusing, it's designed to produce an identical taskgraph as before. So
shouldn't cause any changes in CI.

Some tasks need to use the 'by-variant' key here, so anything that requires a 'tier' needs
to come after we split the variants.

The full taskgraph is identical before / after this patch.

Pushed by ahalberstadt@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/9e5919e82bb2 [ci] Remove 'fission-run-on-projects' from raptor.yml, r=perftest-reviewers,sparky https://hg.mozilla.org/integration/autoland/rev/8c24539eb68a [taskgraph] Ensure we don't rely on 'tier' key in raptor.py transforms, r=perftest-reviewers,sparky

This change causes a slight change in the taskgraph (see phabricator for diff).
Essentially it changes the optimization for 'browsertime-tp6-firefox' tasks
from 'skip-unless-expanded' to 'skip-unless-backstop'. This change happened
because the 'apply_raptor_tier_optimization' transform did not take
'fission-tier' into account. Now that 'fission-tier' has merged with 'tier',
these tasks are being modified by this transform. In my view this change is a
desired outcome.

The full taskgraph before / after this change is identical.

Depends on D109662

This change causes a slight change in the taskgraph. Essentially it changes the
optimization for some fission raptor tasks from 'skip-unless-expanded' to
'skip-unless-backstop'. This change happened because the
'apply_raptor_tier_optimization' transform did not take 'fission-tier' into
account. Now that 'fission-tier' has merged with 'tier', these tasks are being
modified by this transform. In my view this change is a desired outcome.

Depends on D109663

See Also: → 1700774
Keywords: leave-open
Pushed by ahalberstadt@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/1c4906861110 [ci] Remove 'fission-tier' attribute from browsertime-desktop.yml, r=perftest-reviewers,sparky https://hg.mozilla.org/integration/autoland/rev/7699e68d6822 [ci] Remove 'fission-run-on-projects' from browsertime-desktop.yml, r=perftest-reviewers,sparky https://hg.mozilla.org/integration/autoland/rev/d380f63d1926 [ci] Remove 'fission-tier' from raptor.yml, r=perftest-reviewers,sparky https://hg.mozilla.org/integration/autoland/rev/a0b814900c36 [taskgraph] Drop 'fission-run-on-projects' and 'fission-tier' keys in test kind, r=taskgraph-reviewers,jmaher

Backed out for causing gecko decision task failures

backout: https://hg.mozilla.org/integration/autoland/rev/2d6f2d37409866e55cbbf11dc3181a0b2676016a

push: https://treeherder.mozilla.org/jobs?repo=autoland&revision=a0b814900c3676410d090d20a2cf131f3d394f86

failure log: https://treeherder.mozilla.org/logviewer?job_id=334586106&repo=autoland&lineNumber=1599

[task 2021-03-26T18:43:03.750Z] Error loading tasks for kind test:
[task 2021-03-26T18:43:03.751Z] PERFHERDER_DATA: {"framework": {"name": "build_metrics"}, "suites": [{"name": "bugbug_push_schedules_time", "value": 0.08206899700007853, "lowerIsBetter": true, "shouldAlert": false, "subtests": []}, {"name": "bugbug_push_schedules_retries", "value": 0, "lowerIsBetter": true, "shouldAlert": false, "subtests": []}]}
[task 2021-03-26T18:43:03.751Z] Traceback (most recent call last):
[task 2021-03-26T18:43:03.751Z]   File "/builds/worker/checkouts/gecko/taskcluster/taskgraph/util/schema.py", line 27, in validate_schema
[task 2021-03-26T18:43:03.751Z]     schema(obj)
[task 2021-03-26T18:43:03.751Z]   File "/builds/worker/checkouts/gecko/third_party/python/voluptuous/voluptuous/schema_builder.py", line 267, in __call__
[task 2021-03-26T18:43:03.751Z]     return self._compiled([], data)
[task 2021-03-26T18:43:03.751Z]   File "/builds/worker/checkouts/gecko/third_party/python/voluptuous/voluptuous/schema_builder.py", line 589, in validate_dict
[task 2021-03-26T18:43:03.751Z]     return base_validate(path, iteritems(data), out)
[task 2021-03-26T18:43:03.751Z]   File "/builds/worker/checkouts/gecko/third_party/python/voluptuous/voluptuous/schema_builder.py", line 427, in validate_mapping
[task 2021-03-26T18:43:03.751Z]     raise er.MultipleInvalid(errors)
[task 2021-03-26T18:43:03.751Z] voluptuous.error.MultipleInvalid: expected a list @ data['run-on-projects']['by-variant']['default']
[task 2021-03-26T18:43:03.751Z] 
[..]
[task 2021-03-26T18:43:03.752Z]   File "/builds/worker/checkouts/gecko/taskcluster/taskgraph/util/schema.py", line 32, in validate_schema
[task 2021-03-26T18:43:03.752Z]     raise Exception("\n".join(msg) + "\n" + pprint.pformat(obj))
[task 2021-03-26T18:43:03.752Z] Exception: In unknown task:
[task 2021-03-26T18:43:03.752Z] expected a list @ data['run-on-projects']['by-variant']['default']
[task 2021-03-26T18:43:03.752Z] {'allow-software-gl-layers': False,
[task 2021-03-26T18:43:03.752Z]  'app': 'firefox',
[task 2021-03-26T18:43:03.752Z]  'attributes': {'retrigger': True},
[task 2021-03-26T18:43:03.752Z]  'build-attributes': {'accepted-mar-channel-ids': 'firefox-mozilla-central',
[task 2021-03-26T18:43:03.752Z]                       'always_target': False,
[task 2021-03-26T18:43:03.752Z]                       'build_platform': 'linux64',
[task 2021-03-26T18:43:03.752Z]                       'build_type': 'opt',
[task 2021-03-26T18:43:03.752Z]                       'enable-build-signing': True,
[task 2021-03-26T18:43:03.752Z]                       'kind': 'build',
[task 2021-03-26T18:43:03.752Z]                       'mar-channel-id': 'firefox-mozilla-central',
[task 2021-03-26T18:43:03.752Z]                       'run_on_projects': ['integration'],
[task 2021-03-26T18:43:03.752Z]                       'shipping_phase': None,
[task 2021-03-26T18:43:03.752Z]                       'shipping_product': None},
[task 2021-03-26T18:43:03.752Z]  'build-label': 'build-linux64/opt',
[task 2021-03-26T18:43:03.752Z]  'build-platform': 'linux64/opt',
[task 2021-03-26T18:43:03.752Z]                       'mar-channel-id': 'firefox-mozilla-central',
[task 2021-03-26T18:43:03.752Z]                       'run_on_projects': ['integration'],
[task 2021-03-26T18:43:03.752Z]                       'shipping_phase': None,
[task 2021-03-26T18:43:03.752Z]                       'shipping_product': None},
[task 2021-03-26T18:43:03.752Z]  'build-label': 'build-linux64/opt',
[task 2021-03-26T18:43:03.752Z]  'build-platform': 'linux64/opt',
[task 2021-03-26T18:43:03.752Z]  'build-signing-label': 'build-signing-linux64/opt',
[task 2021-03-26T18:43:03.752Z]  'built-projects-only': False,
[task 2021-03-26T18:43:03.752Z]  'checkout': False,
[task 2021-03-26T18:43:03.752Z]  'chunks': 1,
Flags: needinfo?(ahal)
Pushed by ahalberstadt@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/45fd21a641f4 [ci] Remove 'fission-tier' attribute from browsertime-desktop.yml, r=perftest-reviewers,sparky https://hg.mozilla.org/integration/autoland/rev/13db75ac9ace [ci] Remove 'fission-run-on-projects' from browsertime-desktop.yml, r=perftest-reviewers,sparky https://hg.mozilla.org/integration/autoland/rev/d226c414af12 [ci] Remove 'fission-tier' from raptor.yml, r=perftest-reviewers,sparky https://hg.mozilla.org/integration/autoland/rev/f4789d603967 [taskgraph] Drop 'fission-run-on-projects' and 'fission-tier' keys in test kind, r=taskgraph-reviewers,jmaher
Regressions: 1701436
Flags: needinfo?(ahal)
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: