Realer Vorfall (2026-06-13, nexus K-104-Inbetriebnahme): Der nexus-db-LXC wurde vor dem K-114-locale-Fix provisioniert. initdb (PGDG-Paketinstallation) lief unter LANG=C → Cluster/DB entstand mit SQL_ASCII-Encoding. Folge: psql funktioniert unauffällig (reicht Bytes durch), aber psycopg3 liefert bei SQL_ASCII Text als bytes — SQLAlchemy crasht bei der Server-Versions-Erkennung (TypeError: cannot use a string pattern on a bytes-like object), die App meldet db: unreachable. Diagnose kostete eine Debug-Session; behoben durch locale-gen + DB-Neuanlage mit ENCODING 'UTF8'.
Härtung für install/nexus-db-install.sh (und als Muster für künftige DB-Installer):
setup_base_apt muss die Locale vor der PostgreSQL-Installation fixen (seit K-114 vorhanden — hier zusätzlich verifizieren, dass sie zum initdb-Zeitpunkt aktiv ist, nicht nur generiert).
Explizit statt implizit: DB-Anlage mit ENCODING 'UTF8' LC_COLLATE/LC_CTYPE 'en_US.UTF-8' TEMPLATE template0 — unabhängig vom Cluster-Default.
Post-Install-Check ins Script: SELECT pg_encoding_to_char(encoding) FROM pg_database WHERE datname='nexus' muss UTF8 liefern, sonst Abbruch mit Fehlermeldung.
README/Wiki-Lesson ergänzen.
Lesson fürs Lessons-Log: "Encoding wird bei initdb eingefroren — eine kaputte Locale zur Installationszeit ist ein Datenbank-Schaden, kein Schönheitsfehler."
**Realer Vorfall (2026-06-13, nexus K-104-Inbetriebnahme):** Der nexus-db-LXC wurde vor dem K-114-locale-Fix provisioniert. `initdb` (PGDG-Paketinstallation) lief unter `LANG=C` → Cluster/DB entstand mit **SQL_ASCII**-Encoding. Folge: psql funktioniert unauffällig (reicht Bytes durch), aber **psycopg3 liefert bei SQL_ASCII Text als `bytes`** — SQLAlchemy crasht bei der Server-Versions-Erkennung (`TypeError: cannot use a string pattern on a bytes-like object`), die App meldet `db: unreachable`. Diagnose kostete eine Debug-Session; behoben durch locale-gen + DB-Neuanlage mit `ENCODING 'UTF8'`.
**Härtung für `install/nexus-db-install.sh` (und als Muster für künftige DB-Installer):**
1. `setup_base_apt` muss die Locale **vor** der PostgreSQL-Installation fixen (seit K-114 vorhanden — hier zusätzlich verifizieren, dass sie zum initdb-Zeitpunkt aktiv ist, nicht nur generiert).
2. Explizit statt implizit: DB-Anlage mit `ENCODING 'UTF8' LC_COLLATE/LC_CTYPE 'en_US.UTF-8' TEMPLATE template0` — unabhängig vom Cluster-Default.
3. Post-Install-Check ins Script: `SELECT pg_encoding_to_char(encoding) FROM pg_database WHERE datname='nexus'` muss `UTF8` liefern, sonst Abbruch mit Fehlermeldung.
4. README/Wiki-Lesson ergänzen.
Lesson fürs Lessons-Log: *"Encoding wird bei initdb eingefroren — eine kaputte Locale zur Installationszeit ist ein Datenbank-Schaden, kein Schönheitsfehler."*
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Realer Vorfall (2026-06-13, nexus K-104-Inbetriebnahme): Der nexus-db-LXC wurde vor dem K-114-locale-Fix provisioniert.
initdb(PGDG-Paketinstallation) lief unterLANG=C→ Cluster/DB entstand mit SQL_ASCII-Encoding. Folge: psql funktioniert unauffällig (reicht Bytes durch), aber psycopg3 liefert bei SQL_ASCII Text alsbytes— SQLAlchemy crasht bei der Server-Versions-Erkennung (TypeError: cannot use a string pattern on a bytes-like object), die App meldetdb: unreachable. Diagnose kostete eine Debug-Session; behoben durch locale-gen + DB-Neuanlage mitENCODING 'UTF8'.Härtung für
install/nexus-db-install.sh(und als Muster für künftige DB-Installer):setup_base_aptmuss die Locale vor der PostgreSQL-Installation fixen (seit K-114 vorhanden — hier zusätzlich verifizieren, dass sie zum initdb-Zeitpunkt aktiv ist, nicht nur generiert).ENCODING 'UTF8' LC_COLLATE/LC_CTYPE 'en_US.UTF-8' TEMPLATE template0— unabhängig vom Cluster-Default.SELECT pg_encoding_to_char(encoding) FROM pg_database WHERE datname='nexus'mussUTF8liefern, sonst Abbruch mit Fehlermeldung.Lesson fürs Lessons-Log: "Encoding wird bei initdb eingefroren — eine kaputte Locale zur Installationszeit ist ein Datenbank-Schaden, kein Schönheitsfehler."
claude-bot referenced this issue2026-06-13 14:30:57 +02:00