fix(infra): cap Objecten/Objecttypen uWSGI to 1 worker — unstarve verify-stack e2e (closes #144)
CI / build (pull_request) Successful in 1m26s
CI / lint (pull_request) Successful in 1m38s
CI / unit (pull_request) Successful in 2m18s
CI / frontend (pull_request) Successful in 4m50s
CI / mutation (pull_request) Successful in 7m14s
CI / verify-stack (pull_request) Successful in 10m49s
CI / build (pull_request) Successful in 1m26s
CI / lint (pull_request) Successful in 1m38s
CI / unit (pull_request) Successful in 2m18s
CI / frontend (pull_request) Successful in 4m50s
CI / mutation (pull_request) Successful in 7m14s
CI / verify-stack (pull_request) Successful in 10m49s
The Maykin images run uWSGI with 4 processes × 4 threads by default. Two web services × 4 idle Django workers (~200 MB each) sat idle during the Playwright e2e step and starved the single shared CI runner, so Keycloak and the portals stopped responding (login never loaded) and Chromium crashed — main verify-stack went red from run 2177 (post-#142) onward while the PR runs passed on a less loaded runner. These APIs only serve single-request smoke checks and are idle during e2e, so 1 worker is plenty. Verified locally: both services healthy with UWSGI_PROCESSES=1 and make verify-objecten / verify-objecttypen still green. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -583,6 +583,9 @@ services:
|
|||||||
objecttypen-init:
|
objecttypen-init:
|
||||||
image: docker.io/maykinmedia/objecttypes-api:${OBJECTTYPES_TAG:-3.4.2}
|
image: docker.io/maykinmedia/objecttypes-api:${OBJECTTYPES_TAG:-3.4.2}
|
||||||
environment: &objecttypen-env-local
|
environment: &objecttypen-env-local
|
||||||
|
# 1 uWSGI worker, not the image default of 4×4 (#144) — idle workers starve the CI runner.
|
||||||
|
UWSGI_PROCESSES: "1"
|
||||||
|
UWSGI_THREADS: "2"
|
||||||
DJANGO_SETTINGS_MODULE: objecttypes.conf.docker
|
DJANGO_SETTINGS_MODULE: objecttypes.conf.docker
|
||||||
SECRET_KEY: ${OBJECTTYPES_SECRET_KEY:-dev-only-not-for-production}
|
SECRET_KEY: ${OBJECTTYPES_SECRET_KEY:-dev-only-not-for-production}
|
||||||
DB_HOST: objecttypen-db
|
DB_HOST: objecttypen-db
|
||||||
@@ -644,6 +647,9 @@ services:
|
|||||||
objecten-init:
|
objecten-init:
|
||||||
image: docker.io/maykinmedia/objects-api:${OBJECTS_TAG:-3.4.0}
|
image: docker.io/maykinmedia/objects-api:${OBJECTS_TAG:-3.4.0}
|
||||||
environment: &objecten-env-local
|
environment: &objecten-env-local
|
||||||
|
# 1 uWSGI worker, not the image default of 4×4 (#144) — idle workers starve the CI runner.
|
||||||
|
UWSGI_PROCESSES: "1"
|
||||||
|
UWSGI_THREADS: "2"
|
||||||
DJANGO_SETTINGS_MODULE: objects.conf.docker
|
DJANGO_SETTINGS_MODULE: objects.conf.docker
|
||||||
SECRET_KEY: ${OBJECTS_SECRET_KEY:-dev-only-not-for-production}
|
SECRET_KEY: ${OBJECTS_SECRET_KEY:-dev-only-not-for-production}
|
||||||
DB_HOST: objecten-db
|
DB_HOST: objecten-db
|
||||||
|
|||||||
@@ -596,6 +596,11 @@ services:
|
|||||||
objecttypen-init:
|
objecttypen-init:
|
||||||
image: docker.io/maykinmedia/objecttypes-api:${OBJECTTYPES_TAG:-3.4.2}
|
image: docker.io/maykinmedia/objecttypes-api:${OBJECTTYPES_TAG:-3.4.2}
|
||||||
environment: &objecttypen-env
|
environment: &objecttypen-env
|
||||||
|
# 1 uWSGI worker, not the image default of 4×4: this API only serves single-request smoke
|
||||||
|
# checks and sits idle during the e2e step — 4 idle Django workers each pin ~200 MB and starve
|
||||||
|
# the shared CI runner (#144). Init ignores this (it runs setup_configuration, not uwsgi).
|
||||||
|
UWSGI_PROCESSES: "1"
|
||||||
|
UWSGI_THREADS: "2"
|
||||||
DJANGO_SETTINGS_MODULE: objecttypes.conf.docker
|
DJANGO_SETTINGS_MODULE: objecttypes.conf.docker
|
||||||
SECRET_KEY: ${OBJECTTYPES_SECRET_KEY:-dev-only-not-for-production}
|
SECRET_KEY: ${OBJECTTYPES_SECRET_KEY:-dev-only-not-for-production}
|
||||||
DB_HOST: objecttypen-db
|
DB_HOST: objecttypen-db
|
||||||
@@ -662,6 +667,9 @@ services:
|
|||||||
objecten-init:
|
objecten-init:
|
||||||
image: docker.io/maykinmedia/objects-api:${OBJECTS_TAG:-3.4.0}
|
image: docker.io/maykinmedia/objects-api:${OBJECTS_TAG:-3.4.0}
|
||||||
environment: &objecten-env
|
environment: &objecten-env
|
||||||
|
# 1 uWSGI worker, not the image default of 4×4 — see the objecttypen note above (#144).
|
||||||
|
UWSGI_PROCESSES: "1"
|
||||||
|
UWSGI_THREADS: "2"
|
||||||
DJANGO_SETTINGS_MODULE: objects.conf.docker
|
DJANGO_SETTINGS_MODULE: objects.conf.docker
|
||||||
SECRET_KEY: ${OBJECTS_SECRET_KEY:-dev-only-not-for-production}
|
SECRET_KEY: ${OBJECTS_SECRET_KEY:-dev-only-not-for-production}
|
||||||
DB_HOST: objecten-db
|
DB_HOST: objecten-db
|
||||||
|
|||||||
Reference in New Issue
Block a user