Skip to content

[infra] reduce cirrus task dependencies#49454

Merged
fluttergithubbot merged 2 commits intoflutter:masterfrom
jonahwilliams:remove_task_dependencies
Jan 25, 2020
Merged

[infra] reduce cirrus task dependencies#49454
fluttergithubbot merged 2 commits intoflutter:masterfrom
jonahwilliams:remove_task_dependencies

Conversation

@jonahwilliams
Copy link
Copy Markdown
Contributor

@jonahwilliams jonahwilliams commented Jan 24, 2020

Description

Currently the deploy_gallery-* tasks depend on a large number of other cirrus tasks. The intention, I believe, is to avoid running these deployments on obviously failing builds.

Unfortunately cirrus infra is unstable, failing due to agents being killed or other issues that are not diagnosable via logs. When a parent task fails due to an infra issue, it also causes the child tasks to be cancelled. When the failed parent task is rerun, naturally the child task cannot be rerun until complete.

Since we have moved to a model where the build is considered red until 100% of previously failing tasks have passed, this behavior roughly doubles the outage time from a flaked test. If you conservatively assume each cirrus task takes 30 minutes to schedule and run, then a failure of one of the depends_on tasks would lead to approximately an hour of outage.

To reduce the outage to "only" half an hour, I propose removing all "depends_on" clauses except for analyze_linux/docs, which is faster than average and fairly stable.

@dnfield
Copy link
Copy Markdown
Contributor

dnfield commented Jan 24, 2020

I think part of the idea is that deploy may not test things that indicate a deploy should not be done.

Are these tasks actually deploying anything though? If not then this change should be fine.

Comment thread .cirrus.yml
Comment on lines -308 to -319
- framework_tests-widgets-linux
- framework_tests-libraries-linux
- framework_tests-misc-linux
- tool_tests-general-linux
- tool_tests-commands-linux
- tool_tests-integration-linux
- build_tests-linux
- hostonly_devicelab_tests-0-linux
- hostonly_devicelab_tests-1-linux
- hostonly_devicelab_tests-2-linux
- hostonly_devicelab_tests-3_last-linux
- firebase_test_lab_tests-linux
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there any way to make this conditional on what branch we're on?

Maybe even just making two separate tasks, one of which is always skipped where we actually deploy and has no deps, one of which is skipped when we don't deploy and has the deps?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not that I can see from looking in the logs

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Talked offline - it would be helpful to have a comment here explaining why we think this is safe - it doesn't actually upload on master, by the time it gets to dev it's been throughly tested, adding the dependencies greatly slows down CI

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated with comments, PTAL

@jonahwilliams
Copy link
Copy Markdown
Contributor Author

It doesn't look like we actually deploy on commits to master though:

https://github.com/flutter/flutter/blob/master/dev/bots/deploy_gallery.sh#L39

Copy link
Copy Markdown
Contributor

@dnfield dnfield left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@fluttergithubbot
Copy link
Copy Markdown
Contributor

This pull request is not suitable for automatic merging in its current state.

  • The status or check suite Cirrus CI has failed. Please fix the issues identified (or deflake) before re-applying this label.

@goderbauer goderbauer added the c: contributor-productivity Team-specific productivity, code health, technical debt. label Jan 25, 2020
@fluttergithubbot fluttergithubbot merged commit 20ace05 into flutter:master Jan 25, 2020
@github-actions github-actions Bot locked as resolved and limited conversation to collaborators Aug 2, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

c: contributor-productivity Team-specific productivity, code health, technical debt.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants