From c775067ad94835c01f400365006ec67523fa3bbb Mon Sep 17 00:00:00 2001 From: Mark Reitblatt Date: Wed, 19 Aug 2026 12:54:29 -0700 Subject: [PATCH] Fix scylla healthcheck to probe CQL readiness, not just gossip (#1041) nodetool status only confirms gossip is up, not that the CQL port (9042) is accepting and completing queries. That gap let dependents (db:create/db:update via cassandra-driver) connect before Scylla was actually ready, causing connection timeouts even though Compose reported the container healthy. Co-authored-by: Claude Sonnet 5 --- docker-compose.yaml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 5837d02..79d8bfe 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -93,7 +93,16 @@ services: ports: - '9042:9042' healthcheck: - test: ['CMD-SHELL', 'nodetool status || exit 1'] + # nodetool status only confirms gossip is up, not that the CQL port + # (9042) is accepting and completing queries yet — that gap lets + # dependents (e.g. db:create/db:update via cassandra-driver) connect + # before Scylla is actually ready, causing timeouts even though + # Compose reports the container healthy. + test: + [ + 'CMD-SHELL', + 'cqlsh -e "SELECT release_version FROM system.local" || exit 1', + ] interval: 5s timeout: 5s retries: 28 -- 2.54.0