Skip to content

fix(e2e): wait for backends to be healthy before starting nginx proxies (backport of #4551) - #4553

Merged
reinkrul merged 1 commit into
V6.2from
fix/4549-rfc021-nginx-depends-on-v6.2
Sep 18, 2026
Merged

reinkrul merged 1 commit into
V6.2from
fix/4549-rfc021-nginx-depends-on-v6.2

Conversation

@reinkrul

@reinkrul reinkrul commented Sep 17, 2026

Copy link
Copy Markdown
Member

Backport of #4551 to V6.2, cherry-picked without conflicts.

Adds depends_on: <backend>: condition: service_healthy from each affected nginx proxy to its backend across the e2e suites, and bumps oauth-flow/rfc021/mysql.yml's healthcheck retries from 20 to 40. See #4551 for the full analysis.

Assisted by AI

…es (#4551)

* fix(e2e): wait for backends to be healthy before starting rfc021 nginx proxies

nodeA and nodeB (nginx) resolve their backend's hostname once, at config
load time, and never retry. With no depends_on, Docker Compose starts them
concurrently with nodeA-backend/nodeB-backend, so if the backend's network
alias isn't registered yet, nginx crashes immediately with "host not found
in upstream" and stays down, failing every test routed through it.

Fixes #4549

Assisted by AI

* fix(e2e): wait for backends to be healthy before starting nginx proxies

Same startup race as rfc021 (previous commit): nginx resolves its upstream
backend's hostname once, at config load time, and never retries. With no
depends_on, Docker Compose starts the proxy and its backend concurrently, so
if the backend's network alias isn't registered yet, nginx crashes
immediately with "host not found in upstream" and stays down.

Affects every other e2e suite with the same nginx-fronts-nuts-node pattern
that was missing depends_on entirely: clustering/redis, clustering/memcached,
openid4vci/issuer-initiated, nuts-network/ssl-offloading/nginx,
browser/openid4vp_employeecredential, oauth-flow/rfc002,
oauth-flow/statuslist2021, oauth-flow/didx509, oauth-flow/openid4vp.

Fixes #4549

Assisted by AI

* fix(e2e): give rfc021's MySQL container more time to become healthy

MySQL 8.3's first-time initialization (data dir, SSL certs, system tables)
doesn't always finish inside the previous interval: 1s x retries: 20 = 20s
budget on a standard CI runner, causing an unrelated flake (nodeA-backend/
nodeB-backend depend on db being healthy and fail to start if it isn't).

Assisted by AI

(cherry picked from commit ebe62b8)
@stevenvegt stevenvegt added this to the V6.2.12 milestone Sep 17, 2026
@reinkrul
reinkrul merged commit 073b481 into V6.2 Sep 18, 2026
8 checks passed
@reinkrul
reinkrul deleted the fix/4549-rfc021-nginx-depends-on-v6.2 branch September 18, 2026 07:46
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