Repository navigation
fix(docker-compose): Download v5.6.0 from GitHub with a stall timeout - #332
Merged
Merged
Conversation
Install docker compose v5.6.0 (latest) from docker/compose GitHub releases instead of the GCS mirror, which was pinned to v2.29.7. urlretrieve has no timeout, so a stalled download hung until the caller's timeout (10m in sentry CI). Downloads now use urlopen with a 15s connect/read timeout and 3 attempts with backoff, so a stalled download fails in ~48s worst case. The dependency zipball download gets the same timeout. Co-Authored-By: Joshua Li <14209781+joshuarli@users.noreply.github.com>
joshuarli
approved these changes
Oct 14, 2026
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit d5e3f93. Configure here.
…cess test The test still reported 2.29.7, so after the bump it no longer matched the pinned version and fell through to a real install_docker_compose download. Use MINIMUM_DOCKER_COMPOSE_VERSION and mock the installer so the test can never download.
joshuarli
added a commit
that referenced
this pull request
Oct 14, 2026
The version check required an exact match, so after the bump to v5.6.0 every developer with a different Compose (including Docker Desktop's bundled one) would have it replaced on their next devservices run. Treat MINIMUM_DOCKER_COMPOSE_VERSION as a real minimum (v2.29.7, the version devservices pinned until #332) and only install DOCKER_COMPOSE_INSTALL_VERSION (v5.6.0) when Compose is missing, unparseable or older than the minimum. Co-authored-by: sentry-junior[bot] <264270552+sentry-junior[bot]@users.noreply.github.com> Co-authored-by: Joshua Li <14209781+joshuarli@users.noreply.github.com>
3 tasks done
joshuarli
added a commit
to getsentry/sentry
that referenced
this pull request
Oct 14, 2026
Bumps `devservices` from 1.5.1 to 1.5.4 (`pyproject.toml` floor + `uv.lock`). ### What it brings in (devservices 1.5.1..1.5.4) - [devservices#332](getsentry/devservices#332): docker-compose is downloaded from docker/compose GitHub releases instead of the `storage.googleapis.com` mirror, with a 15s stall timeout and 3 attempts. A stalled download now fails in ~48s instead of burning the full 10m `devservices up` timeout (seen in [run 38623855049](https://github.com/getsentry/sentry/actions/runs/38623855049)). - [devservices#333](getsentry/devservices#333): any installed Compose >= 2.29.7 is accepted rather than forcing an exact version. The `ubuntu-24.04` runner ships Compose 2.38.2, so CI should skip the Compose download entirely. - #330: retries transient GitHub errors when downloading remote dependencies. - #329: resolves compose services concurrently. - #328: disables auto-enabled Sentry SDK integrations in devservices. ### Notes - The CI early-devservices path reads this version from `uv.lock`, so it picks up 1.5.4 automatically. - getsentry needs no separate PR: `bin/bump_sentry.py` copies this `uv.lock` into getsentry's `sentry-uv-lock` on the next sentry bump. - The `uv.lock` diff is only the devservices entry; the lock `revision` is left at 3. <!-- junior-request-attribution:start --> via @joshuarli. <!-- junior-request-attribution:end --> <!-- junior-session-footer:start --> <!-- junior-conversation-id:slack%3AC8V02RHC7%3A1791911755.006269 --> -- [View Junior Session](https://junior-prod.sentry.dev/conversations/slack%3AC8V02RHC7%3A1791911755.006269) [[Sentry]](https://sentry.sentry.io/explore/conversations/slack%3AC8V02RHC7%3A1791911755.006269/?project=4510944073809921) <!-- junior-session-footer:end --> Co-authored-by: sentry-junior[bot] <264270552+sentry-junior[bot]@users.noreply.github.com> Co-authored-by: Joshua Li <14209781+joshuarli@users.noreply.github.com>
3 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Sentry CI shards hung on the docker-compose download:
urlretrievehas no timeout, so a stalled connection to the GCS mirror spun until the caller'stimeout 10mkilleddevservices up(e.g. sentry run 38623855049,monolith-dbs test, exit 124). Another getsentry shard sat ~7m on the same download before the retry got through.Changes
2.29.7to5.6.0(latest) and download it fromdocker/composeGitHub releases. Thestorage.googleapis.com/sentry-dev-infra-assetsmirror is no longer used.install_binarynow downloads withurlopen(..., timeout=DOWNLOAD_TIMEOUT)(15s for connect and for each read, not the whole download) plus 3 attempts with 1s/2s backoff. A stalled download now fails in ~48s worst case instead of hanging. The retry warning includes the error.Compose v5 note: v5 skips 3/4 to avoid confusion with the old file-format versions. Its main breaking change is dropping the internal builder in favor of Bake, and devservices doesn't build images. Everyone will pick up the v5.6.0 download on their next
devservicesrun, because the version check is an exact match.Tested
pytest(394 passed),ruff,mypy.BinaryInstallErrorafter 48.1s.devservices up --mode backend-ciwith compose v5.6.0 on Docker 25.0.16: all services healthy in 33s, andstatus,logsanddownall work.sentry and getsentry will need their
devservicespin bumped after a release.via @joshuarli.
--
View Junior Session [Sentry]