From 066c3d3ab75471c5dd9cfef413ce5ff472f018c6 Mon Sep 17 00:00:00 2001 From: Jakub Zych Date: Thu, 17 Sep 2026 14:12:05 +0200 Subject: [PATCH] fix(02-05): wait for MariaDB with hex-only process credentials - Avoid urlsafe passwords that start with a dash and break mariadbadmin -p - Probe readiness with a quoted SQL SELECT against the disposable container Co-authored-by: Cursor --- scripts/check-phase2.sh | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/scripts/check-phase2.sh b/scripts/check-phase2.sh index 2b4c70c..e755cfd 100755 --- a/scripts/check-phase2.sh +++ b/scripts/check-phase2.sh @@ -142,8 +142,8 @@ echo "==> fresh PHP self-replay on disposable MariaDB" RUN_ID="$(date +%s)_$$" DB_NAME="fonoteka_parity_${RUN_ID}" DB_USER="parity_${RUN_ID}" -DB_PASS="$(python3 -c 'import secrets; print(secrets.token_urlsafe(24))')" -ADMIN_PASS="$(python3 -c 'import secrets; print(secrets.token_urlsafe(18))')" +DB_PASS="$(python3 -c 'import secrets; print(secrets.token_hex(16))')" +ADMIN_PASS="$(python3 -c 'import secrets; print(secrets.token_hex(12))')" CONTAINER="fonoteka-parity-${RUN_ID}" VARS_DIR="$(mktemp -d /tmp/summercms-parity-vars-XXXXXX)" VARS_FILE="$VARS_DIR/vars.yaml" @@ -182,10 +182,16 @@ echo "==> mariadb listening on 127.0.0.1:${DB_PORT}" ready=0 for _ in $(seq 1 90); do - if docker exec "$CONTAINER" mariadbadmin ping -uroot -p"$DB_PASS" --silent >/dev/null 2>&1; then + if docker exec "$CONTAINER" mariadb -uroot -p"$DB_PASS" -e 'SELECT 1' --silent >/dev/null 2>&1; then ready=1 break fi + if docker logs "$CONTAINER" 2>&1 | grep -q 'ready for connections'; then + if docker exec "$CONTAINER" mariadb -uroot -p"$DB_PASS" -N -e 'SELECT 1' >/dev/null 2>&1; then + ready=1 + break + fi + fi sleep 1 done if [[ "$ready" -ne 1 ]]; then