Skip to content

fix: don't wait for edxapp health before syncing requirements - #238

Merged
naincy128 merged 1 commit into
masterfrom
fix/lms-provision-stale-image-wait
Nov 6, 2026
Merged

naincy128 merged 1 commit into
masterfrom
fix/lms-provision-stale-image-wait

Conversation

@naincy128

@naincy128 naincy128 commented Nov 6, 2026 •

Copy link
Copy Markdown
Contributor

Problem

Provisioning tests failed for every *+lms job (e.g. run 42019632992) with:

docker compose up -d --wait --no-deps lms
container edx.devstack.lms is unhealthy

Root cause

  • edxops/lms-dev:latest is built nightly (04:00 UTC, Mon–Fri) from edx/edx-platform@release-ulmo requirements, while CI bind-mounts a fresh edx-platform checkout over it.
  • edx/edx-platform 75694d42f (merged 2026-11-05 10:12 UTC) made manage.py import openedx_filters.management.filters and bumped openedx-filters to >=3.16.0. The image built earlier that day still had 3.14.0, so runserver crashed on import and /heartbeat never responded.
  • provision-lms.sh already installs requirements/edx/base.txt from the checkout, which would fix that mismatch, but since feat: make dev.up wait until services are actually running #229 (4079ef3) it runs up --wait before that step, so provisioning fails first.

Same devstack commit (88787c5) passed on 2026-11-04 (LMS healthy in ~22s); the only difference on 11-05 was the new image digest plus the new edx-platform commit.

Fix

  • Start lms/cms without --wait (we only need the containers running to exec into them).
  • After installing requirements and restarting, run docker compose up -d --wait --no-deps $app so provisioning still fails fast if the devserver can't actually serve, which keeps what feat: make dev.up wait until services are actually running #229 was for.

provision-lms.sh started lms/cms with `docker compose up --wait` before
installing requirements from the bind-mounted edx-platform checkout.
The edxapp images are built nightly, so when edx-platform merges code
that needs a newer package (e.g. manage.py importing
openedx_filters.management.filters, which needs openedx-filters>=3.16.0),
runserver crashes on import, the container never becomes healthy, and
provisioning fails before reaching the step that would install the
missing package.

Start the containers without --wait (exec only needs them running), and
wait for health only after requirements are installed and the
containers restarted.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@naincy128
naincy128 merged commit dcfdd3d into master Nov 6, 2026
19 checks passed
@naincy128
naincy128 deleted the fix/lms-provision-stale-image-wait branch November 6, 2026 07:09
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