Skip to content

Remove unused "install dependencies" step from Evergreen config - #2095

Open
GromNaN wants to merge 1 commit into
mongodb:v1.21from
GromNaN:phpc-evg-install-deps
Open

Remove unused "install dependencies" step from Evergreen config#2095
GromNaN wants to merge 1 commit into
mongodb:v1.21from
GromNaN:phpc-evg-install-deps

Conversation

@GromNaN

@GromNaN GromNaN commented Sep 4, 2026

Copy link
Copy Markdown
Member

Build tasks on Ubuntu variants repeatedly fail with Hit exec timeout (10m0s), with the install dependencies step alone taking over 9 minutes:

[16:07:41] W: http://ppa.launchpad.net/git-core/ppa/... Key is stored in legacy trusted.gpg keyring
[16:15:36] Hit exec timeout (10m0s).
Command 'shell.exec' in function 'install dependencies' ... stopped early: context canceled
Finished command ... in 9m4.360644545s

The step runs drivers-evergreen-tools/.evergreen/install-dependencies.sh, which only does something on two platforms:

  • linux-ubuntu*: apt-get update then apt-get -qqy -o DPkg::Lock::Timeout=-1 install awscli
  • sunos*: pkgutil -i sasl_dev

Every other platform just echoes a message, which is why only Ubuntu hosts are affected.

Neither dependency is needed in this project:

  • The aws CLI is never invoked anywhere in .evergreen/. S3 uploads and downloads use the native s3.put and s3.get commands, role assumption uses ec2.assume_role, and the only DET script we call that touches AWS, secrets_handling/setup-secrets.sh, uses the boto3 virtualenv instead of the CLI.
  • There is no Solaris build variant.

The Ubuntu apt call passes DPkg::Lock::Timeout=-1, so it waits forever for the dpkg lock while unattended-upgrades runs on a freshly booted host. The task group sets setup_task_timeout_secs: 1800, but the global exec_timeout_secs: 600 covers the whole task including setup, so the task is killed before compiling anything.

This is not specific to one PHP version. Within build-all-php (max_hosts: 4), whichever task lands on a fresh host pays the lock wait, while the others find a warm apt cache.

This removes the function and its two call sites. evergreen validate passes and the generated config does not reference the function.

The step ran drivers-evergreen-tools install-dependencies.sh, which only
does something on Ubuntu (apt-get install awscli) and Solaris (sasl_dev).
Neither is needed here: the aws CLI is never invoked, S3 and role
assumption go through the native s3.put/s3.get and ec2.assume_role
commands, setup-secrets.sh uses the boto3 virtualenv, and there is no
Solaris variant.

On Ubuntu the apt call uses DPkg::Lock::Timeout=-1, so it waits forever
on the dpkg lock while unattended-upgrades runs. Build tasks were
spending up to 9 minutes there and hitting the 10 minute
exec_timeout_secs before compiling anything.
@GromNaN
GromNaN requested a review from a team as a code owner September 4, 2026 19:47
@GromNaN
GromNaN requested review from paulinevos and a lite review from Copilot and removed request for a team and Copilot September 4, 2026 19:47
@GromNaN

GromNaN commented Sep 10, 2026

Copy link
Copy Markdown
Member Author

aws-cli might be necessary for mongodb-labs/drivers-evergreen-tools#840.

Answer: no, the implementation uses python+boto3.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants