Filter turnadmin -l log noise before parsing usernames
Live run surfaced it: this coturn build writes its own startup log lines
("INFO SQLite connection was closed.", "INFO log file opened: ...") to
turnadmin -l's STDOUT, not stderr — 2>/dev/null never caught them, so
they got parsed as if they were usernames, producing nonsensical
"Database has user '2026-...INFO SQLite connection was closed.'" warnings
on a real run. A genuine "user[realm]" line never contains a space; every
log line does, so filtering on that is a simple, build-independent fix.
Also diagnosed the actual underlying failure this surfaced: coturn's live
user database was genuinely empty (both 'asterisk' and 'mattermost' had
cached credential files but neither was registered in the DB) — exactly
the container/volume-recreated-without-db drift this script's consumer
cross-check exists to catch, confirmed against a real run.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01H4k6J1qXXyYxhGEgnJaMvn
This commit is contained in:
@@ -76,7 +76,14 @@ ok "Relay port range: ${COTURN_MIN_PORT}-${COTURN_MAX_PORT}"
|
|||||||
# ── Registered consumers ──────────────────────────────────────────────────────
|
# ── Registered consumers ──────────────────────────────────────────────────────
|
||||||
section "Registered consumers"
|
section "Registered consumers"
|
||||||
|
|
||||||
DB_USERS="$(docker exec coturn turnadmin -l -b /var/lib/coturn/turndb 2>/dev/null | sed -E 's/\[.*//' | awk 'NF' | sort -u)"
|
# turnadmin -l writes its own startup log lines ("INFO SQLite connection
|
||||||
|
# was closed.", "INFO log file opened: ...") to STDOUT on at least some
|
||||||
|
# coturn builds, not stderr — confirmed live, `2>/dev/null` alone let them
|
||||||
|
# through and got misparsed as usernames. A real "user[realm]" line never
|
||||||
|
# contains a space; every log line here does, so filtering those out is a
|
||||||
|
# safe, simple way to keep only genuine entries regardless of which coturn
|
||||||
|
# build's log-noise happens to leak onto stdout.
|
||||||
|
DB_USERS="$(docker exec coturn turnadmin -l -b /var/lib/coturn/turndb 2>/dev/null | grep -v ' ' | sed -E 's/\[.*//' | awk 'NF' | sort -u)"
|
||||||
if [ -z "$DB_USERS" ]; then
|
if [ -z "$DB_USERS" ]; then
|
||||||
warn "No users found in coturn's own database — nothing has actually registered yet, or turnadmin -l's output format changed. Raw:"
|
warn "No users found in coturn's own database — nothing has actually registered yet, or turnadmin -l's output format changed. Raw:"
|
||||||
docker exec coturn turnadmin -l -b /var/lib/coturn/turndb 2>&1 | sed 's/^/ /'
|
docker exec coturn turnadmin -l -b /var/lib/coturn/turndb 2>&1 | sed 's/^/ /'
|
||||||
|
|||||||
Reference in New Issue
Block a user