Skip to content

[ci] Improve apt reliability #24918

Description

@tyler-yankee

Is your feature request related to a problem? Please describe.

The occasional nightly job failure caused by apt download issues has become mostly expected at this point. There have been a few times in the last year+ where EC2's apt mirror is completely unavailable, causing substantial downtime for a large portion of our infrastructure.

The sources list for an unprovisioned Noble x86_64 image used by drake-ci currently only uses http://us-east-1.ec2.archive.ubuntu.com/ubuntu/.

Describe the solution you'd like

We should consider backing that with something like Canonical's http://archive.ubuntu.com/ubuntu/, or another mirror if folks have ideas/preference, to improve download reliability and avoid infrastructure meltdowns.

Describe alternatives you've considered

Alternatively, we could:

  • reduce our footprint of unprovisioned jobs, but some amount of these will always be necessary.
  • back up the debs we need on drake-mirror.csail.mit.edu. This seems like a lot of extra maintenance work and infra, doing so per architecture and version we support. The added maintenance also further locks us into Ubuntu's ecosystem and makes it harder to potentially support non-Ubuntu Linux in the long-term future.

Additional context

(1) Regarding implementation details, this note is atop the sources list file:

## Note, this file is written by cloud-init on first boot of an instance
## modifications made here will not survive a re-bundle.
##
## If you wish to make changes you can:
## a.) add 'apt_preserve_sources_list: true' to /etc/cloud/cloud.cfg
##     or do the same in user-data
## b.) add supplemental sources in /etc/apt/sources.list.d
## c.) make changes to template file
##      /etc/cloud/templates/sources.list.ubuntu.deb822.tmpl
##

Likely this change would be baked into our unprovisioned images via ami_init_script.

(2) Once the initial change is in for drake-ci, we should consider extending it to drake's wheel builder for the apt downloads it manages via Docker separately.

(3) There is a side bug where when a job fails during apt downloads, the buildcop emails don't go out, due to the timing of how/when the RESULT file of the build is written.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions